Конференция разработчиков
высоконагруженных систем
Хочу быть в курсе событий!
Тестирование производительности NoSQL БД
Мы (компания "Тамтэк") занимались сравнительным тестированием производительности и отказоустойчивости четырех NoSQL-решений: Aerospike, Couchbase, MongoDB, Cassandra. Особенности исследования: включение в сравнение малоизвестной проприетарной key-value БД Aerospike, тестирование производительности на SSD.
Производительность БД измерялась с использованием YCSB (Yahoo! Cloud Service Benchmark). Нам понадобилось внести изменения в YCSB: добавить поддержку Aerospike, исправить драйверы для MongoDB, написать обертку для параллельного запуска YCSB-тестов на множестве клиентов и визуализации полученных результатов. Поддержка множества клиентов понадобилась, поскольку было обнаружено, что полная загрузка кластера из 4 узлов (по 4 ядра на узле) возможна только с 8 клиентских машин (256 потоков).
Тесты показали, что на данных в оперативной памяти key-value БД показывают производительность до миллиона операций в секунду. Более функциональные document-oriented и column-family БД показывают на порядок меньшую производительность. Задержки (latency) у самых быстрых БД не превышают 1 мс (на 1Gb Ethernet), у самых медленных среднее значение задержки не превышает 10 мс.
Тестирование отказоустойчивости производилось путем принудительного отключения (kill -9) и последующего включения одного из узлов кластера, измерялись время простоя (как при отключении, так и при включении узла) и деградация производительности. Различные базы данных продемонстрировали весьма разнообразное поведение, заложенное в их архитектуру.
В рамках выступления будет рассказано о примененных методиках тестирования и приемах интерпретации результатов. Кроме того, будут озвучены сами результаты и личные впечатления, касающиеся использования этих БД.