[abacus] CouchDB


Hristo Iliev
 

Hi,

I'm wondering how tightly Abacus is bound to CouchDB? Can we create another dbclient that stores the data in DB that allows raw json documents? How easy/hard this would be and where one should start?

The backgound is that using another DB will help integrators maintain only a handful of DBs. Having lots of backing services (DBs) usually requires a lot of resources (VMs, memory, support) and is quite expensive. Reducing the number of DBs also makes it easy to move a solution especially in the case of private clouds :)

Regards,
Hristo Iliev


Jean-Sebastien Delfino
 

Hi Hristo,

I think it should be fairly easy to create another Abacus dbclient module
targeting another DB. AFAIK we're only doing simple get/put/remove, bulk
gets/puts and a few range queries over the doc keys, and do not depend on
more sophisticated CouchDB features like design docs, map reduce views etc,
so porting that to another key/json-value DB (even a SQL DB like Postgres
or MySQL) should be possible.

While exploring another DB, you may also want to think about the level of
DB partitioning you'd like (e.g. one DB forever, monthly DBs, some sharding
etc) as with usage data we're getting into much bigger volumes than what
people usually store in CCDB for example, but that partitioning logic is
also easily customizable.

I'll also be happy to adjust a few things around the code base where we
call that dbclient module if needed, if you guys run into limitations or
issues when porting to another DB.

- Jean-Sebastien

On Tue, Nov 10, 2015 at 8:00 AM, Hristo Iliev <hsiliev(a)gmail.com> wrote:

Hi,

I'm wondering how tightly Abacus is bound to CouchDB? Can we create
another dbclient that stores the data in DB that allows raw json documents?
How easy/hard this would be and where one should start?

The backgound is that using another DB will help integrators maintain only
a handful of DBs. Having lots of backing services (DBs) usually requires a
lot of resources (VMs, memory, support) and is quite expensive. Reducing
the number of DBs also makes it easy to move a solution especially in the
case of private clouds :)

Regards,
Hristo Iliev