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