LINUX.ORG.RU

WhiteDB – Lightweight NoSQL database written in C, operating in main memory

 ,


0

4

WhiteDB is a lightweight NoSQL database library written in C, operating fully in main memory. There is no server process. Data is read and written directly from/to shared memory, no sockets are used between WhiteDB and the application program.

http://whitedb.org/

Взлетит? Они там даже какие-то истории успеха приводят.

У меня вот возник вопрос, а что будет если размер базы превысит размер доступной памяти? Разработчики пишут, что бд взаимодейтсвует с дисками только во время загрузки/выгрузки и логирования.

Взлетит?

«in memory database»

если размер базы превысит размер доступной памяти?

То же, что при out of disk space, конечно. В данном случае wg_create_record() вернет NULL (ну или сделает тебе аборт).

arturpub ★★
()

Если со скоростью всё ок и локов там по минимуму то взлетит.
Например для NFS Ganesha она была бы великолепна.

batbko
()

а что будет если размер базы превысит размер доступной памяти

Ты не поверишь, но упадет и будет права. Потому что БД нужно подбирать под задачу и обьем данных. In-memory - быстро для данных, которые помещаются в память.

vertexua ★★★★★
()

На сайте фейспалмовый бенчмарк. Там whitedb, redis и mongodb. Но ЧТОБЫ ВСЕ БЫЛО ЧЕСТНО mongodb разместили в tmpfs

vertexua ★★★★★
()

Интересно сравнение с LMDB.

note173 ★★★★★
()
Ответ на: комментарий от Legioner

1. Индексы

второй map

2. Persistence

почему map не persistence ?

4. Запросы

map.find, map::iterator чем не запросы?

3. Concurrency

разбей данные по разным map'ам

5. Обвязка (биндинги, утилиты)

всегда ли они нужны?

Reset ★★★★★
()
Ответ на: комментарий от cdshines

Вот вот. Этих наколенных поделий хоть жопой жуй, а от map'а они ушли не далеко. Я понимаю если бы они имели функционал из bdb типа транзакций, снапшотов, репликации ...

Reset ★★★★★
()
Ответ на: комментарий от Reset

второй map

Третий, четвертый. БД удобнее. Наверное.

почему map не persistence ?

Потому что надо писать код, сохраняющий данные на диск и считывающий их с диска.

map.find, map::iterator чем не запросы?

Если будет много индексов - будет сложно писать, отлаживать и читать такой код. Декларативный язык запросов лучше.

разбей данные по разным map'ам

Не понял. Например есть несколько процессов, которые работают с одной БД в shared memory. В случае ручного мапа тебе надо делать какие-то общие мютексы и прочую муть. В случае whitedb она делает это за тебя (предположительно эффективнее, не знаю как на деле).

всегда ли они нужны?

Нет конечно. Я же не пишу, что заменяем каждую хеш-таблицу базой данных.

Legioner ★★★★★
()
23 сентября 2014 г.

Реанимирую тредик - ну как? Кто-то использует?

vromanov ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.