views:

471

answers:

4

Hello all,

I'm working on an application that I'm going to write with C and i am considering to use a nosql db for storing timeseries data with at most 8 or 9 fields. But in every 5 minutes there will huge write operations such as 2-10 million rows and then there will be reads(but performance is not as crucial in read as in the write operation).

I'm considering to use a NoSQL db here in order to store the data but couldn't decide on which one to use. Couchdb seems to have a stable driver called pillowtalk for C; but Mongo's driver doesn't look as promising as pillowtalk. I'm also open to other suggestions.

What is your recommendation?

+4  A: 

For crazy performance contraints you can't beat Tokyo Cabinet: http://1978th.net/tokyocabinet/

There is also a server component called Tokyo Tyrant which looks really cool.

jckdnk111
Does it have a C api and can you provide me some benchmark info related to this.
systemsfault
It's written in C and has an excellent API. You can read the benchmarks here: http://1978th.net/tokyocabinet/benchmark.pdf
jckdnk111
wow results are pretty awesome, i'm currently testing tokyo cabinet. Also from the document you have sent cdb's performance looks appealing too. What are the major benefits of tokyodb over cdb?
systemsfault
I prefer TC because it is maintained, has full-text search extensions, and has excellent packages for other languages. If these things aren't that important then cdb might be a viable alternative (I've not actually used it so I can't say how it stacks up against TC in the real world). Good Luck!
jckdnk111
+1  A: 

What about Sqlite? The site is here. The front end to edit/manage the sqlite database is sqliteman.

Hope this helps, Best regards, Tom.

tommieb75
yeah i know about sqllite and bdb. But i'm not sure if rdbms will fit into my case. Because my major purpose here is to archive the data. I will not perform complex queries. also the vertical scalability of couchdb also look appealing. But this option that you have mentioned is still in my mind.
systemsfault
@holydiver: look in here...at the other SO question...http://stackoverflow.com/questions/417917/alternatives-to-sqlite
tommieb75
+1  A: 

Does your project want to support some form of offline data? If so you should probably go with CouchDB since the replication model is designed to support offline data changes and sync.

mikeal
yes actually it supports offline data. but couchdb is pretty slow when compared to other options.
systemsfault
i know of couchdb databases with many terabytes and lots of indexes running plenty fast for lots of concurrent users.most of the MongoDB benchmarks (for writes) are a little misleading since insert() calls in MongoDB don't return a response and aren't guaranteed to be written to disc or even accessible. MongoDB write benchmarks seem to mostly test socket.write() times :)
mikeal
+3  A: 

MongoDB works great with C - there is both a C driver and a C++ driver. The database uses the C++ driver itself for functions like replication (MongoDB is written in C++).

http://www.mongodb.org/display/DOCS/Drivers

dm