Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Router and rereducer for sharded CouchDB
Erlang Other
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
deps
etc
m4
priv
src
support
test
INSTALL.Unix
LICENSE
Makefile.am
README
acinclude.m4.in
bootstrap
configure.ac
start.sh

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.