Как стать автором
Обновить

Комментарии 34

А как оно по сравнению с MongoDB, Redis и другими?
Мне кажется правильней её сравнивать с Memcached или Mambase — они также предназначены для хранения пар ключ-значение. MongoDB и Redis же предоставляют более богатый функционал.
Memcache же не обеспечивает хранения…
Вероятно имелась в виду Memcachedb
ну так а это просто bdb.
Вы видимо совсем о Рэдисе не слышали, раз так говорите. А Memcached не предназначена для хранения.
redis как раз и есть хранилище ключ-значение
Позвольте не согласиться. Если с ключами в редисе всё просто и понятно, то значениями могут быть довольно высокоуровневые типы: hash, set, ordered set
Ну да, вы правы, но все равно логичнее сравнивать с ним, а не с SQLite :)
>Мне кажется правильней её сравнивать с Memcached или Mambase
нет, вот здесь ты ошибаешься: Memcached или Mambase — это БД, а Kyoto Tb есть API для хранилища данных.
Можно сравнивать с BerkeleyDb, хотя Kyoto Tb наиболее производительное из хранилищ типа key/value fallabs.com/kyotocabinet/kyotoproducts.pdf

мои бенчмарки показали, что мое АПИ для Kyoto Tb более производительнее чем тот же memcache, хотя я еще успеваю в фоне скидывать на диск все апдейты. www.slideshare.net/akalend/treedb-keyvalue-nosql-database

>MongoDB и Redis же предоставляют более богатый функционал.
но меньшую производительность,
хотя на базе Lvdb можно самому построить удобный для тебя функционал, который не будет уступать тому же MongoDB или Redis,

ниже в комментариях, если интересно, я кинул ссылку на TreeDb — где я на базе Tokyo Cabinet сделал продукт (надо допилить кой-какие детали и выложить в общий доступ) с функциональностью первого редиса, но превосходящего его по производительности.
В полку NoSQL прибыло! Бенчмарки конечно красивые, особенно последовательные чтения/запись. Вот только жаль, что с другими NoSQL решениями они не сравнивали.
каждый сравнивает с выгодной для него позиции. Как показал опыт, надо сделать свои бенчмарки, потому что любое тестирование очень условно: железо, объем ОЗУ и выделенного кеша, использование конкретного АПИ, режима постоянного соединения и прочих тонкостей.

То что было на официальной презентации продукта не всегда совпадает с ожиданиями на твоем боевом сервере. Я уже съел собаку на всяких тестированиях.

Обязательно приму на вооружение с сделаю свои бенчмарки.
А какой смысл сравнивать производительность хранилища пар ключ-значение с SQLite? Честнее с Berkeley DB.
И да, почему размещено в блоге Data Mining?
про berkey db — в точку, есть еще поделка kdb (http://kx.com/)
Kyoto Cabinet это и есть современный аналог BerkleyDB
Причина простая: Если бы вместо SQLite в этом тестировании «случайно бы» поучаствовал BerkeleyDB, такой бы «красоты» в бенчмарк-графиках наверное бы не получились. А зачем портить такой красивый график (тем более график вовсе не красивый и красота далеко не убедительно)?

Если все-таки совсем внимательно и попристальнее присмотреться к этим графикам, то сразу видно, что результаты теста «Random Reads» почему-то по-отношению к LevelDB вовсе не вызывают реакцию какого-то бурного восхищения.

А когда смотришь на эти графики дальше, у меня почему-то и вообще в голову начали закрадываться всяческие нехорошие мысли и мутные подозрения.

Вот например, скорость таких вещей как «Sequential Reads» и «Sequential Writes», превосходство LevelDB в которых вроде так убедительно? Я вообще-то очень сильно напрягал мозг, вспоминая, насколько часто в реальных ситуациях в отличии от «синтетических тестов» всяческие «Sequential» могли бы стать узким местом в производительности (потому что мы «вовремя вспоминаем», что мы все это сравниваем применительно к таким вещам как Key/Value-storage).

А когда смотришь на графики дальше, общее состояние огорчения возрастает, и приходит полная уверенность, что SQLite в данном тесте поучавствовал действительно только «ради красоты».

Потому, что в таких тестах как «Batch Writes», Kyoto почему-то «случайно забыли», и оставив LevelDB одиноко состязаться на пару с SQLite.

Видимо, бенчмарк-казуса c «Random Reads» в измененной кофигурации (там, ниже, где увеличили «memory usage to 128 MB») и где LevelDB умудрился не только уступить Kyoto почти в 2.5 раза, но и даже чуть-чуть пропустить вперед SQLite, было достаточно.

Так что, не знаю как у Вас, у меня например, совсем не возникло «жгучего желания» по отношению к LevelDB, только из-за «волшебной силы бренда Google». Скорее наоборот, это как раз и портит всю картину (наверное я наивно ожидал большего от технологии, которая «made by google»).

А результаты «Random Reads» (так основная ниша, где уютненько обосновались всяческие nosql key-value storage продукты, завоевав ее своим высоким перфомансом и низким оверхедом) говорят совсем не в пользу LevelDB.
согл, бенчмарки не показательны.
А какой смысл сравнивать производительность хранилища пар ключ-значение с SQLite

Может быть потому, что свое решение гугл позиционирует как встраиваемое. В таком случае вполне логично сравнить его SQLite.
НЛО прилетело и опубликовало эту надпись здесь
Оно ж сишное, биндинги рисуются за полчаса максимум.
ну полчаса — ты загнул, но за дня два-три можно написать полноценный биндинг например для РНР или питона (я для тарантула бинд писал неделю по вечерам 2-3 часа)
Гм. Возможно. Для дотнета рисуются именно что за полчаса, местный P/Invoke — волшебная штука.
Еще с утра эту новость на лоре читал.
Жаль пока сравнений с другими БД маловато. Но по графиках с SQLite3 в самом низу.
И все-таки сравните с redis пожалуйста :).
их изначально нельзя сравнивать так как Redis — это законченное решение
а LevelDb — это emmbed решение. Если взять и реализовать поверх этого API, например, редис протокол — тогда можно сравнить их по производительности. Однозначно скажу, что если к LevelDb присабачить сетевой интерфейс, то он будет однозначно быстрее редиса.

Что касается сравнения, то у редиса более расширенный функционал: списки, множества.
Редис на типах key/value не может делать операции итераций/обратных итераций. Для этого используются списки. Но списки — это последовательный доступ, а LvDb позволяет использовать прямой доступ.
см мои коментари… уже надоело повторяться. Что касается MemcacheDB, то это memcached настройка над BerkeleyDb, которая сегодня уже не является самой быстрой из key/value embedded решений.
Правильнее сравнивать с BerkeleyDb, qdbm или Tokyo/Kyoto Cb так как это все embedded решения
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
спасибо за информацию

что касается бенчмарков, то я конечно понимаю тестировщиков,
которые представляют тесты с выгодных для них позиций.

сравнение с Kyoto TreeDB — это не совсем правильно (я уже не говорю про SQLite)
так как LiveDb — это HashTable, ну сравнивали бы тогда уж с типом Kyoto HashDB — который на порядок быстрее,
так как внутренняя организация Kyoto TreeDB более сложная и представляет собой внутренее Hash хранилище с Tree индексом. И еще есть режим сжатия, отключив который можно добиться более высокой производительности.

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

Публикации

Истории