Date | Commit message (Collapse) |
|
RAA is dead.
|
|
Oops
|
|
Eric Wong (10):
GNUmakefile: no news yet...
fix RAA listing
fix LICENSE file
switch to wrongdoc, no more JavaScript!
COPYING is not an RDoc file
README: mention TDB database
add suffix_mime output filter
tdb: use fetch with a reusable buffer
use constants everywhere to reduce GC thrashing
tdb: remove "threadsafe" option
|
|
We won't be supporting thread-safety, too difficult without
upstream support.
|
|
This makes it easier to notice a typo, too.
|
|
GC reductions
|
|
It's faster than doing it via real Rack middleware.
|
|
It's actually my favorite at the moment...
|
|
It is plain text and should never be edited, so making it RDoc
would be wrong.
|
|
bogomips.org will no longer be hosting JavaScript in RDoc
|
|
This file was stolen from a not-yet-released project :x
|
|
We're NOT Ruby licensed, we're AGPLv3 damnit.
|
|
|
|
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.
|
|
This needs a LOT of work.
|
|
We cna use tdb now, which offers better concurrency with
Rainbows! and Unicorn under MRI.
|
|
We need to implement our own hash functions for splitting
databases across multiple files. This was totally fucking up
Rainbows!
|
|
String interpolation means an extra string is created.
|
|
Maybe it's still broken...
|
|
Most (other) users only need a single file, even though
my primary use of this is for multiple files.
|
|
It can be confusing with printf-style patterns in URIs,
so just force path_pattern-users to specify "/" as their
path.
|
|
Clients may pre-compress input so we do not have to deal
with it on the server side.
|
|
We use a subset of Rack for simplicity.
|
|
TDB supports multiple simultaneous readers and writer
*processes*, not just threads.
|
|
These allow serving pre-compressed data off disk and
on-the-fly uncompressing for the few clients that do
not accept compressed responses.
|
|
These have no finalizers.
|
|
It makes future extensions difficult. HEAD requests
aren't common enough to be worth optimizing for.
|
|
We'll need it for implementing the deflater/inflater
|
|
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.
|
|
Useful as a proof-of-concept and for benchmark base.
|
|
It makes sense for other databases to share the same code.
|
|
Some other databases will be able to utilize these
variables.
|
|
use 403 to reject PUT/DELETE requests
|
|
We don't need then normally.
|
|
This fixes 404s on HEAD requests which do not return a body.
|
|
No point in using more lines than we need to.
|
|
It will be useful when we support other backends.
|
|
It's less typing and less likely to clash on both
the eyes and the interpreter.
|
|
This will allow easier code sharing between backends.
|
|
We'll be using @uri in more tests
|
|
Basically working, for now
|