К верхним десяткам тысяч запросов в секунду Я хочу видеть 60 000 -> +90 000 запросов в секунду.(Как может/что должен) Я реализую базу данных, которая масштабируется до верхних десятков тысяч запросов в секунду?
My Setup состоит из следующих действий:
пользователя ---> Веб-приложение -> Очередь сообщений -> анализатор -> базы данных?
Следует отметить, что в настоящее время анализатор может анализировать/обрабатывать около 18750 записей в секунду с использованием COPY, поэтому мы ограничены в этом направлении, пока не начнем добавлять больше парсеров - сейчас это не вызывает большого беспокойства.
У меня есть система, которая требует возможности массовой загрузки так же быстро, как я могу, сколько записей. Эта же система (или она может быть разной в зависимости от того, как вы приближаетесь к нему) должен быть в состоянии реагировать на запросы аналитических типов, таких как это:
wonq = "select sum(amount) from actions where player = '@player' and " + "(type = 'award' or type = 'return') and hand = hand_num" lostq = "select sum(amount) from actions where player = 'player' and " + "type != 'award' and type != 'return' and hand = hand_num"
..... 10-15 тысяч раз (PER USER), поскольку они привязаны к другой таблице. Излишне говорить, что мы сейчас разбиваем эти результаты на 10/страницу.
Я посмотрел на следующее: (. Рег заурядным РСУБД) (предполагается, что они находятся на том же сервере)
MySQL - смог попасть в 15-20 тыс. запросов/второй диапазон; в нынешних условиях, если мы попытаемся это масштабировать, нам нужен отдельный хост/база данных каждый раз, когда нам нужно масштабировать - это не выполнимо
couchdb (document oriented db) - не сломал 700 запросов/секунду; Я действительно надеялся, что это спасет нашу задницу - не случайность!
vertica (columnar oriented db) - ударил 60000 запрос/секунду, закрытый источник, очень дорогой; это все еще вариант, но мне лично это совсем не понравилось
tokyocabinet (hash based db) - в настоящее время весит 45 000 вставок в секунду и 66 000 выборок в секунду; вчера, когда я написал это, я использовал адаптор FFI, который выполнял около 5555 запросов в секунду; это на сегодняшний день самая быстрая самая удивительная база данных, которую я видел еще!
terracotta - (vm cluster) в настоящее время оценивает это вместе с jmaglev (не могу дождаться, пока сам маглев не выйдет) - это МЕДЛЕННО!
может быть, я просто приближаюсь эта проблема неправильно, но я всегда слышал, что RDBMS медленно, как весь ад - так где эти супер быстрые системы, которые я слышал о?
Условие тестирования ::
Просто так госзакупки знают мои спецификации на моем Dev окне:
dual 3.2ghz intel, 1 gig ram
Mysql MySQL.CNF редактирует были:
key_buffer = 400M # was 16M innodb_log_file_size = 100M # non existent before innodb_buffer_pool_size = 200M # non existent before
UPDATE ::
Оказывается, что керамическая плитка может иметь место в нашей структуре приложения, но это утончаются НЕ заменит нашу в любое время базы данных в ближайшее время, поскольку это скорость ужасны и это использование кучи отстой.
С другой стороны, я был очень рад видеть, что библиотека ruby-библиотеки tokyocabinet NON-FFI (что означает тиран/кабинет) является супер быстрой и прямо сейчас, что является первым местом.
feydr - не могли бы вы рассказать о том, как вы протестировали терракоту? Хотелось бы узнать больше, почему вы считаете, что Терракота медленная. Большинство людей считают, что это очень быстро, поэтому, возможно, это плохой вариант использования - или может быть какая-то настройка? Хотелось бы узнать больше ... –
Тейлор: по общему признанию, это проблема. плохой вариант использования; мы также все еще оцениваем его и, вероятно, будем на некоторое время, но в качестве первого теста простого обмена списком объектов на одном экземпляре server-client мы могли бы использовать только в наших objcs в ~ 50/секунду по сравнению с большинством других вариантов. ~ 600/сек. – eyberg
Тейлор: только что заметил, что ваш блог говорит о 3500 ткс/сек. - предоставленная терракота будет значительно уменьшаться (что означает, что все еще проблема имеет место для нас), но я думаю, что скорость txn просто сравнительно дорога замедлить замену наших rdbms – eyberg