NO-SQL reliable for small business app?

704 views Asked by At

I'm deciding between go for a NON-SQL engine or a regular SQL one for a document managment system for small bussines.

I have experience with firebird/sql server and found a good track of reliability (specially with firebird).

This market is full of crappy "servers" (clon-made PC, the mayority), cheap harddisk, rarely use of RAID or anything like that, some are in locations where a power-off is normal, some not have a UPS, etc... (I will include off-site auto-backup to external servers, but that no change the internal setup). (I know about end-user education about such proper setups, but is stupid depend on that, so stick to te point)

From the desing point of view, a schema-less database is the way to go for my system, but, I worry if any of the actual solutions (MongoDb, Tokyo Cabinet, etc) are like firebird and survice crash, malfunctions & abuse so data corruption is very rare.

The plan is store the office documents there & provide a central repository.

2

There are 2 answers

2
AudioBubble On

Check out Neo4j. It is a graph database (schema-free) that can be used like a document or key/value store.

Neo4j has been in production for many years in environments like you describe. Unlike many other NOSQL databases Neo4j actually flushes data to disk and uses a transaction log to recover from an inconsistent state. It also has real transactions (full ACID) that can span multiple operations and treat them as a single unit (which also seems to be a feature that is frequently left out in many other NOSQL stores).

-Johan

(Disclaimer: I am part of the Neo4j team)

2
filippo On

CouchDB has the reliability you need:

The CouchDB file layout and commitment system features all Atomic Consistent Isolated Durable (ACID) properties. On-disk, CouchDB never overwrites committed data or associated structures, ensuring the database file is always in a consistent state.

Look at the ACID Properties section here for more info.

With CouchDB you also get easy backup and replication.

I've no code in production using CouchDB yet, but so far I'm very happy with the tests and the development process with CouchDB.