URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 101375
[ Назад ]

Исходное сообщение
"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."

Отправлено opennews , 01-Фев-15 23:24 
Дмитрий Симоненко при поддержке компании Мail.ru подготовил второй релиз  встраиваемой транзакционной СУБД Sophia (http://sphia.org/), построенной с использованием новой архитектуры (http://sphia.org/architecture.html) хранения данных, спроектированной, как ответ на недостатки LSM-деревьев (https://en.wikipedia.org/wiki/Log-structured_merge-tree). Код Sophia написан на языке Си и поставляется (https://github.com/pmwkaa/sophia) под лицензией BSD. Для работы с базами в формате Sophia доступен (https://github.com/sphia/sphia) интерфейс для работы из командной строки.

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

<center><a href="http://sphia.org/v12.png"><img src="http://www.opennet.me/opennews/pics_base/0_1422820069.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>

Отличительные особенности:


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


URL: http://sphia.org/
Новость: http://www.opennet.me/opennews/art.shtml?num=41583


Содержание

Сообщения в этом обсуждении
"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено AlexAT , 01-Фев-15 23:24 
Встраиваемое KVS с Acid и транзакциями - это пять. Надо поприглядеться.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено alexpn , 02-Фев-15 05:44 
Интересно посмотреть нагрузочное тестирование
и желательно сравнение с монстрами
PS MSSQL монстром не считаю ..... скорее пародией на БД

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено ACCA , 02-Фев-15 06:24 
Ты неправ. У него есть HandlerSocket, для k-v хранилищ гоняться с ним сложно, разве что новейший PostgreSQL. Всякие MongoDB и memcached нервно курят в сторонке.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 09:02 
>>PS MSSQL монстром не считаю ..... скорее пародией на БД
> У него есть HandlerSocket,

Вы точно про mssql, а не про mysql?


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено alexpn , 02-Фев-15 18:17 
Всегда ломал голову ну что надо маздайцам на форуме по открытым технологиям ????
Или что Вас забанили на MiCrOsOft.com ????

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Вожатый , 03-Фев-15 11:26 
> Всегда ломал голову ну что надо маздайцам на форуме по открытым технологиям ????

Open Source != Linux или *BSD


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 10:36 
> для k-v хранилищ гоняться с ним сложно, разве что новейший PostgreSQL.

Даешь гонки феррари и карьерных самосвалов! :)


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Вулх , 02-Фев-15 11:26 
выиграть могут как те так и другие, всё зависит от трассы. Более того можно подобрать трассу когда шансы будут примерно равны.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 09:07 
>и желательно сравнение с монстрами

Вы хотите сравнения встраиваемой бд из двух файлов, с "монстрами"?


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено AlexAT , 02-Фев-15 09:14 
> Вы хотите сравнения встраиваемой бд из двух файлов, с "монстрами"?

Народ просто не понимает, зачем оно. А мне вот допустим недавно понадобилось очень шустрое межсеансовое хранилище для *локальных* переменных, коих сотни тысяч штук, но с блокировками и транзакциями. Смотрю пока на sqlite3, но мне оно кажется слишком громоздким.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 09:46 
у sqlite изоляция транзакций serializable. и при записи блокировка ставится на всю базу. и никакого mvcc, не для этого она создавалась.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено AlexAT , 02-Фев-15 09:50 
Блокировка в sqlite3 во время транзакции ставится т.н. "reserved", не "exclusive", т.е. читатели в это время могут продолжать работать. MVCC при этом в sqlite3 есть, 1W/*R. В принципе для моей задачи это вполне подходит (у меня чтение в сотни раз преобладает над записью), но KV хранилище подошло бы куда лучше.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 10:42 
можно обратиться к классике - BerkleyDB, или kyotocabinet.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 10:35 
> но с блокировками и транзакциями. Смотрю пока на sqlite3, но мне
> оно кажется слишком громоздким.

Если что, скулайт на запись могет только 1 writer'а, оверхет от сиквеля никто не отменял, да и очень шустрым его назвать сложно. Если надо хранить нечто хорошо накладывающееся на логику key-value (переменная-значение по идее неплохо в это вписывается) - key-value скорее всего будет резвее и без лишней возни. Кстати бывает еще такая штука как tokyo cabinet. Помонструознее сабжа немного. Но авторы оного не зря хвастаются скоростью и прочая.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено AlexAT , 18-Апр-15 08:57 
Таки перевёл систему на SQLite3. Мне у SQLite3 в моём применении не понравилось только одно: каждая транзакция вызывает генережку отдельного логфайла. Да, там есть режим "сохранять логфайл", но всё равно он как-то так с ним работает, что на shared FS (GFS2) его не разместить - дикие тормоза. Впрочем, в моём случае это не критично.


Увы, ни Tokyo, ни Kyoto Cabinet - не умеют MVCC... в моём случае нужна поддержка consistent read, и желательно без блокировки reader'ов при записи.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Igel , 14-Апр-15 16:21 
> Народ просто не понимает, зачем оно. А мне вот допустим недавно понадобилось
> очень шустрое межсеансовое хранилище для *локальных* переменных, коих сотни тысяч штук,
> но с блокировками и транзакциями. Смотрю пока на sqlite3, но мне
> оно кажется слишком громоздким.

встраиваемыfirebird


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 10:38 
> Вы хотите сравнения встраиваемой бд из двух файлов, с "монстрами"?

Что характерно - key-value базы по скорости имеют свойство сильно втыкать SQL'ным, хотя-бы из-за отсутствия оверхеда. Но с другой стороны, выписывать сложный запрос для бизнес-аналитики самолично раскладывая все на формат ключ-значение...


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено fidaj , 02-Фев-15 10:43 
>>и желательно сравнение с монстрами
> Вы хотите сравнения встраиваемой бд из двух файлов, с "монстрами"?

даешь сравнение sohpia vs bdb vs kyoto cabinet! :) они встраиваемые ;)

хотя две последние не являются в полном смысле СУБД - они скорее просто БД... есть подозрение что и САБЖ тоже.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено edwin3d , 02-Фев-15 09:20 
> Интересно посмотреть нагрузочное тестирование
> и желательно сравнение с монстрами
> PS MSSQL монстром не считаю ..... скорее пародией на БД

Знаете, не стоит так вот показывать свое непонимание изначальной концепции продукта.
https://ru.wikipedia.org/wiki/%D0%92%D1%...

Почитайте, пожалуйста,  эту ссылку и обратите внимание на особенно и сферу


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 10:32 
> Почитайте, пожалуйста,  эту ссылку и обратите внимание на особенно и сферу

Ну как бы чисто номинально у MS была какая-то сильно обкоцаная версия для именно встройки в приложения. Но правда у MS даже это получилось нехилым монстрятником, где никакой речи о "паре файлов на си" и близко разумеется не идет.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено alexpn , 04-Фев-15 04:40 
Понимание как раз полное
Отличие БД представляется
под словом МОНСТРЫ понималось sqlite и Berkeley
Но никак не MSSSSS
Вообщем сам сравню при случае ....


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Анонннн , 18-Апр-15 06:00 
sqlite - монстр... ах-ха-ха, alexpn, что ты делаешь, прекрати.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 10:30 
> и желательно сравнение с монстрами

А давайте лучше сравним феррари с карьерным самосвалом? :)


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 12:38 
Чем оно лучше LMDB из OpenLDAP?

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Дмитрий , 02-Фев-15 14:21 
Думаю многие не понимают что насамом деле представляет из себя LMDB и его худший случай. Дело в том, что LMDB при интенсивных обновлениях начинает переиспользование старых странниц. Со временем производительность падает до классического B-дерева на вставку (а это рандомное обращение к диску на запись + эффективность кеширования). LMDB отлично работает на базах которые не сильно больше чем оперативная память. Бенчмарки обычно отличные, потому что используется mmap и бенчмарки на смешное кол-во данных.

Автор делал бенчмарк с LMDB и можете посмотреть чем это закончилось: https://github.com/pmwkaa/sophia_benchmark/issues/2

Это большая архитектурная проблема.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 16:45 
Спасибо большое за развернутый ответ и бенчмарк.

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 16:53 
для интересующихся - хотя автор и удалил страницу с результатами бенчмарка, она доступна в архиве? https://web.archive.org/web/20140803103955/http://sphia.org/...

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 12:45 
> Для работы требуется только два файла на языке Си.

Странное заявление. На GitHub файлов значительно больше.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено Аноним , 02-Фев-15 14:27 
>> Для работы требуется только два файла на языке Си.
> Странное заявление. На GitHub файлов значительно больше.

Похоже что там amalgamated сборка, по аналогии с sqlite. Создается новый Си-файл.


"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено й , 03-Фев-15 20:40 
А зачем это делается? Ведь линковка десятка obj-файлов -- это ничего в сравнению с пересборкой и линковкой всех (даже если это один файл) в случае изменения одного из них. Чисто выпендриться, какие мы крутые и embedded-friendly?

"Sophia - новая встраиваемая СУБД, оперирующая данными в форм..."
Отправлено manster , 02-Фев-15 18:46 
Походу еще и будет под BSD-лицензией