On 9 Apr 2009, at 06:10, Devendra Gera wrote:
On Thu, 09 Apr 2009, Elliot Murphy wrote:
On 04/09/2009 12:10 AM, Devendra Gera wrote:
I recently developed a CouchDB imitation in python for testing,
while I
was working on the document update notifications patch. Maybe I
can put
some effort into porting it to C?
It was a purely in-memory store though.
Does it faithfully reproduce the CouchDB interface and behavior? I
would
*love* to have something a bit lighter weight than a full blown
couchdb
instance for use by tests in our test suite.
Umm, no. :)
It does a subset. Some differences are :
- No DELETEs : should be trivial to add.
- Only one DB : should be extremely simple to extend.
- No document revisions : shouldn't be too much effort.
- Non-random (sequential) document IDs.
- Single threaded : should be easy to fix, but would add locking
requirements and make the code more complex.
- No thought to replication : I don't know how difficult this would be
to fix.
- It does support the doc update hooks though (not as a process, but
as
python functions it loads from specified modules).
- No persistence.
- Stores the docs in a simple dict. Same for attachments.
Note that this was done as a quick solution to develop the rest of the
system, providing a functional substitute for CouchDB for rapid
development. This was with ~280 lines of Python code.
I have a bunch of unit tests (adding docs, adding attachments etc.)
which test for CouchDB like behaviour. I didn't bother to add negative
tests though.
I'm sure if you put it up on Github, there are some folks who help
to add the missing pieces. :)
Cheers
Jan
--