Scalien is a startup developing open-source, cutting-edge distributed systems.
Go to scalien.com
Keyspace 1.0 Beta Release
by Marton Trencseni on 2009/07/15
Today we are releasing the Keyspace 1.0 Beta. Keyspace is a consistently replicated, highly-available fault-tolerant key-value store. A pictorial explanation can be found here.
The relevant links are:
In a few words, consistent replication means it's not eventually consistent, it's always consistent or always in-sync. When the server acknowledges an operation, then you can be certain that it has hit the disk on a majority of the nodes and you will never see a state not reflecting that write.
Since Keyspace is replicated, the database is highly-available and fault-tolerant. A minority of nodes can fail without the overall database service being affected. This is of course the main feature of any replicated data store: if the cleaning crew accidentally pulls the plug on one of your servers or a disk fails, then your system keeps going without service outage.
Keyspace is a high-performance, asynchronous, event-driven C/C++ UNIX server. Even with n=3 replication we can handle 100.000 writes a second on fast Linux PCs with SCSI disks. This is an order of magnitude faster than naive key-value store implementations in Java, Erlang or Python. See the whitepaper for more.
With Keyspace, you have a sensible upgrade path. You can use Keyspace in single-server mode, in which case it's reduced to a TCP wrapper around Berkeley DB. Later, you can reconfigure it to use replication. Keyspace has its own TCP protocol, which is used by the client libraries, and a built-in HTTP server and HTTP protocol so you can issue http://localhost/set?key,value type requests using your browser for testing. More about the API.
You can download source code and compile Keyspace or use the Debian package for quick installation and /etc/init.d/ sweetness. Included are the usual help files, client libraries and some sample code. Keyspace is distributed under the Affero GPL license (AGPL).
What's missing in this release? Currently, our C/C++ client library is production quality. We are finishing up PHP, Python, Java and .NET libraries, the exact order is a function of user requests.
This is a beta release, where one of the goals is to gauge user interest. If you find Keyspace interesting or useful, please drop us a line.
- Marton Trencseni
blog comments powered by Disqus

