All Projects → erthink → Libfpta

erthink / Libfpta

Licence: apache-2.0
Ultra fast, compact, Embedded Database for tabular and semistructured data.

Projects that are alternatives of or similar to Libfpta

Litedb.fsharp
Advanced F# Support for LiteDB, an embedded NoSql database for .NET with type-safe query expression through F# quotations
Stars: ✭ 147 (+47%)
Mutual labels:  nosql, embedded-database
sophy
Fast Python bindings to Sophia Database
Stars: ✭ 77 (-23%)
Mutual labels:  nosql, embedded-database
AloeDB
Light, Embeddable, NoSQL database for Deno 🦕
Stars: ✭ 111 (+11%)
Mutual labels:  nosql, embedded-database
dockage
embedded document/json store
Stars: ✭ 20 (-80%)
Mutual labels:  nosql, embedded-database
Orientdb
OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries. OrientDB Community Edition is Open Source using a liberal Apache 2 license.
Stars: ✭ 4,394 (+4294%)
Mutual labels:  nosql, performance
Cog
A Persistent Embedded Graph Database for Python
Stars: ✭ 90 (-10%)
Mutual labels:  nosql, embedded-database
sync-client
SyncProxy javascript client with support for all major embedded databases (IndexedDB, SQLite, WebSQL, LokiJS...)
Stars: ✭ 30 (-70%)
Mutual labels:  nosql, embedded-database
Vedis Python
Python bindings for the Vedis embedded NoSQL database
Stars: ✭ 106 (+6%)
Mutual labels:  nosql, embedded-database
Objectbox Java
ObjectBox is a superfast lightweight database for objects
Stars: ✭ 3,950 (+3850%)
Mutual labels:  nosql, performance
Unqlite Python
Python bindings for the UnQLite embedded NoSQL database
Stars: ✭ 321 (+221%)
Mutual labels:  nosql, embedded-database
python-lsm-db
Python bindings for the SQLite4 LSM database.
Stars: ✭ 115 (+15%)
Mutual labels:  nosql, embedded-database
Libmdbx
One of the fastest embeddable key-value ACID database without WAL. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance.
Stars: ✭ 729 (+629%)
Mutual labels:  nosql, performance
Nitrite Java
Java embedded nosql document store
Stars: ✭ 538 (+438%)
Mutual labels:  nosql, embedded-database
Xodus
Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.
Stars: ✭ 864 (+764%)
Mutual labels:  nosql, embedded-database
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Stars: ✭ 1,306 (+1206%)
Mutual labels:  performance
Phoronix Test Suite
The Phoronix Test Suite open-source, cross-platform automated testing/benchmarking software.
Stars: ✭ 1,339 (+1239%)
Mutual labels:  performance
Deepool
highly-efficient pool for JavaScript objects
Stars: ✭ 90 (-10%)
Mutual labels:  performance
Geotic
Entity Component System library for javascript
Stars: ✭ 97 (-3%)
Mutual labels:  performance
Amon
Amon is a modern server monitoring platform.
Stars: ✭ 1,331 (+1231%)
Mutual labels:  performance
React Perftool
A browser developer tool extension, which will help you to inspect the performance of React Js components.
Stars: ✭ 90 (-10%)
Mutual labels:  performance

libfpta

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. Всё будет хорошо.

License Build Status Build status CircleCI Coverity Scan Status

English version by Google and by Yandex.

Кратко

"Позитивные Таблицы" или libfpta -- это Ультрабыстрая, компактная, встраиваемая СУБД для табличных и полуструктурированных данных. "Позитивные Таблицы" основываются на B+Tree и отличается взвешенным набором компромиссов, благодаря чему достигается предельная производительность в целевых сценариях использования.

  1. Одновременный многопоточный доступ к данным из нескольких процессов на одном сервере.

Поддерживаются операционные системы 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).

  1. Обслуживание нескольких читателей без блокировок с линейным масштабированием производительности по ядрам CPU.

Для читателей блокировки используются только при подключении и отключении от базы данных. Операции изменения данных никак не блокируют читателей.

  1. Строго последовательные изменения без затрат на конкурирующие блокировки (livelock) и с гарантией от взаимоблокировки (deadlock).

В каждый момент времени может быть только один писатель (процесс изменяющий данные).

  1. Прямой доступ к данным без накладных расходов.

База данных отображается в память. Доступ к данным возможен без лишнего копирования, без выделения памяти, без обращения к сервисам операционной системы.

  1. Полная поддержка ACID на основе строгой MVCC и COW. Устойчивость к сбоям и отсутствие фазы восстановления. Возможность изменения данных только в памяти с отложенной асинхронной фиксацией на диске.

"Позитивные Таблицы" опираются на libfptu (aka "Позитивные Кортежи") для представления данных и на libmdbx для их хранения, а также используют t1ha (aka "Позитивный Хэш").

Однако, "Позитивные Таблицы" не являются серебряной пулей и вероятно не подойдут, если:

  • Размер одной записи (строки в таблице) больше 250 килобайт.
  • В запросах требуется обращаться одновременно к нескольким таблицам, подобно JOIN в SQL.
  • Сценарии использования требуют наличие WAL.

Более подробная информация пока доступна только в виде заголовочного файла 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)

This is a mirror of the origin repository that was moved to abf.io because of discriminatory restrictions for Russian Crimea.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].