The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск встраиваемой СУБД Sophia 2.1

24.01.2016 18:34

Доступен релиз встраиваемой СУБД Sophia 2.1, которая поставляется в форме разделяемой библиотеки, предоставляющей API для обработки данных. Код Sophia написан на языке Си и поставляется под лицензией BSD.

СУБД рассчитана на обеспечение очень большой скорости записи и чтения при работе с данными небольшого и среднего размера. Данные сохраняются на диске с использованием лог-подобного хранилища, работающего в режиме постоянного пополнения (append-only). В отличие от других лог-подобных хранилищ, метод хранения в Sophia не ограничивается высокой скоростью записи, но также оптимизирован для обеспечения высокой скорости произвольного чтения данных и выборки диапазонов значений.

Начиная с версии 2.1 СУБД Sophia позиционируется как гибридное RAM/Disk-хранилище, использующее для хранения как ОЗУ так и диск, и позволяющее автоматически разделять "горячие" и "холодные" данные (обновлённые и не изменявшиеся).

Поддерживаются следующие технологии:

  • Дисковое хранение - для хранения используется жесткий диск или Flash-память. Запись кешируется в памяти для последующего сброса на диск.
  • Анти-кеширование - оперативная память становится основным хранилищем. Холодные данные читаются с диска или Flash-памяти.
  • Постоянное кеширование - Второе хранилище используется в паре как LRU-кеш в оперативной или Flash-памяти для горячих данных. Холодные и горячие данные дублируются в основном хранилище.
  • Постоянное хранение в памяти - данные хранятся в оперативной памяти и постоянно сохраняются на диске. Поддерживается сжатие данных в памяти.

Из других улучшений в новом выпуске можно отметить режим LRU для вытеснения старых данных из кеша, возможность раздельного сжатия "горячих" и "холодных" данных, реализация фильтра приблизительной выборки (AMQ, Approximate Member Query), поддержка снапшотов для быстрого восстановления после сбоя, реорганизация операций UPSERT (добавить-или-модифицировать), новый режим интеграции c другими СУБД с Write-Ahead Log, дополнительные метрики для мониторинга производительности.

Основные особенности СУБД Sophia:

  • Быстрая запись (Append-Only) и оптимизация на чтение;
  • Соответствие требованиям ACID (атомарность, согласованность, изолированность, надежность);
  • MVCC-движок для обеспечения одновременного конкурентного доступа к БД (Multi-Version Concurrency Control);
  • Транзакции, которые могут охватывать несколько операций;
  • Консистентные курсоры;
  • Снапшоты;
  • Возможность хранения нескольких БД в одном файле;
  • Поддержка сериализированных представлений;
  • Многопоточный движок и возможность использования в многопоточных приложениях;
  • Поддержка создания горячих бэкапов, создаваемых на лету без приостановки работы;
  • Простой API, лёгкая интеграция с приложениями, отсутствие сторонних зависимостей. Для работы требуется только два файла на языке Си.


  1. Главная ссылка к новости (http://sophia.systems/...)
  2. OpenNews: Sophia - новая встраиваемая СУБД, оперирующая данными в формате ключ-значения
  3. OpenNews: Представлена Serenity, Redis-совместимая транзакционная СУБД с дисковым хранилищем
  4. OpenNews: Релиз встраиваемой СУБД Sophia 1.2.3
Автор новости: Дмитрий
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43727-sophia
Ключевые слова: sophia, database, nosql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, 10й Брейтовский переулок (?), 21:12, 24/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >  Быстрая запись (Append-Only) и оптимизация на чтение;

    база 15-20 гигов тормозить будет?

     
     
  • 2.2, Devider (ok), 21:55, 24/01/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    У Вас, видимо, будет.
     

  • 1.3, Lester (?), 02:36, 25/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Снапшоты

    Заинтересовался, но, к сожалению, оказалось чисто внутренней деталью реализации, а не полноценным статичным срезом данных как, например, в leveldb.

    > Для работы требуется только два файла на языке Си.

    А вот это бывает удобно.

     
     
  • 2.4, Аноним (-), 05:49, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Подумал, что вся СУБД состоит из 2-х файлов. Как бы не так.
     
     
  • 3.7, Lester (?), 11:35, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В SQLite тоже много файлов, которые потом собирают в один .c. Тут аналогично, есть возможность сгенерировать единый .c файл, специально проверил.
     

  • 1.5, Аноним (-), 07:13, 25/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Честно говоря ребята молодцы. Но когда тестировали у нас проиграло на чтение rocketdb.
     
  • 1.6, lex (??), 10:02, 25/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Пользовал первую версию, было громко заявлено о скоростях и прочем. ~1000000 записей вида логин_твитера=ид_твитера и база стала весить 30ГБ и встала колом, диск лёг. Я верю, что новые версии лучше, но осадок остался.
     
     
  • 2.14, funny.falcon (?), 19:04, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, архитектура с тех пор сильно изменилась. Уверен, сейчас будет ощутимо юзабельнее.
     

  • 1.8, Аноним (-), 14:35, 25/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "встраиваемая СУБД" какие в опу 30Гб на базу? Она же не для таких вещей
     
     
  • 2.15, funny.falcon (?), 19:05, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    У некоторых SQLite терабайтами ворочает, и они только нахваливают.
     
     
  • 3.18, Кирилл (??), 22:26, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У некоторых SQLite терабайтами ворочает, и они только нахваливают.

    "Не верю"
    SQLite это вообще чумное убожество. Хотя чего ждать от поколения твиттера и ми-ми-ми.

     
     
  • 4.21, funny.falcon (?), 01:08, 26/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как бы, у всех свои задачи.

    Ссылку, где я в оригинале увидел такой claim не нашёл :( . Ну вот пример другой http://www.evanjones.ca/sqlite-for-data-analysis.html

    В общем, для аналитики вполне может свой хлеб отработать :) Но, понятно, OLTP на таком объёме SQLite не потянет.

    Но, Sophia, уверен, несколько сот гигабайт смело потянет.

     
  • 2.25, Аноним (-), 22:23, 27/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    некоторые 'встраиваемые' БЫ - и побольше.
    вот если бы она на 50 Терабайт была, тогда да, было бы нетипично для.
     

  • 1.9, Кирилл (??), 15:26, 25/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Зачем это нужно? Кто объяснит? И почему подобное называется БД коль элементарно acid-у не соответствует ни в малейшей степени? Это не БД, а просто некий механизм по оперативной работе с несущественными данными без гарантированной персистентности на уровне софта. Для тех, кто нефига не понимает, что делает.
     
     
  • 2.11, Кирилл (??), 15:41, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Похоже, я погорячился. Заявлено много чего.
     
     
  • 3.16, Аноним (-), 21:45, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы бы еще CAP-теорему вспомнили
     
     
  • 4.17, Кирилл (??), 22:21, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Э, как бы сформулировать... Никакой САР-теоремы не существует. Гетерогенные системы можно делать какими угодно, хоть согласованными всегда, хоть -- иногда. Этому никаких принципиальных препятствий нет.
     
     
  • 5.20, Аноним (-), 23:36, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да вы батенька освежите в памяти САР-теорему, прежде чем разглагольствовать. Консистентность входит только в два из трех вариантов.
     
     
  • 6.22, Кирилл (??), 13:11, 26/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Консистентность. Это что такое? Переведите. Вы понимаете, что это значит вообще? Ещё раз, никакой "САР-теоремы" не существует. Это просто маркетинговое обоснование для убожественных систем. В результате подобной лапши, например, в РФ внедрили в одной гос. организации "распределённую NoSQL-систему документооборота" и получили, что уже заверенный кадастровый договор ещё пару месяцев болтается в различных статусах в дебрях этого очень NoSQL-решения. А на основе этих статусов пеня начисляется и всякие письма автоматом штампуются совершенно от всего этого бардака очумевшему клиенту.
    Сказки клиентам выдумывать и рассказывать дело, иногда, нужное и важное. Главное -- самому случайно в них не уверовать.
    САР-теорема или, например, "ортогональность реляционной модели и объектной", "разработка через тестирование" -- всё из той же оперы.
     
     
  • 7.23, Аноним (-), 19:35, 26/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Консистентность. Это что такое? Переведите.

    Перевожу на твой https://ru.wikipedia.org/wiki/Согласованность_данных
    >Вы понимаете, что это значит вообще? Ещё раз, никакой "САР-теоремы" не существует.

    Больше нам с вами говорить смысла не имеет, я бесплатными образовательными курсами на форумах не занимаюсь.

     
     
  • 8.24, Кирилл (??), 22:24, 26/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя на этом -- спасибо что хотя бы бесплатно маразм не распространяете ... текст свёрнут, показать
     
  • 2.19, Led (ok), 23:18, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем это нужно? Кто объяснит?

    У тебя точно есть родной брат, тоже Кирилл.

     

  • 1.12, Кирилл (??), 15:48, 25/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Вот все эти мантры по in-ram processing они о чём? В общем-то, все основные СУБД с оперативными данными работают по возможности с самым быстрым устройством ввода-вывода. В чём отличие вот этого от того, что, ну, скажем, в том же Оракле? Тот тоже использует wal и отложенный сброс на диск грязных блоков, а изменения обслуживаются в рамках mvcc с согласованием по времени. Что выбирать в память тоже довольно гибко настраивается. Но почему-то оракл (ну или слона) гордо не именуют in-ram processing-ом, хотя он там в полный рост есть?
     
     
  • 2.13, Кирилл (??), 15:49, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А, понятно, это же встраиваемое решение.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру