Slashdot Mirror


PostgreSQL Outperforms MongoDB In New Round of Tests

New submitter RaDag writes: PostgreSQL outperformed MongoDB, the leading document database and NoSQL-only solution provider, on larger workloads than initial performance benchmarks. Performance benchmarks conducted by EnterpriseDB, which released the framework for public scrutiny on GitHub, showed PostgreSQL outperformed MongoDB in selecting, loading and inserting complex document data in key workloads involving 50 million records. This gives developers the freedom to combine structured and unstructured data in a single database with ACID compliance and relational capabilities.

147 comments

  1. It doesn't matter by DoofusOfDeath · · Score: 5, Funny

    Because Postgres isn't web-scale. I want web-scale.

    1. Re:It doesn't matter by mwvdlee · · Score: 3, Funny

      "Web-scale" is "big enough to hold a Wordpress database"?

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:It doesn't matter by i+kan+reed · · Score: 3, Informative

      I was about to get wooshed, and post something about how "web-scale" isn't any kind of meaningful standard, but then I thought better of it, looked it up, and found it's MongoDB's tagline.

      I can only think of one database that isn't "webscale", and that's TinySQL, which I still use for personal web projects regardless.

    3. Re:It doesn't matter by Anonymous Coward · · Score: 0

      It can be used that way. Shard your data between servers and have your middle layer connect to the one that holds the user's data. For many people, doing this is less difficult than learning a brand new NoSQL way of doing things.

    4. Re:It doesn't matter by SQL+Error · · Score: 4, Informative

      Ah, memories. That had us rolling on the floor at my office at the time.

      For those who missed it, or want to relive it: http://www.youtube.com/watch?v...

    5. Re:It doesn't matter by tepples · · Score: 1

      Shard your data between servers and have your middle layer connect to the one that holds the user's data.

      Which becomes difficult when a user in one shard and a user in another shard want to perform a transaction together.

    6. Re:It doesn't matter by Anonymous Coward · · Score: 0

      two-phase commit

    7. Re:It doesn't matter by DoofusOfDeath · · Score: 5, Funny

      I'm afraid you were still semi-wooshed. I was actually making a reference to this.

    8. Re:It doesn't matter by DoofusOfDeath · · Score: 1

      two-phase commit

      I'd say just to be safe, you should be using 3- or 4-phase commit.

    9. Re:It doesn't matter by Anonymous Coward · · Score: 1

      NoSQL does not allow relationships between records anyway. The JOIN goes out the window. You have to build that relationship yourself in code. With sharding, you have more options, but the underlying problem is the same. You can still JOIN within the same shard, which for most schemas, is just fine. For example, a company account will have all of their employees within the same shard, so employee JOINs work. Client accounts do not relate to one another, so there is no need to JOIN between them, unless you need that data for your own analytics. If you truly have web scale needs, then big data is what you use for that, but it is a poor fit for transactional work, so do not use it for that. Simply pull your data out of the shards (which is where your transaction work is done) and copy it into your big data platform, which does your batch analysis.

      Generally, you partition your data so that you do not have to do much work between shards. Also, shards, because they are independent from one another, can live in different data centers, which gives you true web scale.

    10. Re:It doesn't matter by Anonymous Coward · · Score: 5, Informative

      the linux kernel doesn't even have to load it into RAM, it goes from disk to network directly.

      Oh really? so your network card is a bus master and can initiate transfers from other peripherals without using DMA?
      I assure you, the Linux kernel still loads the file into RAM. Your RAM is fast compared to SATA or Ethernet, it's an excellent staging ground for such transfers. But obviously you don't need to load the entire file before you start sending it out, there are tricks that let the kernel deal with it by tracking the DMA status of the ethernet card and using memory mapped files.

    11. Re:It doesn't matter by Anonymous Coward · · Score: 1

      PostgreSQL does not lock unless you are about to write data. It uses snapshots, which is just as fast as reading a table without locks.

    12. Re:It doesn't matter by hawkinspeter · · Score: 1

      Disk to network directly without going into RAM? I'm not sure that's possible with typical disks, filesystems and network protocols. Does the network card have details about all the different filesystems? What happens if you're using encrypted disks - how would the network card know how to read the disk?

      --
      You're a temporary arrangement of matter sliding towards oblivion in a cold, uncaring universe
    13. Re:It doesn't matter by Warbothong · · Score: 5, Funny

      I can only think of one database that isn't "webscale", and that's TinySQL, which I still use for personal web projects regardless.

      I hadn't heard of TinySQL, so I just Googled it. From http://sourceforge.net/project...

      > tinySQL is a SQL engine written in Java.

      Is the name meant to be ironic or something?

    14. Re:It doesn't matter by whereiswaldo · · Score: 1

      Obligatory reference. Makes me laugh every time.

    15. Re:It doesn't matter by Richy_T · · Score: 1

      How do you make that atomic?

    16. Re:It doesn't matter by plopez · · Score: 5, Funny

      "I can only think of one database that isn't "webscale", and that's TinySQL, which I still use for personal web projects regardless."

      You've just made all those MS Access developers cry.....

      --
      putting the 'B' in LGBTQ+
    17. Re:It doesn't matter by Anonymous Coward · · Score: 0

      Forward writes to the master. ZooKeeper does this.

    18. Re:It doesn't matter by astro · · Score: 2

      This comment just made me shudder with the painful memories of writing web applications in Cold Fusion that used ADO to talk to MS Access files as the DB backend in like 1998. Ugh.

    19. Re:It doesn't matter by timeOday · · Score: 1

      "Relational databases have impotence mismatch."

      "I think you mean impedance."

    20. Re:It doesn't matter by UnknownSoldier · · Score: 1
    21. Re:It doesn't matter by i+kan+reed · · Score: 0

      Statement no one is going to argue with to justify myself:
      Access isn't a database, and access users aren't developers.

    22. Re:It doesn't matter by Phreakiture · · Score: 1

      This is my favourite bit:

      If /dev/null is fast and web scale, I will use it. Is it web scale?

      --
      www.wavefront-av.com
    23. Re:It doesn't matter by gwolf · · Score: 4, Informative

      Just adding to what the others have stated: RAM speed is in the vicinty of a million times HDD speed. You won't notice a file going to RAM before being sent to the network interface. Doing all of the kludgework for this to happen (if possible!) would be for a negligible gain.

    24. Re:It doesn't matter by sexconker · · Score: 2

      This comment just made me shudder with the painful memories of writing web applications in Cold Fusion that used ADO to talk to MS Access files as the DB backend in like 1998. Ugh.

      You think that's bad? I was doing this in 2008.
      (First task was to get them the fuck out of access and onto an actual SQL server.)

    25. Re:It doesn't matter by Anonymous Coward · · Score: 0

      I can appreciate where he is coming from. I to find some "offload" features quite interesting. On my Windows box, I can transfer a file over SMB at 115MB/s, while only using 0.5% cpu, but transferring 115MB/s via iperf is about 8% cpu. Why does a file transfer use 1/16th the amount of CPU? Similar results on my PFSense box. IPerf uses more CPU than SMB on my Windows box for the same speeds. Not to mention my Windows box is a first gen i7 quad+HT 2.66ghz with an integrated NIC while my PFSense box is a 4th gen i5 quad 3.2ghz with a $140 Intel i350-T2 NIC.

      File transfers on my Windows box uses an absurdly small amount of CPU.

    26. Re:It doesn't matter by ndykman · · Score: 1

      Yea, that was great, but Redis did actually turn into a useful tool compared to Memcached.

    27. Re:It doesn't matter by steelfood · · Score: 1

      I'm an Excel user, you insensitive clod!

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    28. Re:It doesn't matter by Lennie · · Score: 1

      Probably Windows uses a Windows equivalent of sendfile() to send the file over SMB.

      Without sendfile () you'll be context-switching between kernel and userspace and probably copying data between them as well.

      With sendfile () you have an open socket and you tell the kernel to send a file over that socket. No more copying of data and no context-switches.

      That is probably why it uses very little CPU.

      --
      New things are always on the horizon
    29. Re: It doesn't matter by greenfruitsalad · · Score: 1

      I did pretty much the same. Looked it up and suddenly the word "oxymoron" came to mind.

    30. Re:It doesn't matter by Anonymous Coward · · Score: 1

      I hope you don't do this stuff for a living.

    31. Re:It doesn't matter by Dragonslicer · · Score: 3, Funny

      two-phase commit

      I'd say just to be safe, you should be using 3- or 4-phase commit.

      Oh yeah? Well my database goes up to 11-phase commit.

    32. Re:It doesn't matter by mi · · Score: 1

      With sendfile () you have an open socket and you tell the kernel to send a file over that socket. No more copying of data and no context-switches.

      Sendfile() (and mmap()) are, indeed, the proper interfaces for sending an entire file out. Unfortunately, they aren't particularly well-used — the speed of RAM on modern computers usually makes any wins from funky APIs not worth the effort. It does not help, that various OSes have a completely different call named "sendfile"...

      Even Varnish — which most people put in front of their CMS-powered sites — abolished it some time ago (years after advising users to disable it first)... Sad, but true.

      --
      In Soviet Washington the swamp drains you.
    33. Re:It doesn't matter by steelfood · · Score: 3, Funny

      It's a reference to how much data it can hold. The rest of the FS is taken up by the swap file.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    34. Re:It doesn't matter by Anonymous Coward · · Score: 0

      I want a pony.

    35. Re:It doesn't matter by eyegone · · Score: 1

      Which becomes difficult when a user in one shard and a user in another shard want to perform a transaction together.

      Sounds like miscegenation to me.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    36. Re:It doesn't matter by Anonymous Coward · · Score: 0

      Diminishing Access driver support from Microsoft has already made those same developers cry.

    37. Re:It doesn't matter by Anonymous Coward · · Score: 0

      Your overall statement is true, you won't notice a file going to RAM before being sent to a NIC, however:

      > RAM speed is in the vicinty of a million times HDD speed

      DDR4-3200 RAM has a theoretical max of 25.6GBps. A HDD, at best, will see 200MB/sec. Even at half that it's more like 200-300 times faster than HDD speed.

      If you're referring to on processor cache, that's a bit different, but that is not what's being discussed.

    38. Re:It doesn't matter by cytg.net · · Score: 1

      Yea .. plus, if i needed "QuickSQL" from a java app i'd pretty much go with instant derby/javadb or sqlite and be done with it.

    39. Re:It doesn't matter by Anonymous Coward · · Score: 0

      the linux kernel doesn't even have to load it into RAM, it goes from disk to network directly.

      Oh really? so your network card is a bus master and can initiate transfers from other peripherals without using DMA?

      Some are, though, especially the 10GB and above, useful for routers.

    40. Re:It doesn't matter by Anonymous Coward · · Score: 0

      Things do change when you consider RAID arrays and SSD interface cards.

    41. Re:It doesn't matter by Bengie · · Score: 1

      According to Intel, their newest NICs can bypass memory and talk directly with the CPU's cache.

  2. Who cares by Anonymous Coward · · Score: 1

    Is it web-scale?

  3. "Small" amount of data by ranton · · Score: 5, Interesting

    I am confused. If they are testing the performance of ACID and BASE database systems, why did they use a data load that can easily fit on a single computer? The data size for both databases was under 150 GB which can easily sit on a single hard drive let alone a single server. Why would a BASE database have any edge over an ACID one for a data set that does not require distribution between multiple servers?

    It is still important to see how much faster a more established DBMS is than a relative newcomer for smaller loads, but I still feel this comparison is a bit lacking.

    --
    -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    1. Re:"Small" amount of data by Anonymous Coward · · Score: 2, Interesting

      Also, the point of scaling databases horizontally isn't just being able to distribute large amounts of data, but to distribute large amounts of queries.
      I think a lot of people here like to point and laugh at NoSQL and particularly Mongo because they fail to consider the aspect of distributing QUERIES, which is where NoSQL shines compared to *SQL.

      Yes, you can scale sql horizontally, but anyone who doesn't have a deep understanding of the internals of the *SQL engine of choice and has tried to scale them horizontally can testify to what a nightmare it is. At least that is my experience.

    2. Re:"Small" amount of data by Anonymous Coward · · Score: 0

      PostgreSQL can be a nightmare when you get beyond trivial web application. The indexing is atrociously slow, and that fscking vacuuming BS needs to be destroyed. Locking up tables for over 30 minutes when they haven't even been updated, what braindead shit is that?

    3. Re:"Small" amount of data by Anonymous Coward · · Score: 0

      Queries in SQL do useful work whereas NoSQL is just a dumb key value store with a load balancer built in. So for NoSQL, you are forced to build your entire application without the benefit of queries, which can be a pain. If you have a complicated query that is slow, for that query only, pretend that you have a NoSQL database and solve the problem that way. There is no need to make the entire application suffer from NoSQL.

    4. Re:"Small" amount of data by Anonymous Coward · · Score: 5, Informative

      Have you used a version of PostgreSQL that is not 10 years old? The vacuum process performs some necessary work asynchronously from your transaction, so that you can have higher concurrency and scalablity. The modern autovacuum does not have locking problems.

    5. Re:"Small" amount of data by CastrTroy · · Score: 1

      Better than the MySQL alternative where unused table space can't be reclaimed at all. The only solution is to use the inno_db_file_per_table feature, which puts every table in it's own table space. When you want reclaim the space, you basically have to rewrite the entire table, indexes and all, which, like PostgreSQL will lock up the table until it is finished. It really should be possible to clean up unused space without locking the table. I'm pretty sure that SQL Server has been able to do it for since at least SQL Server 2000.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    6. Re:"Small" amount of data by Anonymous Coward · · Score: 1

      Last time this was true was more than 10y ago...

    7. Re:"Small" amount of data by Anonymous Coward · · Score: 4, Informative

      Except MongoDB can't do any better!

      "Important notes on compacting:
      "
      "This operation blocks all other database activity when running and should be
      "used only when downtime for your database is acceptable. If you are running
      "a replica set, you can perform compaction on secondaries in order to avoid
      "blocking the primary and use failover to make the primary a secondary before
      "compacting it.

      Source: http://blog.mongolab.com/2014/01/managing-disk-space-in-mongodb/

      The solution in both cases is to mirror your data. I don't know if this particular problem has been solved theoretically, but in any event neither support a compacting vacuum without some write locking. And both support the same workaround.

      NoSQL databases aren't magic. Magic would be asynchronous multi-master replication while maintaining relational integrity, and without any strings attached. No product can do this. Every product has a story, but they either tweak the problem or spin their solution. But that's the state of the art at the moment. We just aren't there, yet.

      If you read the fine print, rather than worshipping with the cargo cultists, you'd know this. Like transactional memory (e.g. lockless data structures), the database field is just filled with misinformation and unrealistic expectations. Developers are clueless. Mostly because no matter what they use, it's going to be fast enough for them. So they're never forced to face their assumptions.

    8. Re:"Small" amount of data by Anonymous Coward · · Score: 3, Interesting

      So, setup replication, yeah it's little more work to do with Postgres than with Mongo, but it's not hard by any means nowadays and you get more flexibility and performance and queries that can actually do things, seem like good deal to me.

    9. Re:"Small" amount of data by bluefoxlucid · · Score: 2

      Actually, the queries in NoSQL document databases are frequently more useful. For example, the atomic FindOneAndModify() search, which can query any set of data--including array values. You can have data that has { PhoneNumber: [5559992332, 5551112234, 5552201212] } and FindOneAndModify({PhoneNumber: 5551112234}, { $pull {PhoneNumber: 5551112234}} ) and delete that specific element from the array.

    10. Re:"Small" amount of data by Anonymous Coward · · Score: 1

      And you can't do that in Postgres? Its basically just this no? (PhoneNumber being array column):
      UPDATE table SET PhoneNumber = array_remove(PhoneNumber, 5551112234) WHERE 5551112234 = ANY(PhoneNumber) ?

    11. Re:"Small" amount of data by Aram+Fingal · · Score: 2

      Or even:

      UPDATE table tablename SET PhoneNumber = PhoneNumber - {5551112234}

    12. Re:"Small" amount of data by Anonymous Coward · · Score: 0

      This is actually quite bad query, if you don't use WHERE it will update *every* row in the table no matter if there was any change or not.

    13. Re:"Small" amount of data by MobyDisk · · Score: 3, Informative

      Locking up tables for over 30 minutes when they haven't even been updated

      There is no vacuuming on tables that have no updates.

    14. Re:"Small" amount of data by LDAPMAN · · Score: 1

      Interestingly, you can get close to "asynchronous multi-master replication while maintaining relational integrity" using using NetIQ eDirectory. I know a number of huge applications that use it in this way. It's not truly ACID but the multi-master replication is unmatched.

    15. Re:"Small" amount of data by K.+S.+Kyosuke · · Score: 3, Insightful

      Missing WHERE in updates is the rm -rf / advice of the RDBMS world.

      --
      Ezekiel 23:20
    16. Re:"Small" amount of data by K.+S.+Kyosuke · · Score: 1

      I don't think it's always dumb, but there's only one non-relational database that has made sense to me, which is AllegroCache.

      --
      Ezekiel 23:20
  4. The stress-testing wasn't needed by DaCo · · Score: 2

    Anybody who's worked on both already knows that NoSQL-based solutions simply don't live up to the hype.

    --
    DELETE MY ACCOUNT
    1. Re:The stress-testing wasn't needed by Sarten-X · · Score: 4, Insightful

      I've worked extensively on both kinds of systems over the past decade. Under a particular workload that is exactly what an RDBMS is designed for, an RDBMS has the best performance? Wow, who would have bet on that one?

      Then again, I've had workloads (my go-to example is writing several billion records in a matter of hours for statistical analysis, with live intermediate results) where a NoSQL solution had the best performance.

      NoSQL isn't some rebellion against traditional databases. Engineering isn't a contest. Rather, NoSQL, column-stores, distributed warehousing, or any other term you'd like to throw out all just point to an additional option for how to manage your data. Pick the right choice for your project, and use it. Don't worry about "web-scale" or "ACID compliance" talking points unless your project needs them. For the past few decades, we've been forced into the assumption that data must perfectly normalized, arranged in tables, and must be queried as relations. For some projects, massaging the data into that form will damage your performance far more than your database engine ever will, so a different engine makes a better choice.

      Stop listening to hype, deserved or not, and use the right tool for the job.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    2. Re:The stress-testing wasn't needed by Anonymous Coward · · Score: 0

      For the past few decades, we've been forced into the assumption that data must perfectly normalized, arranged in tables, and must be queried as relations.

      This is actually the point of the benchmark IMHO, that PostgreSQL is beating Mongodb at storing json documents that you don't have to normalize, you just still use SQL to query them instead of some DB specific language like is the case with NoSQL dbs.

    3. Re:The stress-testing wasn't needed by badboy_tw2002 · · Score: 4, Funny

      "Engineering isn't a contest."

      But...but...I have a hammer. I KNOW how to use a hammer. A hammer is the best! FUCK YOU SCREW! TAKE THAT SCREW! Job complete!

    4. Re:The stress-testing wasn't needed by Required+Snark · · Score: 2
      You forgot a crucial point, this is Slashdot. When you said "Engineering isn't a contest" you violated the Way of Slashdot.

      On Slashdot, it's all about people with deeply held irrational opinions who make unsupportable claims. Additionally, they express themselves in rants and slander, and rational discourse is considered a sign of weakness. If you want to find people who think, you're in the wrong place.

      --
      Why is Snark Required?
    5. Re:The stress-testing wasn't needed by K.+S.+Kyosuke · · Score: 1

      Then again, I've had workloads (my go-to example is writing several billion records in a matter of hours for statistical analysis, with live intermediate results) where a NoSQL solution had the best performance.

      Was that even transactional? That almost sounds like a use case for Kx or similar stuff.

      --
      Ezekiel 23:20
    6. Re:The stress-testing wasn't needed by Sarten-X · · Score: 1

      Was that even transactional?

      Nope.

      The live results were restricted to simple queries (mostly for internal reporting), but the workload to be performed ultimately was more straightforward map-reduce algorithms. Everything (live and final) was statistics, so missing a few records due to lacking ACID wasn't ever a real concern.

      That almost sounds like a use case for Kx or similar stuff.

      It's been a while, but I believe Kx was considered during the initial research phase. Ultimately Hadoop and HBase fit our needs better.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    7. Re:The stress-testing wasn't needed by Anonymous Coward · · Score: 0

      Okay. but why is that?

  5. I dipped my toe in MongoDB by EmperorOfCanada · · Score: 4, Interesting

    I tried MongoDB and I even tried to like it. I do love NoSQL but what I came to realize was that MongoDB was trying to tell me how to solve my problems instead of just storing my damned data.

    But the real problem with MongoDB was that nearly everything, while appearing simple, required a google search to figure out how to do it. A mark of a very well designed API is that you soon start guessing the commands and your guesses are really close or right on. But with MongoDB I found that nothing really made sense. Only after carefully crafted "debate team" arguments could any unusual aspect of MongoDB defend itself. Whereas redis is the opposite, it just works. Or even simpler systems like Memcache, that couldn't be simpler, when read the API for either of those they just made sense. There is no layer upon layer upon layer of complexity. It is data goes in, and data comes out.

    In fact redis would be a good example of ease of use mixed with advanced capabilities. The basic commands are things like get, append, save, while more advanced commands are more esoteric such as PEXPIREAT which has to do with timestamp expiries. So you can happily use redis like a simple minded fool and it is wonderful. Or you can dig in deeper and only mildly shake your head at some of the command names. But with MongoDB it is just a pain in the ass from the first moment you truly have even vaguely complicated data.

    But back to PostgresSQL. The JSON related features are mildly complex but appear to be solving the most common problems. Also by using PostgresSQL it solves the entire debate of relational vs NoSQL. Use PostgresSQL and you can just do both without giving it a second thought. And I for one can certainly say that I have data that demands NoSQL and I have other data that demands relational; all in the same project. But oddly enough the technique that I use is MariaDB for the relational and redis for everything else. This is ideal for me as the relational data is very simple and won't need to scale much whereas the redis stuff needs to run at rocket speeds and will be the first to scale to many machines.

    But as for MongoDB, it has been deleted from all machines, development and deployment and will never be revisited regardless of this weeks propaganda.

    1. Re:I dipped my toe in MongoDB by Anonymous Coward · · Score: 0

      Indeed.

      I'm personally using NoSQL databases now and I'm getting improved performance and better integrity for my data.

      You will depend on google searchs to figure out how to do things when you're a noob and you start to guess when you realize how it works.

      Isn't it expected from an Emperor to consult experts before saying completely random and pointless Things?.

    2. Re:I dipped my toe in MongoDB by Anonymous Coward · · Score: 0

      Butthurt.

    3. Re:I dipped my toe in MongoDB by EmperorOfCanada · · Score: 1

      There are huge swaths of things that I don't understand about most technologies that I use. I could not even begin to enumerate the various obscure ways that "const" can be used in C++. But I have deployed many product using C++. The same with SQL databases which I have huge amounts of data happily going into and out of. These things work as well as I could hope and my understanding of them is well sufficient for me to be happy. I suspect that if I hired a top of the line C++ or SQL expert that both my code and my databases could be vastly improved from a working well to working even better.

      But with both of the above examples, not only did the products get deployed but as new functionality was required no real barriers were hit during development. But with MongoDB basic data in/data out functionality was developed and deployed. But as new functionality was required the fight with MongoDB became a huge waste of time.

      And my credibility comes from the fact that the same functionality was easily deployed in other tools learned before and subsequent to MongoDB. My point being that it was time wasted on a technology that absolutely did not live up to the hype. I didn't say that my MongoDB couldn't do it(who knows) but that the potholed road to getting there was not worth driving when a smooth traffic free 8 lane highway existed going in the same direction.

      So my recommendation is to use MongoDB if you want to look cool in 2012 and like to flagellate yourself.

    4. Re:I dipped my toe in MongoDB by Anonymous Coward · · Score: 0

      Using NoSQL I'm getting better integrity for my data.

      By restricting access to the database by only your application to ensure data integrity? LOL.

    5. Re:I dipped my toe in MongoDB by Anonymous Coward · · Score: 0

      I have to agree with the above post by EmperorOfCanada.

      While I have never had any issue understanding the API, the limitations NoSQL adds are really difficult to work around at times. PostgreSQL has all the benefits of NoSQL whenever you need them without any of the drawbacks. And when multi-master replication comes by the hand of logical WAL logging, it will scale just as nicely as NoSQL.

      NoSQL is a misnomer. People don't want NoSQL, they want NoACID + JSON/hstore, and Postgres has that if you want it.

  6. what are the MEAN hipster coders going to do now? by Anonymous Coward · · Score: 1

    MEAN (MongoDB, Express, Angular.js, Node.js)

  7. The tipping point by tyggna · · Score: 4, Informative

    I've done research against these database programs, and this is really really old news for anyone who has done testing. If you have a single machine, then Oracle is the best performing database, followed by Postgres. When you need more than 4 dedicated servers hosting a database, then mongo can handle about 180% of the volume that oracle can, and about 220% the volume of postgres, and about 110% the volume of Casandra.
    As soon as you need more than one machine to host your database (which usually happens around 1000 active users on your website at any given time, depending on your application), consider switching off of an SQL database.

    1. Re:The tipping point by CastrTroy · · Score: 3, Informative

      Unfortunately is often very difficult to switch database engines, especially if you are switching to NoSQL. I've been on one project where we switched from SQL Server to MySQL, and it didn't go too bad, but that's because the majority of the SQL in the project was standard select, insert, updates and deletes. Had there been a lot of stored procedures, or use of other non-standard SQL the project would have probably taken a lot longer to accomplish.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:The tipping point by Anonymous Coward · · Score: 0

      Oracle is terrible. The sheer number of stupid corner cases it introduces into any given database design is mind-boggling. I'd use Postgres over it any day.

      I'd also use SQL Server over either of them. It's about a million times nicer to use than just about anything else, it has sensible clustering that isn't a performance nightmare, and it's actually cheaper than Oracle, even when you include the Windows Server license needed to run it! The simple fact that you can spin up an Azure instance of it should tell you how well it scales. The limitations of Azure SQL Server also tell you the pitfalls to avoid when clustering it yourself.

      As for "NoSQL" databases, relational database guys call those an antipattern. If your data doesn't have structure, you're doing it wrong. I think most of the drive to use NoSQL comes from "developers" that are hands-off about databases, either by education or by institution.

      When I say "by education", I mean that educational venues are failing miserably at teaching how to use properly structured persistent data stores. This is borne out by the fact that if you talk about "data structures" with a CS grad, he thinks of trivial shit like linked lists and packed values in memory. What he isn't thinking of is that when you write those structures to storage, you can't just have your program take a memory dump (exactly what it sounds like: shitting memory contents all over the storage medium) without causing huge maintenance issues. So we end up with one of three outcomes: 1) Binary flat files of memory-shit that break compatibility whenever the memory map changes, 2) flat text files in some inefficient format like CSV or (shudder) EDI, or 3) a poorly-thought-out, badly-designed database made by someone who doesn't understand databases because their educational system has failed them. To these inexperienced developers, NoSQL looks like a godsend. A simple database that doesn't require arcane knowledge! (Nevermind the fact that it's not arcane, it's just math. And nevermind the fact that the math behind relational databases and the SQL language establishes that these are the most efficient possible methods of working with that data.) Even if it "sucks", learn how to use SQL and relational databases. Learn how to make an ERD, and how relationships work. Learn how conceptual relationships become real relationships (a.k.a. foreign key constraints). Hint: they're all one-to-many unless you did it wrong.

      When I say "by institution", I mean something even worse than the first reason. Some business institutions have, for whatever reason, locked away any and all knowledge of The Database so that the developers responsible for writing software to interact with it are not allowed to touch it. As a result, the schema is increasingly detached from reality, and developers get a certain us-vs-them attitude against the "database priesthood". This leads to an extremely unhealthy development practice called "do everything in the application layer". This leads to bullshit like ORM layers, memory usage bloat caused by huge datasets being kept in memory, scratch files with millions of records, and other general dipshittery. It also leads to the "Javascript attitude" (as I like to call it), where everything has to be done in the application, and no one is to be trusted to write a back-end. To hell with efficiency, it's all about institutional trust (or a lack thereof). Also, throw in an unhealthy dose of NIH. My advice is to decide whether you can put up with a shitty job for the ridiculous amount of money they're paying you or if you should just move on to greener pastures, then act on that decision.

      The fact is, if you know what you're doing (read: are competent at your job as a developer), SQL isn't confusing. Do understand how data gets from the database to your application. Do understand how to write efficient SQL queries. Do understand how to use store

    3. Re:The tipping point by MillerHighLife21 · · Score: 2

      Have you seen Postgres-XC? It's pretty much built for this purpose.

      http://postgresxc.wikia.com/wi...

      --
      "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    4. Re:The tipping point by Just+Some+Guy · · Score: 2

      If you have a single machine, then Oracle is the best performing database, followed by Postgres. When you need more than 4 dedicated servers hosting a database, then mongo can handle about 180% of the volume that oracle can, and about 220% the volume of postgres, and about 110% the volume of Casandra.

      This, this, a million times this. A recent employer needed to be able to sustain 250,000 inserts per second. Not 24/7, mind you, but at random prolonged intervals throughout the day. The "PostgreSQL is the fast" chart shows it handling 10,600 bulk load operations per second or 1,700 individual inserts per second. That would be about 1/150th of the insert load we needed to handle.

      I'm a huge fan of PostgreSQL - when it's appropriate. If you need strong relational and consistency guarantees, there's nothing I'd recommend over it. But sometimes you just need to move enormous amounts of data around very, very quickly. That's the use case where various NoSQL stores suddenly become very attractive. We chose Cassandra here because its big-O algorithmic complexity matched up very nicely with our access patterns, being O(1) where we needed it to be and O(n^2) where we couldn't care less.

      --
      Dewey, what part of this looks like authorities should be involved?
    5. Re:The tipping point by Anonymous Coward · · Score: 0

      The problem with relational databases is that they only support product types, not sum types.

      Until databases support sum types, I will treat them as the stupid storage systems they are.

    6. Re:The tipping point by Anonymous Coward · · Score: 0

      How does it compare to Postgres-XL?

    7. Re:The tipping point by MillerHighLife21 · · Score: 1

      No idea. Hadn't seen XL before.

      I saw that EnterpriseDB offered to support XC though. http://www.enterprisedb.com/se...

      --
      "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    8. Re:The tipping point by MillerHighLife21 · · Score: 1

      Although, on further examination it looks like it is structured almost EXACTLY the same.

      --
      "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    9. Re:The tipping point by Anonymous Coward · · Score: 1

      The thing is, excluding minor variations in ACID implementations and guarantees, you are limited by your storage hardware regardless of what technology you use. Cassandra was able to outperform PostgreSQL because you compared many servers running Cassandra against one server running PostgreSQL. Cassandra makes data access between many servers easy (once you get used to its specialized API), but you could have done the same on multiple servers with their own PostgreSQL server by sharding your data among them. Ultimately, a person would choose Cassandra over PostgreSQL when Cassandra's specialized API becomes simpler than using standard SQL via sharding and PostgreSQL's legendary stability and large ecosystem of tools is not a strong desire.

    10. Re:The tipping point by Per+Wigren · · Score: 3, Informative

      Postgres-XC's main focus is OLTP workloads. Buzzword: Web Scale.
      Postgres-XL's main focus is OLAP workloads. Buzzword: Big Data.
      They both borrow code from each other. At some time in the future it's entirely possible that the two will merge.

      --
      My other account has a 3-digit UID.
    11. Re:The tipping point by Just+Some+Guy · · Score: 1

      you are limited by your storage hardware regardless of what technology you use.

      Well, right, but I think we set our expectations too low in some cases. For example, the data item {"key": "foo", "value": "bar"} serializes to 30 bytes of JSON. With a few bytes to act as record separators, a hard drive with a 100MB/s write speed should be table of recording about 3,000,000 items per second. There's a lot more overhead than that, of course! But in the document we're discussing, PostgreSQL was averaging about 1,700 inserts per second, or about 170,000 times slower than the hypothetical maximum. Exactly how much overhead should we expect to have when doing simple inserts into a non-foreign-keyed table?

      Cassandra makes data access between many servers easy (once you get used to its specialized API), but you could have done the same on multiple servers with their own PostgreSQL server by sharding your data among them.

      Our write throughput was 150 times that of the "fast" PostgreSQL server in the article. We were running Cassandra on a cluster of 4 decent sized (but not heroic) EC2 instances. We had neither the time, money, nor desire to replace a 4-node Cassandra cluster and its out-of-the-box configuration with a 150-node sharded PostgreSQL cluster. Sure, it could be done, but there was no reason in the world why we'd want to.

      Cassandra/MongoDB/Redis/etc. are not appropriate replacements for PostgreSQL in every - or even many - cases. Likewise, PostgreSQL is not an appropriate replacement for them when dealing with their own specialized use cases.

      --
      Dewey, what part of this looks like authorities should be involved?
    12. Re:The tipping point by anchovy_chekov · · Score: 1

      Postgres-XL is currently compatible with Postgres 9.2. Postgres 9.3 introduces better support for JSON data that bring it closer to the functionality of a NoSQL DB. It looks like XL will be compatible with 9.3 in the near future.

    13. Re:The tipping point by Anonymous Coward · · Score: 0

      It's not about understanding as much as it is about limiting.

      Many see relational databases as limiting, and they're right. If you make a fully normalized and consistency-checked database, it will hurt when you scale.

      But it's not necessarily a bad thing, and you can remove consistency checks and normalization whenever the need arises. And you can use the technologies behind them to build very scalable systems. This is where understanding fails: that relational databases are a superset of non-relational ones.

  8. The best one. Ah. by Anonymous Coward · · Score: 2, Interesting

    "MongoDB, the leading document database and NoSQL-only solution provider,"

    According to who?
    What happened to all the rest of them, like CouchBase or Riak?

    I will admit bias, though. I like my db's eventually consistent.

  9. No news! by aglider · · Score: 2

    Whoever did serious performance tests against PostgreSQL already knew!

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:No news! by rtaylor · · Score: 1

      Actually, they didn't. The benchmarking was done as the JSONB feature in Pg is brand new and they wanted to see how it stood up to the competition (being much much slower is a sign that something could be improved).

      Being faster on a single node was a surprise.

      --
      Rod Taylor
  10. Re:what are the MEAN hipster coders going to do no by Anonymous Coward · · Score: 3, Insightful

    Anything but read a computer science textbook

  11. Please design a test by plopez · · Score: 1

    And then let it be reviewed.

    --
    putting the 'B' in LGBTQ+
  12. Now, if only they'd come up with... by QuietLagoon · · Score: 1

    ... a pronounceable name for the PostgreSQL software, one that does not require a FAQ entry to instruct in the correct pronunciation.

    1. Re:Now, if only they'd come up with... by jasonrice22 · · Score: 1

      post grrrrr!

  13. The tipping point by Anonymous Coward · · Score: 1

    same applies for either disconnected operations (Couch) or multi-data center deployment for HA.

  14. Still goes into RAM by Chirs · · Score: 2

    Even when using sendfile() in linux, the disk does a DMA transfer into RAM, and the NIC does a DMA transfer out of RAM.

    While the CPU is not involved in copying the data, it still goes into RAM.

  15. Re:Biased to the point of Worthless by Anonymous Coward · · Score: 1

    It is not FUD. They add a compatibility layer for a certain proprietary database vendor who charges an arm and a leg for functionality that PostgreSQL gives you for free.

  16. ...Only Pawn in game of life by Anonymous Coward · · Score: 1

    Candygram for Mongo!

  17. Bejeweled by tepples · · Score: 1

    ZooKeeper? Isn't that the old version of Candy Crush Saga that had Tetris Attack-style skill chains?

  18. Re: Replication anyone? by Anonymous Coward · · Score: 0

    Try orientdb.

  19. Who gives a craphs by Anonymous Coward · · Score: 0

    Seriously.

    Use access and be done with it!

  20. "NoSQL-only?" by Anonymous Coward · · Score: 0

    Isn't CouchDB a NoSQL database solution?

  21. Re:Replication anyone? by Anonymous Coward · · Score: 5, Funny

    Can PostgreSQL do replication? Not really.

    That's news to me, I guess the data on our read servers just magically appear and what more magically appear to be the same data we need there.

  22. Not surprising... by rgbatduke · · Score: 5, Interesting

    ... because of the way MongoDB actually stores records and parses them. It is more or less a simple tree or linked list, and hence doing almost anything involves decending branches to the leaves. This is horrendously inefficient in many contexts, while still being perfectly lovely in others. Just doing a match, though, can involve a non-polynomial time search. Maybe they've improved this from when I was trying to use Mongo to drive modelling, but I doubt it as it would have involved substantially changing the way the data is actually stored and dereferenced. I had to cheat substantially in order to get anything like decent performance, and any of the SQLs outperformed it handily.

    Note well that it was strictly a scaling issue. For small trees and DBs, it probably works well enough. For large DBs with millions of records and substantial structure, it is like molasses. Only worse.

    rgb

    --
    Even when the experts all agree, they may well be mistaken. --- Bertrand Russell.
  23. The tipping point by n1ywb · · Score: 2

    My understanding is that it's easy to spread READ ONLY postgres load accross multiple servers. WRITING is a bottleneck with postgresql though because it enforces consistency, while other DBs like couch kick the consistency can down the road to the application. But I haven't seriously looked into it in years.

    --
    -73, de n1ywb
    www.n1ywb.com
  24. Re:Replication anyone? by buddyglass · · Score: 1

    With PostgreSQL everyone is trying really hard to ignore the elephant in the room...

    I see what you did there...

  25. Re: what are the MEAN hipster coders going to do n by Anonymous Coward · · Score: 0

    You and the parent are both fucking idiots. Pull your head out of your ass.

    The MEAN stack is an excellent tool for specific problem domains. The patterns used in the MEAN stack are virtually indistinguishable from the patterns used in, say, a modern Microsoft web stack. ORM, MV*, templated HTML and a backing data store.

  26. I've been in plenty of places by kilodelta · · Score: 1

    Where Postrgres and MySQL were used for web applications and they performed very well.

  27. Re:what are the MEAN hipster coders going to do no by badboy_tw2002 · · Score: 1

    Launch more instances?

  28. Could that chart suck more? by Just+Some+Guy · · Score: 2

    Look at the "MongoDB 2.4/PostgreSQL 9.4 Relative Performance Comparison" and see that MongoDB's bars are much higher than PostgreSQL's, with labels like "276%" and "465%". That looks like MongoDB is much better, right? Oh, oops! Apparently that's how much slower MongoDB is.

    --
    Dewey, what part of this looks like authorities should be involved?
  29. You forgot SQLite by gman003 · · Score: 1

    I really, really hope nobody is using SQLite for a production web database, but sadly I know somebody probably is.

    1. Re:You forgot SQLite by mi · · Score: 1

      I really, really hope nobody is using SQLite for a production web database, but sadly I know somebody probably is.

      I was considering it, actually — for when the web-server and the DB must be on the same host for budgetary reasons.

      What's wrong with it?

      --
      In Soviet Washington the swamp drains you.
    2. Re:You forgot SQLite by K.+S.+Kyosuke · · Score: 1

      Why not embedded Firebird? Sounds much less hazardous to me.

      --
      Ezekiel 23:20
    3. Re:You forgot SQLite by Anonymous Coward · · Score: 0

      SQLite is a fantastic teaching tool. The very first MooC I ever did (which got me addicted) is available at https://class.stanford.edu/courses/DB/2014/SelfPaced/about and pretty much based on SQLite.

      SQLite's name is a bit of a misnomer since it speaks a bigger subset of the SQL vocabulary than any other open source database (at least this was true about two years ago, but things change fast).

      It's not a "real" database, however, in that it doesn't run a server to handle lots of potentiallly concurrent deletes or updates. It's similar to Excel in that it simply reads and writes to a file.

      Besides it's primary function as a teaching tool, SQLite is also popular for testing applications with database backends since it doesn't require getting a daemon running, creating users with relevant permissions... all the things "proper" databases require.

    4. Re:You forgot SQLite by mi · · Score: 1
      It is not my application. It does support SQLite (among others), though.

      But let's not change the subject — nor answer a question with a question...

      --
      In Soviet Washington the swamp drains you.
    5. Re:You forgot SQLite by gman003 · · Score: 2

      The performance degrades (or at least, doesn't scale well) once you have multiple processes accessing the same database, as you would be on a web server. It's a great tool, don't get me wrong, and I can definitely see the use case for a test environment. But even on a single-server system, you're better off with an actual database process.

    6. Re: You forgot SQLite by Anonymous Coward · · Score: 0

      Heh, I've actually worked recently on a project that uses thousands of SQLite files to store data. Not directly accessed by websites, more of a SaaS, but certainly larger than I would have ever believed possible.

      Yes there are probably better ways, but here's the thing: it worked very, very well for that environment. Also, the cost to change would be well into the millions of dollars. It's simply far more cost-effective to throw massive hardware at it for scale.

    7. Re:You forgot SQLite by ls671 · · Score: 1

      It reminds me of msql (miniSQL) that was single threaded so a long request would make the others wait. In another topic, MS-SQL server login was single threaded back in 2000 although the server could handle parallel requests I think. I assume it must have been fixed by now. You could deny all other users from login just by telnetting to the MS SQL port and sit there, put into a loop when the connection timed out and almost nobody could login to the server.;-)

      https://en.wikipedia.org/wiki/...

      --
      Everything I write is lies, read between the lines.
    8. Re:You forgot SQLite by Grishnakh · · Score: 1

      It seems the real use for SQLite (besides teaching) is for cases where you simply don't have multiple processes accessing the same database, or if they do occasionally, performance isn't a big concern. One big example I can think of is storing configuration variables for applications. That's not something you want to have a full-blown database like PostgreSQL running for, but it can be handy to use SQLite so you have more power than you'd get with flat files.

    9. Re:You forgot SQLite by gman003 · · Score: 1

      Oh, exactly. I used SQLite for a game database - RPGs have a lot of stats and such, and SQLite was a million times faster than the hand-rolled CSV parser I was using. And I love how focused it is on reliability and correctness and standards compliance. It's just not built for certain things - it will work as a web database, and one of the frameworks I use even ships with it as a testing option, but it's not a good pick for production use.

  30. Re:Replication anyone? by cdwiegand · · Score: 2

    Can MongoDB do master-master replication? Oh, it's can't, and really only CouchDB does in the NoSQL space? Oh, that's too bad. Of course, most of us don't NEED M-M replication, as it introduces serious issues with reliability (oh I wrote the client record to server A and then queried server B on the next page load and it didn't exist yet -> Null Exception #AWESOME!) and is only useful for backups/reporting/import/export scenarios. The rest of us who actually want to GET WORK DONE will probably continue with relational DBs and post JSON documents as needed into our databases (e.g. json doc for lists/complex objects where we don't want/care to index any fields within).

    And ACID doesn't fall apart at all in sharding - what are you smoking?? You implement a standard sharding scheme and the same record always goes to the same server. NoSQL doesn't do a thing for sharing... Replication is a problem, but it is for NoSQL too.

    --
    . Define sqrt(x) as something really evil like (x / rand()), and bury it deep. Watch your coworkers go nuts.
  31. Re: by Anonymous Coward · · Score: 0

    Which is ( kind of ) a common use-case for noSQL.
    I'm sure a lot of people who hate noSQL actually use and like memcached a lot, which is quite ironic IMO. Memcached is a volatile noSQL database after all ( lets not get too caught up in semantics here ).
    You could achieve pretty much the same effect by caching in the database, but memcached does a lot of useful things and performs really well.

    My point is that noSQL can be really useful together with regular sql, and a lot of people use them that way. It's not necessarily an either or thing.

  32. what are the MEAN hipster coders going to do now? by slashdice · · Score: 1

    The hipsters got a case of HPV - Haskell, Postgres, and Varnish. The only cure is more buttsechs.

    --
    Copyright (c) 1990 - 2014 Dice. All rights reserved. Use of this comment is subject to certain Terms and Conditions.
  33. Re:Biased to the point of Worthless by vipw · · Score: 1

    Which proprietary database vendor would that be?

  34. Re:Replication anyone? by Anonymous Coward · · Score: 0

    "You implement a standard sharding scheme and the same record always goes to the same server."

    Yah, that's totally ACID. I would love to see how to put two updates on different servers on the same transaction.... Must be that I'm smoking.

  35. of course by Anonymous Coward · · Score: 0

    Of course it outperforms PG & Oracle because little things like ACID transactions.

    Throwing out things like ACID, triggers and referential integrity give you a huge performance boost.

    1. Re:of course by anchovy_chekov · · Score: 1

      Exactly. In much the same way that removing the brakes, airbags, firewall, etc will make your car travel faster downhill.

  36. Re:Biased to the point of Worthless by wenzi · · Score: 1

    Ok, then I am confused by why they call themselves "The Postgres Database Company" Do you mean a compatibility layer for Oracle ? Oracle has their own NoSQL database which is not Mongo.

    --
    -- I doubt, therefore I might be.
  37. Re:Replication anyone? by Anonymous Coward · · Score: 0

    "Can MongoDB do master-master replication?"

    uhmmm.. yes? All mongodb nodes are "masters".
    "most of us don't need M-M".
    Well, I have some uses for it, In fact I've used it a lot with MySQL. And about the asynchronicity.... some times you can go perfectly well without it. Sometimes not. But you don't have to try to use a hammer for everything.
    Using ACID compliance when not needed, is a waste. As is mad not using it for anything that relays on transactions.

    Our work is precisely choose wisely, that's it.

  38. Re:Replication anyone? by steelfood · · Score: 1

    Any sufficiently advanced technology is indistinguishable from magic.

    - Arthur C. Clarke.

    I guess MongoDB's replication just isn't advanced enough.

    --
    "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
  39. Postgres the best NoSQL DB by anchovy_chekov · · Score: 1

    Just in my experience, the introduction of HStore and JSON data types in Postgres has pretty much nullified the advantages I'd get from using a NoSQL DB. Sharding, high availability, etc are all there with a little work (and help from the many 3rd party projects in the Postgres "ecosystem"). Every now and then I find myself tempted to run a project using a NoSQL DB, but the trade offs (lots of memory, lack of ACID compliance, nascent querying languages, etc) bring me back to Postgres.

    Of course there are situations where Mongo or other NoSQL DBs make sense. Using something like InfluxDB for time series data looks pretty neat, and having highly optimized lookup data in a NoSQL DB is great. In the end, you use the database system that makes sense in your work - and avoid the cargo-culting of any technology just because it's the new hotness.

    I've been really happy with Postgtes's performance over the years. Raw speed is not an issue - you can always add more nodes using something like Postgres-XL if you have to. It's the gradual introduction of functionality that makes my life easier that I appreciate.

  40. Re: what are the MEAN hipster coders going to do n by Anonymous Coward · · Score: 0

    It's a fine stack except for the MongoDB part. MongoDB is crap. Use Cassandra or something if you want NoSQL. Just please don't use MongoDB, its developers are clueless.

  41. Replication anyone? by Anonymous Coward · · Score: 0

    Yes, PostgreSQL does replication. It's your problem if you don't wanna read the docs.

    MongoDB is great for replication as long as you don't care about your data. I don't know about you but I care about my data.

    If you want really impressive replication, use Cassandra or something.

  42. Watch out! Here comes a fact! by Anonymous Coward · · Score: 0

    Looks like somebody already found a performance issue in their code that almost certainly makes this a poor comparison: https://github.com/EnterpriseDB/pg_nosql_benchmark/pull/6

    P.S. writing solid benchmarks to compare different technologies is *really* hard.

  43. TinySQL Isn't Tiny by RuffMasterD · · Score: 1

    Like other great recursively named open source projects, they should call it 'TinySQL Isn't Tiny' or something. It's both edgy and non-ironic. Maybe they worry people will stop taking their project seriously though.

    --
    Human Rights, Article 12: Freedom from Interference with Privacy, Family, Home and Correspondence
  44. TokuMX - MongoDB with full ACID by Anonymous Coward · · Score: 0

    I was just wondering why nobody has mentioned TokuMX in this thread. It's a MongoDB with a new high performance backend - with full ACID.

    http://www.tokutek.com/products/tokumx-for-mongodb

  45. Re:Replication anyone? by Anonymous Coward · · Score: 0

    Can PostgreSQL do replication?

    Yes.

    Not really.

    Yes, really.

    Don't even talk about master-master replication....

    That's in development as we speak.

    I know you're already modded as troll, and rightly so, but it should be pointed out that you're also incorrect, and that's now done.

    It might be that you're just ignorant, but it's hard to tell the difference.

  46. Re:Replication anyone? by Anonymous Coward · · Score: 0

    Yeah, mod parent up. There's a serious misunderstanding of the causes behind the difficulty to scale relational databases.
    The problem is not the ability to relate records, it's the will to do so. NoSQL takes away the ability and suddenly everybody thinks they can shard. But they can also shard with relational databases if they give up relating records in different shards. There's no need to drop ACID or switch technologies, just apply them differently.

  47. Re: what are the MEAN hipster coders going to do n by Anonymous Coward · · Score: 0

    Cassandra is even worst, mind you.

    A database that uses up a whole 10 MB of disk space in postgres, uses up 600MB in Cassandra last time I tried. There's no amount of cleverness that can make that not a performance hinderance, not to mention a provisioning nightmare.

  48. Re:Replication anyone? by Anonymous Coward · · Score: 0

    "You implement a standard sharding scheme and the same record always goes to the same server."

    Yah, that's totally ACID. I would love to see how to put two updates on different servers on the same transaction.... Must be that I'm smoking.

    Two-phase commit