Adventures in Distributed Systems
Who are we?


Scalien is a startup developing open-source, cutting-edge distributed systems.

Go to scalien.com

Keyspace 1.6.2 now featuring ASCII Art

by Marton Trencseni on 2010/05/05

Today we're releasing Keyspace 1.6.2. Get the package from our downloads section or directly from the github repository.

One the one hand, 1.6.2 includes a number of important bugfixes. It turns out BerkeleyDB will throw DB_PAGE_NOTFOUND errors if you have highly concurrent deletes and gets with DB_READ_UNCOMMITTED turned on, which is how we use BDB in Keyspace.

On the other hand, this release finally includes the official SWIG based Perl client, which a number of people have used for. I'll write up the docs for Perl in a few days. For now, build it with make perllib and check in bin/perl.

At last, the funkiest addition: the keyspace-config shell script, which will create your Keyspace config files for you --- with ASCII Art to cheer you up! Here's a sample session:

~/Code/Keyspace $ ./keyspace-config
Welcome to the Keyspace configuration file generator! -----------------------------------------------------
-> This script will ask you a bunch of questions and then generate the Keyspace configuration files. -> The files are only generated at the end, you can always start over by hitting CTRL+C.
Is this a replicated or a single configuration? [R/s]: r How many nodes will the Keyspace cluster consist of? [3]: Will you be running all Keyspace nodes on the *same* host (eg. for testing)? [Y/n]: n
-> Assuming identical Keyspace configurations on all 3 nodes!
What is the IP address (or domain name) of the 0. node? 192.168.137.50 What is the IP address (or domain name) of the 1. node? 192.168.137.51 What is the IP address (or domain name) of the 2. node? 192.168.137.52 Where should Keyspace store the database files? [/var/keyspace]: Port number for Paxos replication? [10000]: Port number for HTTP? [8080]: Port number for Keyspace protocol? [7080]:
-> Writing configuration file of the 0. node to keyspace.0.conf -> Writing configuration file of the 1. node to keyspace.1.conf -> Writing configuration file of the 2. node to keyspace.2.conf
-> The connection string on the client side is: 192.168.137.50:7080, 192.168.137.51:7080, 192.168.137.52:7080
Do you wish to see an informative ascii art describing your configuration? [Y/n]:
client(s) client(s) client(s)
^ ^ ^ | | | | node 0 | node 1 | node 2 | +-------------------+ | +-------------------+ | +-------------------+ | + 192.168.137.50 | | + 192.168.137.51 | | + 192.168.137.52 | | | | | | | | | | | + /var/keyspace | | + /var/keyspace | | + /var/keyspace | | | | | | | | | | | | | | | | | | | 7080 --+ Keyspace | 7080 --+ Keyspace | 7080 --+ Keyspace | | | | | | | | | | 8080 --+ HTTP | 8080 --+ HTTP | 8080 --+ HTTP | | | | | | | | | | | | | | | | | | | 10000 --+ Paxos | 10000 --+ Paxos | 10000 --+ Paxos | | | | | | | | | | 10001 --+ PaxosLease | 10001 --+ PaxosLease | 10001 --+ PaxosLease | | | | | | | | | | 10002 --+ Catchup | 10002 --+ Catchup | 10002 --+ Catchup | | | | | | | | | | | +-------------------+ | +-------------------+ | +-------------------+ | | | | | | | | | ----+-------- [replication] ----------+-------- [replication] ----------+-------- [replication] ------
-> Writing ascii art to keyspace_art.txt -> Done.

Cheers!


- Marton Trencseni


blog comments powered by Disqus