mitchellh / lightcloud
- Source
- Commits
- Network (4)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
Mitchell Hashimoto (author)
Fri Mar 06 15:23:10 -0800 2009
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Mar 04 10:19:36 -0800 2009 | |
| |
CHANGELOG | Thu Mar 05 10:34:23 -0800 2009 | |
| |
CREDITS | Wed Mar 04 10:19:36 -0800 2009 | |
| |
LICENSE | Wed Mar 04 10:19:36 -0800 2009 | |
| |
README.rdoc | Wed Mar 04 20:43:47 -0800 2009 | |
| |
Rakefile | Wed Mar 04 10:26:19 -0800 2009 | |
| |
lib/ | Fri Mar 06 15:23:10 -0800 2009 | |
| |
lightcloud.gemspec | Fri Mar 06 15:23:10 -0800 2009 | |
| |
spec/ | Thu Mar 05 10:31:35 -0800 2009 |
README.rdoc
LightCloud Library for Ruby
This is a library for accessing LightCloud systems through Ruby.
Background
LightCloud is a distributed key-value stored open-sourced by Plurk. The official website which includes benchmarks, design specs, and more can be viewed at the following URL:
opensource.plurk.com/LightCloud/
Usage
You can use it with class methods:
require 'rubygems'
require 'lightcloud'
LIGHT_CLOUD = {
'lookup1_A' => ['127.0.0.1:41401', '127.0.0.1:41402'],
'storage1_A' => ['192.168.0.2:51401', '192.168.0.2:51402']
}
lookup_nodes, storage_nodes = LightCloud.generate_nodes(LIGHT_CLOUD)
LightCloud.init(lookup_nodes, storage_nodes)
LightCloud.set("hello", "world")
print LightCloud.get("hello") # => world
LightCloud.delete("hello")
print LightCloud.get("hello") # => nil
Or you can also use it with instances:
require 'rubygems'
require 'lightcloud'
LIGHT_CLOUD = {
'lookup1_A' => ['127.0.0.1:41401', '127.0.0.1:41402'],
'storage1_A' => ['192.168.0.2:51401', '192.168.0.2:51402']
}
lookup_nodes, storage_nodes = LightCloud.generate_nodes(LIGHT_CLOUD)
cloud = LightCloud.new(lookup_nodes, storage_nodes)
cloud.set("hello", "world")
print cloud.get("hello") # => world
cloud.delete("hello")
print cloud.get("hello") # => nil
Installation
sudo gem install mitchellh-lightcloud
Known Issues / To-Do
The python library actually caches the get/set values in a thread-local hash table. This library doesn’t do this yet but I’m working on adding this in now.
