TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: When should you roll your own persistence for a networked system?

1 点作者 lame88将近 5 年前
I guess I&#x27;m mostly thinking of a server in concurrent reader&#x2F;writer scenario. The common advice seems to be to use SQL or some form of database, especially for networked applications serving many clients. Yet Git has proven wildly successful while as far as I know rolling its own persistence&#x2F;storage layer. It&#x27;s also different in that it&#x27;s written in C. And while git is distributed, I at least often use it in a more client-server manner (pushing&#x2F;pulling from github&#x2F;origin). I could be mistaken on any of these points so please correct me.<p>From the perspective of &quot;commoditize [your] complements&quot;, one could say storage is part of the bread and butter of git&#x27;s functionality, so it makes sense for it to roll its own. But that&#x27;s also nearly as true of any transactional or eventually consistent web application.<p>Performance constrained environments like HFT could probably have a much higher latency and throughput capability by using a specialized handwritten solution and avoiding the SQL translation layer. Similarly, there are plenty of games that are written without engines, though I don&#x27;t know how many are written without a more generic renderer like OpenGL&#x2F;DirectX these days and that&#x27;s a critical subsystem of any game.<p>Are there any other examples like git in this situation? Are there any general patterns that make rolling your own persistence viable?

暂无评论

暂无评论