NoSQL Zone is brought to you in partnership with:

Nuno Jobs is a Geek. Open-source enthusiast. Traveller. Creating the future of information management systems at MarkLogic. Likes photography, dinosaurs, and funny hats. Go to to see his profile and more content. Nuno is a DZone MVB and is not an employee of DZone and has posted 8 posts at DZone. You can read more from them at their website. View Full User Profile

ACID Transactions at the PB Scale with MarkLogic Server Presentation Video

  • submit to reddit

We all know how relational databases work. We all know very well how to solve the problem of squeezing data into tables and getting answers out of it using the old SQL dialect.

But what about when we have a document database? How can we allow our document to remain in their original shape and still get any answer we want using newer database dialects like XQuery or JavaScript? How would you engineer a database for unstructured data?

Many have tried. Search engines do it by... not being a database! They give away query time flexibility so you can index massive amounts of textual documents. If you want to do a text search, they're great, but if you want to treat documents like a database - issuing ad hoc queries that understand the document structure - they can't.

Other document databases like CouchDB create something like serialized views of the data that give you query performance at the cost of ad-hoc queries. Others like MongoDB allow you to create relational-like indexes on top documents in a somehow flexible way by giving up on transactional guarantees. If you want ad-hoc queries and transaction guarantees, you need something else. If you want full-text search you also need something else.

In MarkLogic we pride ourselves in having a high throughput, ACID compliant, fast ad-hoc query engine supported by both inverted indexes (that make MarkLogic look like a search engine) as well as range indexes (which are more common in relational-land).

MarkLogic doesn't make compromises. You can issue ad-hoc queries that understand the document structure. You can have transactional guarantees. You can run full-text queries, or database-style value or scalar queries, all in one and with ACID guarantees.

In Berlin I got the chance to introduce our architecture in a session named "ACID Transactions at the PB Scale with MarkLogic Server". I invite you all to watch it and challenge me with your questions.




Published at DZone with permission of Nuno Job, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)