Everything is built over Redis adding a Lua interpreter to implement a really interesting technique they call Datastore-Side-Scripting. Is like to use stored procedure, putting logic into datastore. They can achieve many different goals using this technique:
- Implement a SQL-like language using Lua to decode SQL requests
- Implement many datatypes not supported by Redis using Lua to fit into common Redis types the new structure
- Serve content (like web pages o JSON data) directly from the datastore using a REST API.
- Implement a GraphDB using SQL for Index and Lua for graph-traversal logic.
- Implement Document-oriented model using Lua
- Implement an ObjectDB using Lua
Last year Citrusleaf acquired AlchemyDB and Russ Sullivan (the guy behind AlchemyDB) incrementally porting functionality to run on top of Citrusleaf’s proven distributed high-availability linearly-scalable key-value store: Aerospike. It is a distributed NoSQL database, the first solution to claim ACID support and an extremely fast architecture optimized to run using SSDs.
require "Citrusleaf" c = Citrusleaf.new c.add_node "10.1.1.6", 3000
delete operations are done as follow:
# Writing Values c.put 'namespace', 'myset', 'mykey', 'bin_name', value # Reading Values rv, gen, value = c.get 'namespace', 'myset', 'mykey', 'binx' # Deleting Values c.delete 'namespace', 'myset', 'mykey'
Documentation isn’t useful yet. The only way to understand how if is cool or not is to test it. That’s what I’ll do.