TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Warp: Lightweight Multi-Key Transactions for Key-Value Stores

63 pointsby yagizdegirmencialmost 3 years ago

7 comments

atombenderalmost 3 years ago
Warp is quite interesting, and seemed really promising and ahead of its time. Unfortunately, Hyperdex (which is the key-value store that implements it) has not been maintained for many years [1], and the website is dead.<p>While the technology is impressive, the author seems to have lost interest, and moved on to working on something called Consus [2], which has also been abandoned (no activity 2018).<p>Hyperdex never became popular, and a problem all along was that the author — a very talented developer, from what I can tell — seemed more invested in his projects from the perspective of academic research (he developed Hyperdex at Cornell, I believe) than in delivering a practical, living open source project. He tried to form a company around Hyperdex (the transactional Warp add-on was commercial) even though nobody seemed to be using it; and he was the sole developer. I actually submitted a PR at one point to fix a build problem, but the author was completely unresponsive; you can&#x27;t really do open source that way.<p>I <i>think</i> the Warp code was actually open sourced when the author realized they had failed to commercialize it, but I&#x27;m not sure; it&#x27;s been a long time.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;rescrv&#x2F;HyperDex&#x2F;issues&#x2F;233" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rescrv&#x2F;HyperDex&#x2F;issues&#x2F;233</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;rescrv&#x2F;Consus" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rescrv&#x2F;Consus</a>
评论 #31558290 未加载
评论 #31553814 未加载
samsquirealmost 3 years ago
I implemented multiversion concurrency control[1]. I am interested how transactions are implemented without it. You need snapshot isolation too so you cannot read dirty writes and avoid phantom reads.<p>PolarDb sets commit timestamp to null and asynchronously changes the commit timestamp after a commit but has a CTS ring buffer for transactions that are still active. The reading transactions has to check this to see if the transaction is part way through committing.<p>The getting the behaviour of all at once or not at all is an interesting problem to have.<p>I use a database timestamp to solve this problem which is the latest transaction to have committed.<p>I think postgres does something clever with minimum and maximum timestamps on each tuple.<p>[1]: HTTPS:&#x2F;&#x2F;GitHub.com&#x2F;samsquire&#x2F;multiversiom-concurrency-control
hbrundagealmost 3 years ago
This system doesn’t support interactive transactions does it? In that the whole read &#x2F; write set needs to be known up front before a transaction can start being processed? I know that systems like FoundationDB and Calvin&#x2F;Fauna work similarly and get incredible performance because sequencing is so much easier &#x2F; lock free. I think those two systems couldn’t be adapted for interactive transactions really (without client side retries) but maybe warp could be which is cool!
评论 #31553322 未加载
jphalmost 3 years ago
Nice: ACID guarantees; 75% of the throughput of the non-transactional key-value store it builds upon; linear scaling; conflict retries. Worth trying IMHO.
toolslivealmost 3 years ago
What&#x27;s wrong with making your transaction a paxos(multi-paxos, raft,...) consensus value?
评论 #31557188 未加载
lfkdevalmost 3 years ago
Same name as the new Rust Terminal
NonNefariousalmost 3 years ago
Here&#x27;s a nitpick: It&#x27;s key&#x2F;value store, not key-value store.<p>A key-value store would only store &quot;key values.&quot;
评论 #31553849 未加载
评论 #31553898 未加载
评论 #31553877 未加载
评论 #31553894 未加载
评论 #31553437 未加载