Skip to content
Router and rereducer for sharded CouchDB
Erlang Other
Find file
Failed to load latest commit information.
bin
deps Corrected include path to match automake directory structure Jul 7, 2010
etc Tweaks, additions and modifications to make pillow work with automake… Jul 7, 2010
m4 I had botched the former commit of this one with an empty file inside… Jul 7, 2010
priv
src Modified include paths to work with the new directory structure Jul 7, 2010
support First etap test. Verifies that all the modules are loadable. Jun 4, 2010
test Modelled the test system after couchdb to make it work with automake Jul 7, 2010
INSTALL.Unix Added information about running bootstrap Jul 25, 2010
LICENSE Major rework to autoconf/automake Jul 6, 2010
Makefile.am Added installation instructions for Unix. Didn't remove all the Mac s… Jul 7, 2010
README Updated the roadmap and added a brain dump of possible features Jul 7, 2010
acinclude.m4.in Bumped the version to 0.3.1 Jul 7, 2010
bootstrap More rework to autoconf/automake. Webmachine and ibrowse need full co… Jul 6, 2010
configure.ac Tweaks, additions and modifications to make pillow work with automake… Jul 7, 2010
start.sh Moved dependencies to deps and added dependencies on jungerl ibrowse. Jan 26, 2010

README

Pillow is a combined router and rereducer for CouchDB.

Dependencies (All of these are included in this git repository):
- webmachine
- ibrowse from jungerl
- etap (for testing)
- mochiweb (for webmachine)

Needless to say, it also depends indirectly on couchdb. There is no direct dependencies, but what use is a router
or rereducer for CouchDB without CouchDB. 

Roadmap:
The current goal is to add resharding to Pillow. 
X  Automatic generation of resharding validate functions *Done*
X  Automatic resharding using validate functions *Done*
X  CouchDB style config files *Done*
X  Resharding controlled through the config file. The [routing] section is the
   original routing config. [resharding] is the intended routing config. Call
   pillow_routing_table:reshard() to start replicating to the new nodes. Observe
   that the replication completed before executing pillow_routing_table:flip() to
   start using the new nodes. flip also updates the config. At this point, the old    servers may be torn down. *Done*
X  Monitoring UI that will show stats and general health of Pillow *Done*
X  End-to-end resharding through a single call. Pillow will wait until replication is
   complete before flipping to the new servers. Tearing down the old ones will still
   be manual. *Done*
X  control script
X  Daemonize Pillow
X  Control script handling resharding
X  Time to move from deployment script to configure/make install

No clear prioritized list right now, but these are interesting features that would be beneficial:
- Consistent hashing (http://en.wikipedia.org/wiki/Consistent_hashing) to increase control over resharding
- CouchDB view server for JavaScript rereducers
- Support Bulk document API
- Support CouchApp API
- Manage replication to mirror servers making Pillow automatically set up n-server master-master replication for each
  shard
Something went wrong with that request. Please try again.