Разработчик VoltDB здесь.
Официального драйвера YCSB нет, хотя несколько пользователей провели бенчмаркинг с использованием среды YCSB. Между YCSB и VoltDB есть небольшое несоответствие импеданса. YCSB предназначен для работы с хранилищами столбцов с разбивкой по диапазонам. VoltDB — это реляционное хранилище, разделенное хэшем, с богатой поддержкой логики на стороне сервера.
Это проявляется как проблема тремя способами.
Во-первых, YCSB требует сканирования диапазона. Вы можете выполнять эффективное сканирование диапазонов в хэшированном хранилище, если у вас есть некоторые знания о распределении ключей и вы можете нормализовать ключи, чтобы они были полезны. Вот пример того, как это сделать в Cassandra.
Это не непреодолимо, но требует некоторого размышления.
Вторая проблема заключается в том, что модель хранилища столбцов плохо соответствует реляционной модели данных. Я могу значительно повысить скорость и эффективность использования памяти, упаковав небольшие карты в одну строку с помощью большого двоичного объекта и перезаписав его при добавлении/обновлении пар k/v. Вот как Redis обрабатывает маленькие карты.
Для больших ключей со многими/большими парами k/v имеет смысл денормализовать и позволить базе данных управлять памятью. Немного поработав, вы могли бы создать API хранимой процедуры, который делает это прозрачно.
Опять же, это не непреодолимо, но и не тривиально.
Третья проблема заключается в том, что YCSB написан в предположении, что вся логика существует на клиенте и что сервер должен материализовать все данные для клиента. Это означает, что ваше реальное приложение, написанное для VoltDB, может быть в несколько раз быстрее и эффективнее. Быстрее, потому что логика на стороне сервера может исключить несколько обращений к клиенту и более эффективно использовать пространство, потому что поддержка транзакций позволяет вам избежать написания вашего приложения в виде структурированного журнала.
YCSB даст вам общее представление о том, как VoltDB работает и масштабируется, но есть нетривиальные преимущества, которые можно получить, написав приложение таким образом, который подходит для реляционной модели данных и акцента Volt на логике на стороне сервера.
По поводу ТПК-С. VoltDB был создан специально для тестов, подобных TPC-C. Я говорю «нравится», потому что это неофициально и несколько отличается от TPC-C. Наиболее существенное отличие заключается в том, что транзакции новых заказов используют только один склад (а не требуемые 1-10 складов для некоторого процента новых заказов). Это важно, потому что позволяет тесту идеально выполнять сегментацию без каких-либо распределенных транзакций.
Тест VoltDB TPC-C не входит в состав дистрибутива, но доступен на гитхаб.
person
aweisberg
schedule
05.09.2012