A single process KVS data store server that talks memcached protocol and serves file-based KVS stores like:
- JSON file
- BerkeleyDB file
- MemcacheDB data in BerkeleyDB file
More protocols and data store may be supported.
GOROMDB can be used as an executable binary, or a collection of simple libraries.
Just do:
go install github.com/yowcow/goromdb
To boot:
goromdb -addr <address to be bound to> -store <data store> -file <path to data file>
An example:
goromdb -addr :11211 -store bdb -file path/to/bdb-data.db
GOROMDB currently does not daemonize itself.
Just do:
go get github.com/yowcow/goromdb
and import whatever package into your source code.
GOROMDB should serve fast but maybe not quite as fast as pure memcached. Detailed benchmark is comming up.
When /tmp/path/to/file.db
is specified to boot option -file
, GOROMDB creates subdirectories db00
and db01
under /tmp/path/to
,
then start watching for new data file at /tmp/path/to/file.db
and its checksum file at /tmp/path/to/file.db.md5
.
/tmp/path/to
├── db00
└── db01
When data file and its checksum file is placed in directory /tmp/path/to
, GOROMDB will verify data file against its checksum file.
/tmp/path/to
├── db00
├── db01
├── file.db
└── file.db.md5
Once checksum succeeds, GOROMDB will move data file into subdirectory either db00
or db01
, and load the data into running server.
/tmp/path/to
├── db00
│ └── file.db
├── db01
└── file.db.md5