Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Router and rereducer for sharded CouchDB
Erlang Other
branch: master
Failed to load latest commit information.
bin Replaced another hardcoded erlang binary with %ERL%
deps Corrected include path to match automake directory structure
etc Tweaks, additions and modifications to make pillow work with automake…
m4 I had botched the former commit of this one with an empty file inside…
priv Major rework to autoconf/automake
src Modified include paths to work with the new directory structure
support First etap test. Verifies that all the modules are loadable.
test
INSTALL.Unix Added information about running bootstrap
LICENSE Major rework to autoconf/automake
Makefile.am
README Updated the roadmap and added a brain dump of possible features
acinclude.m4.in Bumped the version to 0.3.1
bootstrap More rework to autoconf/automake. Webmachine and ibrowse need full co…
configure.ac Tweaks, additions and modifications to make pillow work with automake…
start.sh Moved dependencies to deps and added dependencies on jungerl ibrowse.

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.