I have been doing some Python programming recently and needed a database. I tried mongodb and it is pretty easy to use, but its performance is terrible--I think it is because I have funny needs.

I was hoping of one of you could point me in a better direction. (Or tell me to quit looking and write my own.)

Here are my needs:

 - Open source (GPL 2, MIT, etc.), easy to use from Python, to run on
   Linux, no need for relational stuff, don't want to have to embed
   another language (would prefer no SQL).

 - Multiuser, but only a dozen-ish clients, all on the same
   machine--or possibly on the local network. Don't care about big
   transactional systems that can replicate and operate when
   partitioned, etc. This is small stuff. Maybe as small as Raspberry
   Pi to maybe as big as cheapest available x86 system.

  - Durable mostly. If the machine were unplugged without warning I
   would expect to lose a little current data, but never corrupt the
   whole database.

 - Need to do bidirectional queries on one primary key: Time. My
   timeline is sparsely and irregularly populated.

 - My data items are small, likely an integer or three.

 - Queries are count-limited: so only spend time finding first N-items
   out of many, many more possible hits, where my requested count, N,
   is only dozens to hundreds out of a total set of hits that might
   otherwise be many millions.

       This is probably my most odd need, one that might be
       impossible to satisfy without writing this myself.

 - I will have locality behavior, so if a first query or insert near
   time-T takes 100-times longer normal, that's cool, providing
   subsequent transactions near time-T are fast. So first query is
   maybe approaching 1-second, but subsequent nearby queries are few
   milliseconds (and look nearly free compared to other Python
   slowness).

 - New data will typically appear in-order--but not always. New items
   might be added to the database bursting as fast as maybe a dozen
   per second (significant locality in that case), but with average
   rates maybe being lower. Data might be deleted in any order.

Anyone have a favorite database the looks like this?

Thanks,

-kb

_______________________________________________
Discuss mailing list
Discuss@blu.org
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to