This sample demonstrates an in-memory database with eXtremeDB Transaction Logging (TL) enabled. The log is written to a file; it is possible to make snapshots of the current database state.
The config file looks like the following:
# # 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, disk_page_size : 8192 }, tl_params : { flags : [iterable], log_path : "imdb.log", snapshot_path : "imdb.img", disk_page_size : 4096, flush_depth : 1, max_size : 1m, apply : auto, stopped : false }, sql_trace : false, sql_port : 5500Note 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 from directory
samples\xsql\configs\TL
with the following command:..\..\..\..\target\bin\xsql -c xsql.cfg -f imdb.img -iWith xSQL started in interactive mode, we can now execute SQL statements. For example:
XSQL>select * from Employee;To make a TL snapshot, type:
XSQL>select tl_save('tl_snapshot.img');