Scalien is a startup developing open-source, cutting-edge distributed systems.
Go to scalien.com
- Keyspace 1.5 - Recommended for Production Usage - by Marton Trencseni on 2010/03/09
Great news: we are releasing Keyspace 1.5, the most stable and feature complete version of Keyspace to date. We are very excited as we have reached a point where all issues related to replication and catch-up have been resolved, this version is suitable for general production deployment! Keyspace 1.5 has seen tons of testing on our dedicated test cluster, and it has performed like a charm.
For the end-user, the only visible change is the removal of the submit parameter from the commands (such as keyspace_client_set()), since this can be derived from the use of keyspace_client_begin() before the commands are issued in batch.
More good news: we have starting wrapping the C/C++ client library, which itself has reached a very stable state, using SWIG, the Simplified Wrapper and Interface Generator. We are planning to release fully featured Python, PHP, Java libraries next week. In parallel, we are finally going to write up proper manuals starting today.
- Keyspace 1.4.1 - by Marton Trencseni on 2010/02/17
We are releasing Keyspace 1.4.1, a bugfix release, mostly fixing TCP speed issues we were having. It turns out our client protocol was "interfering" with Nagle's algorithm and causing performance problems on some platforms. Also, under Windows we ran into a Windows bug, where if you filled up the socket buffers Windows would use delayed ACKs, which again caused performance issues.
Here are some performance numbers from a n=3 node Keyspace setup on Windows over a 100Mbit LAN:
VALUE LENGTH = 100 bytes long
batch set: 30487 tx/sec
single set: 1777 tx/sec
batch get: 45662 tx/sec
single get: 6734 tx/sec
VALUE LENGTH = 1000 bytes long
batch set: 2443 tx/sec
single set: 845 tx/sec
batch get: 8888 tx/sec
single get: 3137 tx/sec - Keyspace 1.4 Released - Major improvements - by Marton Trencseni on 2010-02-12
We released Keyspace 1.4, which fixes a lot of issues/bugs both in the server and the C/C++ client libraries.
- Keyspace 1.3.1 with minor fixes - by Marton Trencseni on 2010-01-25
This is a maintenance releasing fixing some minor bugs:
- now domain names as well as IP addresses can be specified in paxos.endpoints
- the client config erronously referred to paxos.endpoints, which was in reality keyspace.endpoints (port numbers of keyspace protocol)
- Linux build was broken
- Keyspace 1.3 release - stable Windows port - by Marton Trencseni on 2010-01-18
We are releasing Keyspace 1.3, the major addition is a stable Windows port (supports XP, Vista, Seven, Server 2003 and 2008) and includes some minor bugfixes.
Click here to download Keyspace 1.3.
For this port we had to port our (readyness notification) event based, networking subsystem to Windows' Completion Ports API, which was more challenging than we expected as the intended use for the API is asynchronous I/O, which is slightly different than our model. After lots of coding and one all-nighter we prevailed! I'll share more details in a later post.
The next big step is getting rid of BerkeleyDB. Coding is already on its way and I'll post some details about our storage engine architecture soon (currently codenamed Blocksmith).
Back to work.
- Keyspace Windows Beta - by Marton Trencseni on 2010/01/08
As promised, we are releasing the beta Windows port of Keyspace this week.
Click here to download the Keyspace Windows beta.
This is a non-versioned beta release, which will be followed by a regular 1.3 release next week after we have done some more testing on Amazon.
The release includes Visual Studio C++ 2008 Express Edition project files so Windows developers can get straight to work. Also included are the necessary BerkeleyDB include and lib files ('include' and 'lib' folders, respectively). The 'bin' folder contains statically linked binaries in case somebody wants to test it out without compiling. If it doesn't run, you may have to install the appropriate Visual Studio redistributables, which I put in the 'redist' folder for your convenience.
Technically, the Windows port uses the Completion Ports API to achieve high-performance network I/O. Thanks to our layered architecture (for platform-independence) we didn't have to modify application logic at all. Based on preliminary testing the performance numbers should be equivalent to the ones in our whitepapers.
- Keyspace Licensing - by Marton Trencseni on 2009/12/14
Over the last months, we have learned more and more about software licensing relevant to Keyspace. We have finally arrived at what we believe is the a good solution for Keyspace and Scalien.
From now on, the Keyspace server and all C/C++ code including the C/C++ libraries are licensed under the Affero GPL, as they were originally. The Python and PHP libraries are licensed under the BSD, allowing you to use them freely with your application as you wish. The 1.2.0 version, which was licensed under the BSD license, has been removed from the site to avoid confusion and protect the Keyspace source code.
- Keyspace 1.2 Release - by Marton Trencseni on 2009/10/01
We are releasing version 1.2 of Keyspace, our consistently replicated key-value store. The major news is the release of Python and PHP client libraries. Here's the full list of changes.
- Added Python and PHP client libraries; this means we have C, Python and PHP covered.
- Added HTTP JSON API; For example, http://localhost:8080/json/listkeys?/test returns the following JSON object: {"/test":["/test/i:0","/test/i:1","/test/i:2"]}.
- Fixed some bugs in server code.
- Fixed some bugs in Python code.
- Removed deprecated latency command.
- Keyspace 1.1 Release - by Marton Trencseni on 2009/09/09
We are releasing version 1.1 of Keyspace, our consistently replicated key-value store, a major improvement over 1.0.x.
- New PaxosLease algorithm does not require clock synchronization.
- Added COUNT and DIRTYCOUNT commands.
- Added /html/ part to HTTP interface, which pretty prints the list output.
- Added possibility to reverse list direction.
- The http://server:port/ welcome page prints the version number and master information.
- Added database.numReaders config option.
The most important is: Keyspace no longer requires clock synchrony! This should make Keyspace as a distributed database much more attractive to new users. The new PaxosLease algorithm is described in the PaxosLease whitepaper.
In other news, Hacker News Watch runs on Keyspace.
- Keyspace 1.0.1 Hotfix Release - by Marton Trencseni on 2009/07/17
We are releasing 1.0.1 today, which fixes some minor issues users experienced.
- Keyspace would not start without a config file in default mode. Resolution: fixed.
- Keyspace printed a non-informative error message when a directory 'keyspace' was present and it tried to create the database file 'keyspace'. Resolution: More informative error message.
- Some Linux optimizations were accidentally removed in the 1.0 release. Resolution: added to 1.0.1
- 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.
- Scaliens! Scaliens! Scaliens! - by Marton Trencseni on 2009/06/02
Welcome to the Scalien Blog!
Scalien was formalized as an LLC in Janurary of 2009 by Marton Trencseni and Attila Gazso. Our goal is to create a distributed stack of open-source components, enabling developers to create scalable, highly-available applications able to meet their customer's expectations. Our products fit in with the 'cloud computing' paradigm, although we're not looking to become cloud providers. More precisely, sites looking to become cloud providers in the future will be looking for basic distributed software such as databases and filesystems to run their own infrastructure on.

