Package #
Binary package consists of the following files:
libmonotone.so
monotone.h
monotone
libmonotone.so
– shared C library, which must be linked with your application.monotone.h
– monotone C API header file.monotone
– monotone CLI application.
Please look at the Build and Install section for the manual build instructions.
API #
Monotone provides simple C API.
Insert (and replace/delete) is done in batches using the event id
associated with raw data
.
Data are read using cursors.
Data management, administration, and monitoring are done by using SQL-style DDL commands
.
Data storage #
Monotone represents data as a 64-bit-range sparse array of ordered events. Events are partitioned by fixed intervals, and partitions are automatically created on write or manually.
Each partition has an associated inclusive [min, max]
range.
Partitions never overlap. Min
range is used as a partition ID
for data management.
Data management is implemented using partitions as a primary unit. Data are stored in sorted partition files, which can be stored in local storage, an associated cloud, or both.
An event is a combination of 64-bit id (or time) and key/value raw data [id, key, value]
.
The event id
and the optional key
represent a serial (or time) compound primary key. Events are designed to store any kind of unstructured data.
The key and value data size might be zero.
After writing, events are cached in in-memory storage associated with the partition. Eventually, the updated partition must be refreshed to sync (or create) the partition file. Refreshing can happen automatically in the background or manually.
Learn more about the Architecture.
Usage #
Typical workflow: