I was interested in seeing what this does. I thought it might be a database driver for couchdb, but it appears to index nodes. What are your plans for this module?

Comments

damien tournoud’s picture

The plans are not very clear yet. It's an exploratory project that try to identify what we could do when associating CouchDB and Drupal.

First, CouchDB is not a relational database, as a consequence there can not be a "database driver" for CouchDB.

The way I see that:

- for Drupal 6, the idea is to use CouchDB similarly to Apache Solr: index Drupal objects (nodes, users, etc.) to CouchDB, and add a CouchDB-specific Views Backend.
- for Drupal 7, I plan to implement a Field storage engine, and the same Views backend.

mavimo’s picture

And have some test on HadopDB ? It use Hadop with Map Reduce but use PG as DBMS backend, and can execute SQL Query (but is possible require some SQL Qeury rewriting).

anarcat’s picture

While I think that experimenting with a specific implementation is good, should we think about abstracting non-relational databases in Drupal?

In fact, should that be part of the Database Driver: even though it's not relational, it *is* a database.

Or is the right data model for this in Drupal the caching layer? The downside there is that the cached data is seen as disposable in Drupal... (isn't it?)

xmacinfo’s picture

Looks like CouchDB could be used to load and index all /files in a database. Filefield could use CouchDB to store documents, files, images...

It would be interesting to see where this could lead us to.

irishgringo’s picture

just checking on the status... after playing with couchdb... I think it would work well with my iPHONE, ANDROID and BB projects... but I would like to have a more seamless way of updating the CouchDB.
so this module interests me...
I am looking for a way to move my JSON records off of the DRUPAL site, onto separate servers... and then pull the JSON from the mobile apps. Its not so much that I want to come up with a way to scale my JSON services... its more that I want to make DRUPAL more of an admin platform with little traffic.

so just checking on the status of the project... any work on it lately?

wil1iam’s picture

We have a pressflow installation with about 1.3M nodes, and 500k taxonomy terms.
We make heavy use of node references, and I noticed while reading up on couchDB that node references fit very well with document references in couch.

http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#Linked_docu...

I'm planning to node_load every node in our system, translating the node references to document references, and storing all nodes in couch. Couch can then fetch a node along with all its referenced nodes in a single query by recursively fetching the referenced nodes, which apparently is very cheap.

Now all I need is to write a wrapper for node_load to fetch the object from couch and statically cache all referenced nodes, and a wrapper for node_save to store the node in couch. Possibly taxonomy_node_save also. We use APD to hack core, which makes updates to pressflow/drupal easier to handle.

If it works, it would greatly increase read speeds while only very slightly increasing write speeds, and allow us to scale using couch rather than mysql, which can be painful.

I realise there are a lot of edge cases where this would break things, but I think as long as we adhere to only writing to nodes with node_save, or manually update couch when we need to do raw update queries it should work quite well.

What do you guys think?

niccolox’s picture

has anyone seen the Dev Seed article on using CouchDB and Elastic Search ?
http://developmentseed.org/blog/2011/may/31/flexible-faceting-and-full-t...

I'd be interested in the exploring developments for Drupal for Search API extensions to CouchDB and Elastic Search