Friday, August 01

Geek

Your MongoDB Has Evolved!

So, I got an email in my inbox about the MongoDB World conference and new features in MongoDB 2.8, and I'm like, yawn, wake me up when you have document-level locking and pluggable storage engines.

And the email is like:
... two new features available in MongoDB 2.8: Document-Level Locking and the Pluggable Storage Engine.
Oh.

Well, then.

ACID transactions too, maybe?  Hmm?

TokuMX is a fork of MongoDB that provides document-level locking and a new storage engine with very effective compression (typically 5:1 vs. standard MongoDB), and ACID transactions on top of that.  It's great.  But it does drop a couple of features from MongoDB (full-text and geospatial indexes), and it turns certain common operations in MongoDB into anti-patterns.  For example, explicit read-modify-write transactions work better on a busy database than MongoDB's built-in atomic operations.*

If MongoDB continue to improve their game and Tokutek improve theirs as well, it's a win-win, because it provides two viable open-source NoSQL databases with a common API.  You can choose one or the other for your implementation-specific requirements, rather than having to deploy multiple databases to fit the needs of one application.  Polyglot storage is red flag that your database isn't there yet.

* Or at least they did, I should take another look with TokuMX 1.5.

Posted by: Pixy Misa at 05:28 PM | Comments (5) | Add Comment | Trackbacks (Suck)
Post contains 216 words, total size 2 kb.

1 I worked as a software engineer for 25 years, but I never had anything to do with databases. (All my stuff was embedded.) This shit is a black art, you know? How often do you have to sacrifice a bandicoot on a black altar?

Posted by: Steven Den Beste at Saturday, August 02 2014 12:00 AM (+rSRq)

2 It's becoming slightly less of a black art these days thanks to fast CPUs, cheap RAM, and SSDs.  The huge problem in the past was maintaining high throughput and transactional integrity when your storage medium was millions of times slower than your CPU.


Redis, for example, throws out all the hard stuff; it's single-threaded and stores all the data in RAM (with snapshots and a replay log on disk), but it can still achieve 100,000 operations per second on commodity hardware.

But yeah, I've been building database applications for...  25 years...  And for most of that time I've been the database expert for the dev team or the DBA or both.  So all the weirdness seems natural to me now.

Posted by: Pixy Misa at Saturday, August 02 2014 12:28 AM (PiXy!)

3

Yeah, I suppose to an outsider, embedded software would seem to be a black art, too. It's all in what you are familiar with.

It's a bit strange that even a field as concentrated as Software Engineering now has so many sub-specialties which are completely unrelated. Neither of us would understand compiler jocks, for instance. Or folks working on 3D rendering.

Posted by: Steven Den Beste at Saturday, August 02 2014 06:04 AM (+rSRq)

4 I gotta say, any time I have pretensions of being a real database engineer, I can come here and be rudely disabused of those notions.

I use databases all day, but they're, well, legal databases, which means they are to real databases what a law library is to the Internet. When I started doing this, the main DB we used was a flat-file system (and this is not "way back when flat-file systems were all we had and walked uphill both ways in the snow" - it was 2009!) Things have improved a little bit since then in that catastrophic data loss is not a -regular- occurrence...

Posted by: Avatar_exADV at Saturday, August 02 2014 02:17 PM (zJsIy)

5 I was quite happy to get out from the embedded software. I felt too expendable there. Besides, it's not like the experience matters anymore except in very narrow fields. Instead, we just add a few bytes and outsource to China. Since the modern programmer must become awesome or perish, embedded work didn't seem like a suitable platform (unless I'd run startups, but that didn't happen). So, when recruiters e-mail me about embedded work, I roundly ignore them. I used to reply that I'm getting to old for shit like board bring-up, not I don't even do that anymore.

Posted by: Pete Zaitcev at Friday, August 08 2014 05:38 AM (RqRa5)

Hide Comments | Add Comment

Comments are disabled.
49kb generated in CPU 0.0125, elapsed 0.0998 seconds.
56 queries taking 0.0918 seconds, 342 records returned.
Powered by Minx 1.1.6c-pink.