Developers: | Simonenko Dmitry |
Last Release Date: | 2016/08/17 |
Technology: | DBMS |
Content |
Sophia is the built-in DBMS working by the principle "a key - value". Works in the form of the separated library.
2016: Sophia 2.2
On August 17, 2016 the release of Sophia 2.2 DBMS took place.
The main changes in Sophia 2.2 - the scheme of storage and architecture of storage.
The scheme of storage is based on line-by-line placement at which every line includes a number of fields of any[1]. Similar approach allows to reduce overheads at placement of data in storage, for example, numbers and metaddany can is stored in more compact representation directly in lines (rows). Besides, the scheme will allow to organize work with secondary indexes. As for new architecture of storage, its main feature is ensuring permanent performance of read operations, the record and scanning of ranges which is not depending on the size of storage (O(1)).
2015: Sophia 2.1
DBMS is focused on very high speed of record and reading during the work with data of the small and average size. Data remain on a disk using the log-like storage working in the mode of permanent replenishment (append-only). Unlike other log-like storages, the storage method in Sophia is not limited to high writing rate, but is optimized for ensuring high speed of any data reading and selection of ranges of values.
Specific Features
- Compliance to requirements of ACID.
- Multi-Version Concurrency Control for multiaccess to a DB.
- Net mode of a permanent dozapisa (append-only).
- Support of multiple DB.
- Multithreading in the engine and client access.
- Multioperational transactions.
- Support of the serialized representations.
- Asynchronous hot sparing.
- Jellied pointers.
- Snapshots.
- Simple API with a stable format.
- Prost in integration.
- Extends by means of FFI.
- Is distributed under the license BSD in the form of small library in the Si language without any dependences.
Starting with version 2.1 of Sophia DBMS it is positioned as the hybrid RAM/Disk-storage using for storage both OZU and a disk allowing to separate automatically the "hot" and "cold" data (updated and which did not change).
The maintained technologies
- Disk storage - for storage is used the hard drive or a flash memory. Record is cached in memory for the subsequent reset on a disk.
- Anti-caching - RAM becomes the main storage. Cold data are read from a disk or Flash-memory.
- Permanent caching - the second storage is used in pair as a LRU cache in operational or Flash-memories for hot data. Cold and hot data are duplicated in the main storage.
- Permanent storage in memory - data are stored in RAM and constantly remain on a disk. Data compression in memory is supported.
In release 2.1 are added:
- the LRU mode for replacement of old data from a cache,
- possibility of separate compression of "hot" and "cold" data,
- sale of the filter of approximate selection (AMQ, Approximate Member Query),
- support of snapshots for fast recovery after failure,
- reorganization of the transactions UPSERT (to add-or-modify),
- the mode of integration of other DBMS with Write-Ahead Log,
- additional metrics for monitoring of performance.