Ultra fast, compact, Embedded Database for tabular and semistructured data.
Fast Positive Tables, aka "Позитивные Таблицы" by Positive Technologies -- Ultra fast, compact, embedded database for tabular and semistructured data: multiprocessing with zero-overhead, full ACID semantics with MVCC, variety of indexes, saturation, sequences and much more.
The Future will (be) Positive. Всё будет хорошо.
English version by Google and by Yandex.
"Позитивные Таблицы" или libfpta -- это Ультрабыстрая, компактная, встраиваемая СУБД для табличных и полуструктурированных данных. "Позитивные Таблицы" основываются на B+Tree и отличается взвешенным набором компромиссов, благодаря чему достигается предельная производительность в целевых сценариях использования.
Поддерживаются операционные системы Linux (kernel >= 2.6.32, GNU libc >= 2.12, GCC >= 4.2), Mac OS (начиная с 10.11 "El Capitan") и Windows (Windows 7/8/10, Windows Server 2008/2012/2016, MSVC 2015/2017).
Для читателей блокировки используются только при подключении и отключении от базы данных. Операции изменения данных никак не блокируют читателей.
В каждый момент времени может быть только один писатель (процесс изменяющий данные).
База данных отображается в память. Доступ к данным возможен без лишнего копирования, без выделения памяти, без обращения к сервисам операционной системы.
"Позитивные Таблицы" опираются на libfptu (aka "Позитивные Кортежи") для представления данных и на libmdbx для их хранения, а также используют t1ha (aka "Позитивный Хэш").
Однако, "Позитивные Таблицы" не являются серебряной пулей и вероятно не подойдут, если:
Более подробная информация пока доступна только в виде заголовочного файла API.
$ objdump -f -h -j .text libfpta.so
libfpta.so: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x000000000000af30
Sections:
Idx Name Size VMA LMA File off Algn
11 .text 00048130 000000000000af30 000000000000af30 0000af30 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
$ ldd libfpta.so
linux-vdso.so.1 (0x00007ffc379c3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f710092c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7100724000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7100344000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f70fffa6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f70ffd8e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f70ff99d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7100db0000)