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.

NoSQL Meets Bitcoin and Brings Down Two Exchanges

103 pointsby silentehabout 11 years ago

25 comments

nemothekidabout 11 years ago
While I do recognize this is a marketing piece for HyperDex, I&#x27;m disappointed HyperDex only chooses to compare itself with MongoDB and Cassandra.<p>It would be different if HyperDex was fully open source and free, but its not. The &quot;transaction&quot; feature is only available with a license, which in most cases will price you out of any developer who is looking to start a bitcoin exchange. So unfortunately it comes across as &quot;If only you had spent $x&#x2F;mo, buying our product, then you wouldn&#x27;t have had this problem!&quot;<p>Now that isn&#x27;t bad, and its the definition of marketing, but then it goes on to compare itself against Cassandra (which has a widely different use case in the wild) and Mongo (which is already the whipping boy of the database community). However it doesn&#x27;t help the use cases are also extremely well served by something like Postgres, which doesn&#x27;t need a Warp addon, and has a huge developer community.<p>What I would be more interested in, is how does HyperDex compare with the new &quot;NoSQL&quot; databases (FoundationDB, OrientDB, Spanner-like Databases) or even the traditional commercial SQL like Oracle.<p>In short, it doesn&#x27;t help to test and compare unsuccessful and unpopular use cases with these technologies. Most competent people, the same people who might pay for HyperDex, already know Cassandra is bad at transactions. What I would like to see is tell me why someone like Netflix, or Ooyala (tried, tested and popular use cases) would move from Cassandra to HyperDex.
评论 #7543694 未加载
评论 #7543372 未加载
patio11about 11 years ago
<i>That&#x27;s because banks employ systems that guard against this kind of elementary error. It&#x27;s called transactions with ACID guarantees.</i><p>Bank systems are often not, in fact, ACID. Think of how many billions of transactions are processed in end-of-the-day batch runs, for example. Overdrafting is not only not impossible, it is a <i>ludicrously profitable feature</i> of the system.<p>How is this secure? Velocity limits, sophisticated anti-fraud systems, acceptable losses, and, as a bit of a by-the-way, the fact that people who make a habit of defrauding banks generally have a few weeks prior to being woken up by very serious men with guns.
评论 #7542262 未加载
评论 #7542176 未加载
评论 #7543333 未加载
评论 #7544621 未加载
hibikirabout 11 years ago
The first problem to be had when considering distributed systems is the fact that there is no such thing as a general purpose distributed system.<p>Some problems require doing 50x more reads than writes. Others have more writes than reads. Sometimes losing a few inserts is not a big deal, but a small delay is terrible. Other systems just can&#x27;t tolerate data loss, and would pay any price to keep it that way. You might have a lot of small pieces of data, searchable in very simple ways, or you might have multi GB documents that require so much indexing than Solr and Elastic seem inadequate.<p>In the old days, you just bought a bigger box for the RDBMS, and you just were covered by knowing one tech. Now we need to go through a wide variety of tools that will rarely do everything you want, and have to write a bunch of code to compensate for the limitations of the tools. And then your DB of choice decides that they will only support their self hosted product, then they get bought by IBM, and you wonder if you&#x27;ll be forced to retool your entire backend (Hello Cloudant!)<p>Until there is some clarity in the market, and we get to see distributed stacks that are general purpose, we&#x27;ll see issues like this popping up all the time, as there is a lack of people that both have good knowledge of all the available options and the skill to put them together into something that will solve your specific problem.
rdtscabout 11 years ago
Please don&#x27;t be MongoDB, please don&#x27;t be MongoDB<p>...<p>Sigh<p>&gt; a failure of distributed systems academics to educate developers and to equip them with clear-thinking frameworks.<p>Here is the thing, distributed systems are not standard academic courses. Just like networking they are often optional. That is really sad and it needs to change.<p>The CAP theorem is not something fringe and exotic anymore it should be standard taught to everyone.<p>MongoDB has really messed up. They promoted and marketed a shitty product wrapped in nice marketing. It created 2 things -- low barrier to entry and a trap. Both wrapped in one nice shiny package. &quot;You should have read the docs to enable actually writing data disk when the user asks them to&quot; doesn&#x27;t jive with me. A really shitty default setup for something calling itself a database.<p>Oh well, they reaped the benefits of their strategy, both the short term (success) and long term (failure) - it became the butt of jokes and ridicule.
评论 #7543253 未加载
评论 #7543850 未加载
aardvark179about 11 years ago
&quot;Historically, Bitcoin exchanges that suffered significant losses turned into fractional reserve banks, only to fold later.&quot;<p>That is not what fractional reserve banking is and I wish bitcoin articles would stop misusing the term.
评论 #7543136 未加载
danbrucabout 11 years ago
It&#x27;s the same story over and over again. The young wild guys arrive, full of energy and ambition to make the world a better place. They throw all the ancient stuff overboard because it seems ugly and useless. Then they painfully rediscover why the ugly stuff is there and not useless at all. And after a lot of pain they finally arrive at a slightly improved version of what they threw overboard long ago, at least if they did not surrender before.
评论 #7544661 未加载
adambardabout 11 years ago
TLDR: Exactly what you might have guessed: the exchanges backed their financial operations with a datastore without transactions, tragedy ensues.<p>This can&#x27;t be viewed as an indictment of &quot;NoSQL&quot; though; there are plenty of databases featuring ACID transactions that qualify as &quot;NoSQL&quot; (FoundationDB and OrientDB come to mind). That said, none of the popular NoSQL contenders have them, and the new guys with transactions tend to be commercial, so if you need transactions in an free and open-source datastore, just use PostgreSQL.
bkirwiabout 11 years ago
A bit irritated at how the author complains about other databases astroturfing on Hacker News, then writes a glowing post about HyperDex without mentioning that he&#x27;s one of the authors.<p>That said, I agree with the thesis that current-generation distributed systems provide a terrible API for users who actually want to get concurrency right. I&#x27;m optimistic about projects like Summingbird[0] and Bloom[1], which run very high-level declarative programs with simple consistency guarantees.<p>[0] <a href="https://github.com/twitter/summingbird" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;twitter&#x2F;summingbird</a> [1] <a href="http://www.bloom-lang.net/" rel="nofollow">http:&#x2F;&#x2F;www.bloom-lang.net&#x2F;</a>
ChuckMcMabout 11 years ago
Its unfortunate to use the ATM example because just such an exploit was used by carders [1] to get more money out of accounts than the accounts actually had.<p>[1] <a href="http://time.com/48344/hackers-target-atms-for-unlimited-withdrawals/" rel="nofollow">http:&#x2F;&#x2F;time.com&#x2F;48344&#x2F;hackers-target-atms-for-unlimited-with...</a>
评论 #7542893 未加载
bobx11about 11 years ago
This article was only written to promote something called HyperDex which he is in some way involved.
dhendoabout 11 years ago
Mongo does have document-level atomic update operators, such as $inc: <a href="http://docs.mongodb.org/manual/reference/operator/update/inc/#up._S_inc" rel="nofollow">http:&#x2F;&#x2F;docs.mongodb.org&#x2F;manual&#x2F;reference&#x2F;operator&#x2F;update&#x2F;inc...</a>
评论 #7543861 未加载
nacsabout 11 years ago
Sounds like the author of this &#x27;article&#x27; just wanted to make a thinly veiled plug for the &quot;HyperDex&quot; product.<p>Blaming all of this on MongoDB is silly. You can do the kind of idiocy displayed by these exchanges even on generic DBs by doing things like not using transactions and&#x2F;or not waiting for write confirmation.<p>The root problem is in the (lack of) design and programming of these systems not their data store.
DigitalSeaabout 11 years ago
As soon as I saw the term NoSQL and &quot;Brings Down&quot; in the title of the submission, I knew it was going to be MongoDB. Firstly, I don&#x27;t understand the hatred towards MongoDB. Like most NoSQL datastores, it doesn&#x27;t offer things like transactions and ACID compliance: this is well-known thing. There are some things that MongoDB does very well, currently I am using it to store clicks for an internal application which then displays those clicks on a page overlay, it handles the task very well. I would never use it for<p>MongoDB is not to blame for bringing down the exchanges that decided to use it, the stupidity of the developers behind said exchanges are the sole reason. You can open up a can of tinned pineapples with an axe, but that doesn&#x27;t make it the right tool for the job.<p>This post was one big marketing piece for HyperDex and while it is touted as open source, but that isn&#x27;t entirely true. If you want support for transactions, you have to by a licence. So basically what this post was saying is, &quot;If you spent X amount of money on a HyperDex licence, you wouldn&#x27;t have had these issues&quot; most people that start these exchanges start them from nothing and probably can&#x27;t afford or wouldn&#x27;t warrant spending money on a licence.<p>If you replaced MongoDB with pretty much every other NoSQL database out there, the result would have been the same. Mongo just has a better marketing team behind them in the form of 10Gen getting people to buy into the hype. However, as far as I am aware of, 10Gen aren&#x27;t telling people to use MongoDB for exchange platforms and anything involving transactions (I could be wrong though). This is a classic case of seeing people talking about how NoSQL is the future and others getting caught up in the hype.<p>If you want a database that you can rely on, especially when dealing with transactions: use something like Postgresql, not MongoDB and or <i>insert over-hyped NoSQL database here</i>
评论 #7573191 未加载
评论 #7545730 未加载
rubyfanabout 11 years ago
This article lacks a fact base on what actually happened and seems to totally rely on conjecture in order to compare Hyperdex against leading NoSQL solutions.
cranklinabout 11 years ago
<i>&quot;They did what anyone would do after reading one too many astroturf articles on Hacker News. Sure, their system failed, but in a sense, the overall system failed them.&quot;</i><p>The technology didn&#x27;t fail them. On the contrary, the technology did exactly what it was supposed to do. The devs could have (should have) considered these race condition scenarios.
tlarkworthyabout 11 years ago
you can put ACID like transactions on top of NoSQL databases, I did it here, but it took a static analyser to help get the logic right:<p><a href="https://github.com/tomlarkworthy/firesafe/wiki/Send-Item" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tomlarkworthy&#x2F;firesafe&#x2F;wiki&#x2F;Send-Item</a>
platformabout 11 years ago
Marklogic supports ACID transactions. being that it is also a horizontally scalable system, it allows those transactions not just to spawn multiple objects, but also across multiple hosts. <a href="http://www.marklogic.com/blog/can-you-pass-the-acid-test/" rel="nofollow">http:&#x2F;&#x2F;www.marklogic.com&#x2F;blog&#x2F;can-you-pass-the-acid-test&#x2F;</a><p>They also support data tiering into HDFS, and now most recently RDF with SPARQL<p>They have been doing ACID for a number of years, not sure for how long.<p>They are not free (unless your data set is small)
kylemaxwellabout 11 years ago
Not quite understanding the focus on NoSQL for this use case set. I love MongoDB in the right place and Redis in others. But when you have a bunch of requirements that lend themselves to traditional DBs, choosing MongoDB or HyperDex feels like choosing a tech because it&#x27;s cool rather than because it is the proper engineering choice.
camus2about 11 years ago
Question!<p>Do transactional NoSQL(others than HyperDex) databases exist? or do transactions make horizontal scaling difficult?
teawithcarlabout 11 years ago
Cornell CS professor, superb work.<p>See also -- <a href="http://hackingdistributed.com/2014/03/01/what-did-not-happen-at-mtgox/" rel="nofollow">http:&#x2F;&#x2F;hackingdistributed.com&#x2F;2014&#x2F;03&#x2F;01&#x2F;what-did-not-happen...</a><p>&quot;What may or may not have happened at Mt. Gox&quot;
kofejnikabout 11 years ago
Why wouldn&#x27;t they use a plain old ACID database? Was their load something that Oracle couldn&#x27;t handle?
jokoonabout 11 years ago
What are the advantages of nosql btw ?
评论 #7544250 未加载
评论 #7544005 未加载
评论 #7543345 未加载
ibyonabout 11 years ago
I don&#x27;t think that MongoDB or any nosql is right choice for financial application. You can build for yelp but not for banking.
late2partabout 11 years ago
But, it is webscale!
atmosxabout 11 years ago
&gt; It points to a social failure: a failure of distributed systems academics to educate developers and to equip them with clear-thinking frameworks.<p>So, will the OP do an exchange and show us how it&#x27;s done using his database of and approach of choice. Because writing articles on other&#x27;s failures is kinda of... Easy.<p>I&#x27;m a little sick of this attitude. Nothing personal with - <i>what I thought was Sinan Eren at first, confusing the names after so many years</i> - the OP here, but given the fact that he is deliberately calling out amateurs and <i>poor designers</i> people who (apparently) deserved it, he might very well create a secure bitcoin exchange in the real world, using his technologies.. There is a huge market for that, today more than ever.
评论 #7543677 未加载