LINUX.ORG.RU

Sophia — новая встраиваемая СУБД

 


3

3

Sophia это встраиваемая СУБД, работающая по принципу «ключ - значение» и имеющая уникальную архитектуру, разработанную в результате попытки избавления от основных алгоритмических недостатков LSM-деревьев.

Sophia рассчитана на быструю запись в режиме постоянного пополнения (append-only) и не менее быстрое чтение данных и диапазонов значений.

Особенности:

  • Полное соответствие требованиям ACID.
  • Движок MVCC (Multi-Version Concurrency Control) для мультидоступа к БД.
  • Чистый режим постоянной дозаписи (append-only).
  • Поддержка множественных БД.
  • Многопоточность в движке и клиентском доступе.
  • Мультиоперационные транзакции.
  • Поддержка сериализованных представлений.
  • Асинхронное горячее резервирование.
  • Консистентные указатели.
  • Снапшоты.
  • Простой и лёгкий API со стабильным форматом.
  • Прост в интеграции (требуется только два файла на С).
  • Легко расширяется посредством FFI.
  • Распространяется под лицензией BSD в виде небольшой блибиотеки на языке С без каких-либо зависимостей.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: ymn (всего исправлений: 2)

основных алгоритмических недостатков LSM-деревьев

Кто-то может просветить подробнее?

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

из вики..

One simple version of the LSM tree is a two-level LSM tree.

фрактал какой-то, а не определение :)

PS: посмотерл исходники. очень лаконичный код без ЭтихСсаныхДлинныхКэмелНеймов, который так сильно любят плюсовики и почему-то решивших, что код лучше читается, хотя в действительности на выходе беспросветная лапша из длинных слов.

Deleted
()

встраиваемая

Не понял, типа sqlite?

PS: посмотерл исходники. очень лаконичный код без ЭтихСсаныхДлинныхКэмелНеймов, который так сильно любят плюсовики и почему-то решивших, что код лучше читается, хотя в действительности на выходе беспросветная лапша из длинных слов.

+1, кэмелкейсеров на гиляку ^_^ Люблю такие_названия_функций и_переменных...

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

А почему на сайте написано sponsored by @mail.ru, их поделка? В половине случаев написано sophia, в половине - sphia, зачем так делать?

Ну и я был бы рад услышать мнение компетентных товарищей по поводу сравнения сабжа с тем же sqlite.

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

я в СУБД не разбираюсь, поэтому как получилось, так и получилось

Alyssa
() автор топика

Уже не новая.

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

Сравнивать sqlite с этой бд не совсем корректно, учитывая что sqlite реляционная СУБД, в то время как сабж - хранилище «ключ - значение», разные сферы применения. А по поводу mail.ru, это конечно интересно да)

excanoe
()
Ответ на: комментарий от Deleted

PS: посмотерл исходники. очень лаконичный код без ЭтихСсаныхДлинныхКэмелНеймов, который так сильно любят плюсовики и почему-то решивших, что код лучше читается, хотя в действительности на выходе беспросветная лапша из длинных слов.

ЗатоВсеСразуПонятно, а не м р о с...

exst ★★★★
()

подскажите, где эти ключ-значения используются?

я вот тестировал memcached, сохранял в нем закэшированные nginx'ом страницы.

суть в том, что файловая система (да не важно, та же ext4) быстрее этого самого memcached, потому что у ядра есть свой собственный кэш, куда страница и так помещается при обращении к ней, а memcached это лишняя прослойка, которая замедляет работу аж в 20 раз.

поэтому если делать кэширование на стороне сервера - то только на чистых файлах.

Spoofing ★★★★★
()

Угу. И умолчали, что разраб из mail.ru

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

К сожалению, решение на чистых файлах не масштабируется ввиду ограниченного количества inode в ФС, так что, такие движки могут помочь. Один файл на все сразу, вместо отдельного файла на каждую сущность.

excanoe
()
Ответ на: комментарий от Spoofing

А если кешируется не страница, а другая сущность? А как ты контролируешь время жизни объекта в дисковом кэше? А я точно не повелся на троллинг?

anonymous
()

И чем это лучше LMDB?

anonymous
()

Анонимус затрудняется определить степень необходимости данного поделия. Конкретные юзкейзы?

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

степень необходимости данного поделия

Думаю где-то 6.3

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

Ну и я был бы рад услышать мнение компетентных товарищей по поводу сравнения сабжа с тем же sqlite.

Как уже заметили - «нерелевантно». Скорее надо было бы сравнить с BerkeleyDB. А наличие «мультиоперационных транзакций» позволяет накостылить (или наколхозить) и аналоги строк и столбцов, связей и прочего... Не навернётся ли встраиваемость и всё остальные «фичи»?

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

подскажите, где эти ключ-значения используются?

много где

я вот тестировал memcached, сохранял в нем закэшированные nginx'ом страницы.

молодец, рассмотрел всего один случай применения мемкеша, а их куча и маленькая тележка.

суть в том, что файловая система (да не важно, та же ext4) быстрее этого самого memcached, потому что у ядра есть свой собственный кэш, куда страница и так помещается при обращении к ней, а memcached это лишняя прослойка, которая замедляет работу аж в 20 раз.

Когда у тебя один сервер — возможно, а вот когда у тебя десятки, как такую страницу положит ядро в память других машин?

поэтому если делать кэширование на стороне сервера - то только на чистых файлах.

если делать кеширование на одном единственном сервере, то зачем файлы, напихай туда побольше памяти и пиши сразу zero-copy

anonymous
()

основных алгоритмических недостатков LSM-деревьев.

Вот это как раз поконкретнее неплохо бы упомянуть прямо в новости, чтобы не гуглить что конкретно исправили

vertexua ★★★★★
()

Автор — новостной бот? Если нет, то на каких просторах Казахстана ты его наcrawl'ил, где история успеха?

t184256 ★★★★★
()

Хм, интересно. Покурим на досуге.

ЗЫ А что, принадлежность к mail.ru - это совсем плохо?

Deleted
()
Ответ на: комментарий от excanoe

Кстати, да.

Сравнивать sqlite с этой бд не совсем корректно, учитывая что sqlite реляционная СУБД, в то время как сабж - хранилище «ключ - значение», разные сферы применения.

Согласен. Сравнивать с sqlite не стоит. Сравнивать (если уж) надо с Berkeley DB, над которой тот же sqlite не более чем нашлёпка.

Moisha_Liberman ★★
()
Ответ на: Кстати, да. от Moisha_Liberman

Сравнивать (если уж) надо с Berkeley DB, над которой тот же sqlite не более чем нашлёпка.

Сравнивать (если уж) надо с read/write, над которыми они все не более чем нашлепка.

П.С. для особо укуренных - sqlite over bdb != vanilla sqlite

anonymous
()

про два файла шутку оценил

погоняю, посмотрю

sartakov
()
Ответ на: комментарий от I-Love-Microsoft

Люблю такие_названия_функций и_переменных...

I-Love-Microsoft ★★★★★ (02.02.2015 13:15:10)

Судя по нику - ты вообще любитель всякого говна.

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

ЗатоВсеСразуПонятно, а не м р о с...

шобвсетвоикнигибылибезпробелов, высотабуквнепомогаетчитаемоститекста

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от t184256

Автор — новостной бот?

Рабочий рот.

anonymous
()
Ответ на: Ну если мы о от Moisha_Liberman

Блин...

Отредактировать не могу, но сравнение с read()/write() не выглядит осмысленным, т.к. индексы не учитываются. И репликация. И поддержка транзакционной целостности. На просто файлах просто и задолбаешься.

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

При чем тут плюсовики. Это java энтерпрайщина этим грешит.

при любом раскладе код не похож на энтерпрайз и нужно называть вещи своими именами. не «очень лаконичный код», а - «поделка». ;)

Lucky ★★
()
Ответ на: Ну если мы о от Moisha_Liberman

sqlite тут ни о чём, т.к. это доп. уровень над Berkeley DB.

С каких пор реляционная БД - доп. уровень над key/value? Ее, конечно, можно сделать поверх, но тот же sqlite сделан на b-tree и vm.

anonymous
()
Ответ на: комментарий от Deleted

ЗЫ А что, принадлежность к mail.ru - это совсем плохо?

А ты представь титры как в кино:

Ооооот создателей мейл агент и мейл-агент два !

От режиссера мейл спутник и продюссера мейл-гвард !

Представляем новый блок-бастер дата-байз София !!

В главных ролях Скарлет Йоухохохансон LSM дерево.
и др.

handbrake ★★★
()

Поддерживает ли БД множественную запись, или все транзакции сериализуются?

Sorcerer ★★★★★
()

Всё это есть в bdb, только bdb еще и репликация есть, а тут её нет, поэтому не понятно зачем это нужно.

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

Позволю себе напомнить

... что я говорил именно об sqlite применительно конкретно к Berkeley DB.

Не важно как это можно сделать. Важно как это уже сделано. Если интересно, то матчасть здесь -> http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/o...

Moisha_Liberman ★★
()

Sophia — новая встраиваемая СУБД

Эталонная новость - 2 ошибки в заголовке. Имя неправильное, и база не новая.

Vit ★★★★★
()
Ответ на: Позволю себе напомнить от Moisha_Liberman

Не важно как это можно сделать. Важно как это уже сделано.

Гениальная логика, а если есть реализация Python на Java - то Python в общем всего-лишь нашлепка над джавой, ага.

Если интересно, то матчасть здесь

Матчасть в исходниках, которые я детально рассматривал.

anonymous
()

Да вы задолбали уже клоны пилить. Хоть бы в одну из этих сраных дб добавили нормальны ACL. Ато лепят одно и тоже все кому не лень.

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