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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Databases: The Einstein Hypothesis - Distributed Transactions Cannot Exist

28 点作者 cassandravoiton大约 14 年前
WTF! I always though distributed transcations were BS. If only I understood this post, I guess could now prove it <i>giggle</i> :)

7 条评论

cx01大约 14 年前
The author is wrong. Distributed transactions are possible, for example using the Paxos algorithm. In Paxos, if the network fails, the system will block (i.e. become unavailable) until connectivity is restored. It's not possible for one node to commit and the other node to abort.<p>There is even a paper about using Paxos specifically for distributed commit: <a href="http://research.microsoft.com/apps/pubs/default.aspx?id=64636" rel="nofollow">http://research.microsoft.com/apps/pubs/default.aspx?id=6463...</a>
评论 #2466150 未加载
nerds-central大约 14 年前
Thanks - but it really is not that complex. You cannot define the state of two distant points simultaneously when the speed of information transfer in space/time is finite. So all transactions collapse to being controlled from one point, not distributed. The reality of distributed transactions is that they make fail over to the single transactional arbitrator less common; but the need for that single arbitration point never goes away.
beza1e1大约 14 年前
Disagree. The underlying problem is consensus [0], which can usually be solved. For example, read about bitcoin, which got some attention here recently. It provides global money transactions within a distributed system.<p>[0] <a href="http://en.wikipedia.org/wiki/Consensus_(computer_science)" rel="nofollow">http://en.wikipedia.org/wiki/Consensus_(computer_science)</a>
评论 #2466093 未加载
david927大约 14 年前
For KayaDB, we handle it as follows: elements involved in the transaction are all duplicated onto a single server, the original values change from scalar to a reference, redirecting to the new location, the transaction is executed on the single server, the elements are then re-propagated.
评论 #2466106 未加载
zwischenzug大约 14 年前
Pretentious but entertaining article that tells us what's fairly obvious with a little reflection.
评论 #2466152 未加载
praptak大约 14 年前
You don't need such a heavy theorethical machinery (I mean relativity) to get to the point that distributed transactions are not possible (for some values of possible.)<p>Here's the link to the proof that no deterministic protocol achieves distributed certainty in presence of network failures, even for two parties only: <a href="http://en.wikipedia.org/wiki/Two_Generals%27_Problem#For_deterministic_protocols_with_a_fixed_number_of_messages" rel="nofollow">http://en.wikipedia.org/wiki/Two_Generals%27_Problem#For_det...</a><p>And yeah, the misconceptions around that are huge. I once had to expose a totally-not-database-related API as a JDBC-compliant driver because someone insisted it would provide transactional consistency.
评论 #2466161 未加载
评论 #2466100 未加载
bhousel大约 14 年前
Unfortunately for the author's hypothesis, there are two very significant words that don't appear in this article anywhere: "resource" and "lock"
评论 #2466092 未加载