В чем разница между Токийским и Киотским кабинетами?
FAL Labs имеет несколько токийских и киотских продуктов:
- Токийский Кабинет и Киотский Кабинет являются облегченными базами данных.
- Токийский тиран и Киотский магнат оба являются легковесными серверами баз данных...
Может кто-нибудь объяснить разницу между продуктами Токио и Киото?
4 ответа
Токийский кабинет более полон и стабилен, Киото еще слишком свеж (сегодня 8 декабря 2010 г.) и имеет некоторые проблемы. Киото, написанное на C++, (намного) проще, чем Токио (написанное на C), но эта простота допускает некоторый пробел. Производительность Киото немного хуже, чем в Токио, но лучше работает с потоками (по крайней мере, так обещает документация).
Из официальной документации:
<< В 2007 году Токийский Кабинет был разработан как преемник QDBM в следующих целях. Они были достигнуты, и Токийский кабинет министров мог заменить обычные продукты DBM.
(...)
В 2009 году Киотский кабинет был разработан как еще один преемник QDBM. По сравнению с аналогичным продуктом (Токийский кабинет) были реализованы следующие преимущества. Однако производительность Токийского Кабинета выше, чем у Киотского Кабинета, по крайней мере, в однопотоковых операциях. >>
Я использовал оба, но я все еще предпочитаю Токио, потому что у меня была проблема с Киото: в базе данных Киото Кабинета с использованием базы данных хэш-файлов, как можно избежать увеличения размера файла? и никто не смог мне помочь. Я до сих пор не знаю, как это решить.
Исходя из моего личного опыта, я обнаружил, что Киото легче компилировать и устанавливать, а также проще в использовании. У меня были большие проблемы с токийскими библиотечными зависимостями и проблемы с подключением нативной библиотеки к интерфейсу Java. С Киото все было хорошо и отлично работает с первой попытки. Но, как я уже говорил, я чувствую больший контроль над базой данных, используя Токио.
Кабинет Токио и Тиран - LGPL и написаны на C. Кабинет Киото и Tycoon - GPLv3 и написаны на C++.
Киотский Тиран поддерживает просроченные записи в памяти, поэтому он может заменить memcached.
Разработчик говорит, что Киото * не является преемником Токио *, но это всего лишь маркетинговая стратегия; если вы не собираетесь разрабатывать коммерческий продукт, используйте Киото. Это новее и лучше.
И я предлагаю вам прочитать блог разработчика (на японском и английском языках) и внимательно прочитать заголовочные файлы (если вы собираетесь использовать библиотеку).
Удачи.
Самое важное различие между ними в отношении моих вариантов использования состоит в том, что у TC есть "база данных таблиц", а у KC - нет.
Да, вы можете сериализовать произвольные данные в строку и сохранить их как значение элемента, но тогда вы либо не сможете выполнять поиск по значению вообще, либо вам придется перебирать весь набор данных и десериализовать каждый элемент, или заново изобретать колесо и вручную индексировать данные.
TDB Tokyo Cabinet предоставляет превосходные возможности запросов для вложенных данных (индексы, сравнение чисел и строк, даже регулярные выражения внутри "полей"). Киотская вещь - это просто магазин KV; TC также является мощной документно-ориентированной базой данных.
Кроме того, согласно тесту, который я сделал, протокол Киото основан только на HTTP - более открытый, но медленнее, чем двоичный протокол Токио.