Hacker News new | ask | show | jobs
Document-level locking and compression come to MongoDB (docs.mongodb.org)
48 points by IanWhalen 4236 days ago
8 comments

Keep in mind that document-level locking will be available only for WiredTiger storage engine and not default one (MMAPv1). MMAPv1 will support only collection level locking. The same story goes for compression. Also only available in WiredTiger. Question remains - how stable will WiredTiger be in 2.8...
I haven't checked WiredTiger storage driver nor it's source but I think it's safe to say that the in-place updates are not possible with Wired Tiger (even without compression) and most future storages.

People must be careful not to heavily update big documents with these.

I would say that document-level locking is a big deal for MongoDB. When I was working at a company running MongoDB, we were running into latency issues when multiple larger documents would be updated or created. Coupled with the fact that we were using AWS and provisioning even 1000 IOPS was expensive and limited compared to IOPS available to SSDs. On top of all of that we weren't using the fire-and-forget default for writing data. We were requesting write receipts.

Document-level locking will likely result in much better performance for MongoDB.

Nice to see WiredTiger getting some love. LevelDB gets all the credit these days (and LMDB to a [much] lesser extent).
What is WiredTiger? I checked the github, but couldn't find any high level information other than it uses a LSM much like LevelDB. What advantages/tradeoffs have they made in WiredTiger vs. LevelDB?
TFA links to http://www.wiredtiger.com/ which have some bold claims and jolly graphs -- and a link to: https://github.com/wiredtiger/wiredtiger

I hadn't heard of wiredtiger either. Looks interesting. Anyone know how it compares to LMDB[1]? Both in terms of features and maturity? Apparently made by the people that gave the world the Sleepycat Berkley DB.

[1] http://symas.com/mdb/

It's an embedded ordered key value store, like LevelDB. It's actually configurable to either LSM or BTree. Everything I read says it's much faster than LevelDB, but I never tested it myself.
MongoDB seems to be going through the same phases that MySQL did about 10 years ago with the 3.x series. It's interesting to see the progression and I look forward to these improvements but there seems to be so many other choices out there, although at the small level, not nearly as easy to use.
Great news! I also like the new 50 replica limit.

I gave up on MongoDB after 2.6 but it sounds like they're finally maturing to a true production ready datastore.

mangoDB (https://github.com/dcramer/MangoDB) has significantly faster writes than MongoDB.

On a serious note, Postgres 9.3 with the JSON data type is quite comparable to MongoDB these days.

The most appealing feature of many NoSQL databases, for me, is their ability to automatically shard and replicate data across multiple instances. It is possible to do this with relational databases such as Postgresql, but it is not easy from my experience. Also failover and balancing sharded data are not things that are easy with relational databases.
Wow. Great news!