maxedmelon
maxedmelon

Reputation: 251

Which noSQL database to choose for a network daemon?

I am writing a custom server, which should be very performant. It has 100.000-600.000 clients connected, and like 10 million records stored. Database will run on a single server.

The server code is realized via twisted framework (in python). Now I had it use MySQL, but I think a NoSQL database would be much more efficient (no complex queries, many simple writes / timestamp changes and many simple reads).

Which NoSQL database should I go for? Easy indexing would be a plus, I want the option to search the database from an administration system, create groups from logs containing a specific keyword and stuff like that.

I had a look at Cassandra and MongoDB, MongoDB seemed easier to get in / use for me.

Thanks for the help!

Upvotes: 1

Views: 312

Answers (3)

DNA
DNA

Reputation: 42607

Cassandra is really designed for multiple server nodes, providing transparent replication. So you won't get the best value out of it with a single server host. Cassandra is also designed primarily for large-scale (and sacrifices indexing and flexible queries as a result). 10 million records isn't really very big, so you can afford to try something more flexible but less scalable.

Upvotes: 0

Danimal
Danimal

Reputation: 7710

You have pretty simple requirements: easy indexing, arbitrary searches, grouping on keyword, etc -- pretty much every NoSQL system would work. It really comes down to the technologies with which you're comfortable. Like C#? Then go with RavenDB -- it can even automatically add indices as you execute queries. Like Erlang? Then you're a freak, but you should go with CouchDB. Like Javascript and JSON? Go with MongoDB.

Personally I really like Mongo, as it feels like a lovely hybrid of SQL and NoSQL databases. You can index the hell out of it (and get amazing performance!), which makes it almost like a RDBMS. You can also use it like a key/value store, and use it like a "giant hashtable in the sky". Still, YMMV. Play with them and see what works for you.

Upvotes: 1

Jonathan Oliver
Jonathan Oliver

Reputation: 5267

As far as pure learning curve goes, MongoDB has positioned itself to be a very friendly alternative to MySQL. Cassandra is a very different beast and will have a higher learning curve. That said, both have the potential to solve your problem based upon what you describe.

Upvotes: 1

Related Questions