https://github.com/dgraham/couchproxy
A proxy server for Apache CouchDB clusters.
https://github.com/dgraham/couchproxy
Last synced: 8 months ago
JSON representation
A proxy server for Apache CouchDB clusters.
- Host: GitHub
- URL: https://github.com/dgraham/couchproxy
- Owner: dgraham
- License: mit
- Created: 2010-09-07T00:38:29.000Z (almost 16 years ago)
- Default Branch: master
- Last Pushed: 2012-02-06T17:51:54.000Z (over 14 years ago)
- Last Synced: 2024-09-17T16:39:04.506Z (over 1 year ago)
- Language: Ruby
- Homepage:
- Size: 137 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
== Welcome to CouchProxy
CouchProxy is a simple proxy server that distributes reads and writes to a
cluster of Apache CouchDB servers so they appear to be a single huge database.
Documents are stored and retrieved from a particular CouchDB instance, using
consistent hashing of the document id. Map/reduce views are processed
concurrently on each CouchDB instance and merged together by the proxy before
returning the results to the client.
CouchProxy uses the Thin web server and EventMachine for asynchronous IO. There
are no blocking IO calls in the server, which allows it to handle many clients
and many backend CouchDB nodes concurrently, using very little processor and
memory.
== Usage
1. gem install couchproxy
2. couchproxy config
3. Configure CouchDB nodes in couchproxy.yml
4. couchproxy start
== Dependencies
* em-http-request >= 0.3.0
* json >= 1.5.1
* json-stream >= 0.1.1
* thin >= 1.2.11
* rbtree >= 0.3.0
* ruby >= 1.9.2
== Ubuntu setup
$ sudo apt-get install build-essential ruby1.9.1 ruby1.9.1-dev couchdb
== Contact
Project contact: David Graham
== License
CouchProxy is released under the MIT license. Check the LICENSE file for details.