Release Name: 0.1.0
Notes:
Metropolis is a Rack application used to store key value pairs. It
seeks to emulate the TokyoTyrant HTTP interface, but allows access to
multiple databases through a single TCP port. It hashes keys to split
keys between different on-disk databases to work around scalability
limitations of the kernel, hardware and filesystem.
* http://metropolis.bogomips.org/
* metropolis@librelist.org
* git://git.bogomips.org/metropolis.git
Changes:
A key-value store for Rack. It emulates the basic REST
functionality (PUT/GET/DELETE) of TokyoTyrant as a Rack handler.
TDB is the primary DBM supported but TokyoCabinet (hash) is
supported as well.
For TDB, it is multi-process safe, but is currently not
thread-safe due to limitations of the upstream TDB library.
Changes:
commit 2d4cd61209a72da6ab81d36da81d3211be71764e
Author: Eric Wong
Date: Mon Dec 13 14:56:51 2010 -0800
metropolis 0.1.0 - initial release
A key-value store for Rack. It emulates the basic REST
functionality (PUT/GET/DELETE) of TokyoTyrant as a Rack handler.
TDB is the primary DBM supported but TokyoCabinet (hash) is
supported as well.
For TDB, it is multi-process safe, but is currently not
thread-safe due to limitations of the upstream TDB library.
commit 636cca450a01da311a92dfbc85f08cd20bdae02d
Author: Eric Wong
Date: Mon Dec 13 14:55:20 2010 -0800
minor documentation updates
This needs a LOT of work.
commit 8735b2224f050372a5f1c41c5fc2ca1e0f52f485
Author: Eric Wong
Date: Fri Dec 10 19:51:26 2010 -0800
remove hard dependency on tokyocabinet
We cna use tdb now, which offers better concurrency with
Rainbows! and Unicorn under MRI.
commit 5d6dc5c742f827350490d8f33c4c89b203ae7460
Author: Eric Wong
Date: Fri Dec 10 19:49:12 2010 -0800
String#hash is not stable across processes :<
We need to implement our own hash functions for splitting
databases across multiple files. This was totally fucking up
Rainbows!
commit 8791d27f34d618bc7979b56da7e068b79a79b229
Author: Eric Wong
Date: Fri Dec 10 09:30:35 2010 +0000
deflate: small garbage reduction by concatenation
String interpolation means an extra string is created.
commit 0a14d73b63966dae97b267ae5aa165f7ada78edb
Author: Eric Wong
Date: Fri Dec 10 09:30:33 2010 +0000
tdb: allow enabling the thread-safety option
Maybe it's still broken...
commit 88fa90b7f039f62962cc8d11031446412b951be2
Author: Eric Wong
Date: Mon Dec 6 15:43:46 2010 -0800
allow easier, single-file options for TC and TDB
Most (other) users only need a single file, even though
my primary use of this is for multiple files.
commit 74ca34be2d54809822447ff185d88d83fcd566ae
Author: Eric Wong
Date: Sun Dec 5 15:34:56 2010 -0800
:path_pattern is independent of the URI
It can be confusing with printf-style patterns in URIs,
so just force path_pattern-users to specify "/" as their
path.
commit a84908349094bd8835d3261cd8b11dde863178fd
Author: Eric Wong
Date: Fri Dec 3 15:35:51 2010 -0800
deflate+gzip: do not wrap rack.input if already encoded
Clients may pre-compress input so we do not have to deal
with it on the server side.
commit 18f37155265fd9271c80cda5b2403156d078186c
Author: Eric Wong
Date: Thu Dec 2 11:31:35 2010 -0800
add SPEC document
We use a subset of Rack for simplicity.
commit f7387cd8d1af627e5919da371cac923bbc59ef6a
Author: Eric Wong
Date: Wed Dec 1 10:34:32 2010 +0000
add basic support for the Trivial Database (TDB)
TDB supports multiple simultaneous readers and writer
*processes*, not just threads.
commit 27eb2d7ebd29239a5043a528c97c6dd218d03217
Author: Eric Wong
Date: Tue Nov 30 16:26:20 2010 -0800
support pass-through :encoding for deflate and gzip
These allow serving pre-compressed data off disk and
on-the-fly uncompressing for the few clients that do
not accept compressed responses.
commit 03755186d6cb968d44d7eb04de3ed2d047180272
Author: Eric Wong
Date: Tue Nov 30 15:46:36 2010 -0800
hash: fix some settings for memory-only hash
These have no finalizers.
commit a76f41647fb66ac39df43f31bbdff44b9e9a6b35
Author: Eric Wong
Date: Tue Nov 30 15:36:19 2010 -0800
tc/hdb: remove HEAD optimization
It makes future extensions difficult. HEAD requests
aren't common enough to be worth optimizing for.
commit 000726f5302f18ff095c68dfedf1547d0946209c
Author: Eric Wong
Date: Tue Nov 30 15:04:57 2010 -0800
internal API: get and head methods require env
We'll need it for implementing the deflater/inflater
commit 61120b1268679bb8ffa157736e91e6846fd2a372
Author: Eric Wong
Date: Tue Nov 23 19:45:52 2010 -0800
tc/hdb: add exclusive mode, lock disabling
The :exclusive mode behaves like TokyoTyrant and keeps the
database opened in read-write mode, preventing other processes
from accessing the database. This will be useful on Rubies
without a GVL.
:readonly no longer disables locking by default
instead "rdlock=false" must be passed in the query
parameter. Write locks may also be disabled with
the "wrlock=false" query parameter.
commit 0f3c1c14630fda58363ffd7d3a942041ca2419eb
Author: Eric Wong
Date: Tue Nov 23 18:52:08 2010 -0800
add plain Hash database support
Useful as a proof-of-concept and for benchmark base.
commit 2bb7406db018e6902aacaf495e63d69cf9b93174
Author: Eric Wong
Date: Tue Nov 23 13:16:06 2010 -0800
split out common read-only code
It makes sense for other databases to share the same code.
commit 861f7759a53b37f76a9b64710b2312a1fd1365a8
Author: Eric Wong
Date: Tue Nov 23 13:11:52 2010 -0800
use common setup elements
Some other databases will be able to utilize these
variables.
commit 9b6c5f2fdf5cac77fda7fb506fe09d22cd18b8ab
Author: Eric Wong
Date: Tue Nov 23 13:07:15 2010 -0800
fix readonly interface
use 403 to reject PUT/DELETE requests
commit 285e93871168720742f5b631a2acce775c671d12
Author: Eric Wong
Date: Tue Nov 23 12:52:43 2010 -0800
test: disable expensive tests by default
We don't need then normally.
commit e232eef239952d94220d87ae9be5b27690fe6699
Author: Eric Wong
Date: Tue Nov 23 12:51:38 2010 -0800
add generic Rack read/write test
This fixes 404s on HEAD requests which do not return a body.
commit e83353f18f4813365581be81672eaf2e3c2e3d3a
Author: Eric Wong
Date: Tue Nov 23 12:21:19 2010 -0800
tc/hdb: minor formatting cleanups
No point in using more lines than we need to.
commit b8ee33b8e38911012fc055f02da1878e45eb721a
Author: Eric Wong
Date: Tue Nov 23 12:17:24 2010 -0800
split out common read/write code
It will be useful when we support other backends.
commit df91c57c312bee97a16bced1035bd704e518ac38
Author: Eric Wong
Date: Tue Nov 23 12:09:56 2010 -0800
rename internal "TokyoCabinet" => "TC"
It's less typing and less likely to clash on both
the eyes and the interpreter.
commit 51d43461adca99482154ddbd337658a70d5ffc3d
Author: Eric Wong
Date: Tue Nov 23 18:05:18 2010 +0000
rename @hdb* to @db*
This will allow easier code sharing between backends.
commit dccc20aff3b4468a1b4721ffcc7f7b48ade474e9
Author: Eric Wong
Date: Tue Nov 23 17:37:36 2010 +0000
test: minor cleanup to share @uri
We'll be using @uri in more tests
commit 5eb8bf5e005d0d800af0c7e5e2dfd6b2526dd218
Author: Eric Wong
Date: Mon Nov 22 15:36:54 2010 -0800
initial TokyoCabinet hash database support
Basically working, for now
|