Skip to content

Commit

Permalink
added .gitignore, updated README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
bdionne committed Feb 8, 2009
1 parent c1b7388 commit dc343b9
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 2 deletions.
68 changes: 68 additions & 0 deletions .gitignore
@@ -0,0 +1,68 @@
# copied from jChris .gitignore
*.beam
*.gz
*.tpl
*.o
*.lo
*.m4
*.in
*.in~

configure
autom4te.cache
build-aux

# ./configure

Makefile
bin/Makefile
config.h
config.log
config.status
etc/Makefile
etc/couchdb/Makefile
etc/default/Makefile
etc/init/Makefile
etc/launchd/Makefile
etc/logrotate.d/Makefile
libtool
share/Makefile
src/couchdb/.deps/
src/couchdb/Makefile
src/mochiweb/Makefile
stamp-h1
test/.deps/
test/Makefile
var/Makefile

# for make

bin/couchdb
bin/couchdb.1
bin/couchjs
bin/couchjs.1
etc/couchdb/default.ini
etc/launchd/org.apache.couchdb.plist
etc/logrotate.d/couchdb
src/couchdb/.libs/
src/couchdb/couch.app
src/couchdb/couch_erl_driver.la
src/couchdb/couchjs
src/couchdb/edoc-info
src/couchdb/erlang.png
src/couchdb/stylesheet.css
test/local.ini

# for make dev

bin/.deps/
bin/couchjs_dev
bin/couchpw
etc/couchdb/default_dev.ini
etc/couchdb/local_dev.ini
utils/run
tmp

# crashes
**/*.dump
**/*.bak
18 changes: 16 additions & 2 deletions README.md
@@ -1,8 +1,22 @@
erl-couch : A couchdb client that works with inets or ibrowse
erl-couch : An Erlang based CouchDB client
======================

erl-couch is a CouchDB client that picks up from <a href="http://code.google.com/p/erlcouch/">erlcouch</a> (which has been discontinued).

The idea is to complete the implementation to use ibrowse as well as inets, to see if ibrowse, with it's connection pooling is more suitable than <a href="http://github.com/ngerakines/erlang_couchdb/tree/master">erlang-couchdb</a> in terms of simulating multiple clients on the same machine. Erlang-couchdb creates a new socket for each api call and was designed to be simpler.

erl-couch spans a process for each host and for each database. For the stress tests we're cobbling together for couchdb this hopefully will allow us to simulating more clients from the same machine.
erl-couch spawns a process for each host and for each database. For the stress tests we're cobbling together for couchdb this hopefully will allow us to simulate multiple clients from the same machine.

src/couch.erl
-------------

This first version basically is erlcouch updated to the latest CouchDB and the with the addition of iBrowse support as well as inets. Most of the calls take an additional Options argument. For example update_doc takes a {force, true} option that retrieves the current revision and uses it to retry the update. What seems awkwatd is these Options are appended to the options passed in when creating the host and when creating the DB. When the request is finally sent, all these options are used to construct the appropriate url. This seems like a lot of list munging, particularly when each Host and each Db is a separate Pid.

src/couch2.erl
--------------

This second version removes the Options from most of the api calls, and adds an Args to the appropriate ones. Each Host and Db is a pid but the urls are constructed once and passed around through the calls. When the requests are sent over ibrowse and inets, the Args paramaters are constructed. Each api call returns either {ok, Json} or {error, Json, Raw}.

I'm not sure how useful an api at this low level is for applications, the two scenarios I have in mind are 1. testing and 2. perhaps a server side external.


0 comments on commit dc343b9

Please sign in to comment.