This sample demonstrates a simple distributed in-memory database working with 2 shards; each shard holds only part of the database.
The config files look like the following:
shard1.cfg
# # Simple In-Memory configuration # database_name : imdb, database_size : 20m, runtime_configuration : { debug_library : false, disk_support : false, shared_memory : false, transaction_manager : mursiw }, schema : " #define uint2 unsigned<2> declare database locatedb; class Employee { string name; uint2 dept_no; unique tree<name> Iname; tree<dept_no> Idept; }; ", db_params: { mem_page_size : 512 }, sql_trace : false, sql_port : 5500
shard2.cfg
# # Simple In-Memory configuration # database_name : imdb, database_size : 20m, runtime_configuration : { debug_library : false, disk_support : false, shared_memory : false, transaction_manager : mursiw }, schema : " #define uint2 unsigned<2> declare database locatedb; class Employee { string name; uint2 dept_no; unique tree<name> Iname; tree<dept_no> Idept; }; ", db_params: { mem_page_size : 512 }, sql_trace : false, sql_port : 5501
client.cfg
{ remote_client : [ "127.0.0.1:5500", "127.0.0.1:5501"], sql_statements : " 1:INSERT INTO Employee(name, dept_no) VALUES('Luke Skywalker', 1); 1:INSERT INTO Employee(name, dept_no) VALUES('Han Solo', 1); 2:INSERT INTO Employee(name, dept_no) VALUES('Darth Vader', 2); " }Note that section
schema
defines the database with inline DDL text and thesql_statements
section specifies the SQL statements to be executed once the database has been created.This sample can be run in 3 separate Console windows from directory
samples\xsql\configs\shards
with the following command:..\..\..\..\target\bin\xsql -c shard1.cfg -iAnd
..\..\..\..\target\bin\xsql -c shard2.cfg -iAnd
..\..\..\..\target\bin\xsql -c client.cfg -iWith xSQL started in interactive mode, we can now execute SQL statments. For example:
XSQL>select * from Employee; name dept_no ------------------------------------------------------------------------------ Darth Vader 2 Han Solo 1 Luke Skywalker 1 Selected records: 3