На конференції HighLoad++ 2016 Іван Круглов розповів про те, як сервіс Booking.com розвивав свій пошук — одну з центральних функцій системи інтернет-бронювання готелів.

Всім привіт! Я Ваня, пишу на Perl — можете мені поспівчувати. [Легкий сміх у залі і зі сцени.]

Гаразд. По-серйозному, мене звуть Іван Круглов, я з компанії Booking.com з міста Амстердам. Там я працюю останні 4 роки, де останні півтора року я працював у команді, яка робить наш пошук краще.

Почати я хочу трохи здалеку. Ось з цієї фрази:

Читати далі →

Redmine на MySQL з RocksDB швидше, ніж з InnoDB, від 20% до 3 разів

Ми зібрали форк MySQL від Facebook з движком RocksDB замість InnoDB і потестували його з реальними додатками: Drupal, Wordpress, Redmine.
Це офігенна штука. При низькому навантаженні виграш маленький, десятки відсотків. Зате при високому навантаженні виграш в рази. Коли RocksDB додадуть в стабільний реліз в MariaDB, я впевнений, що протягом півроку половина народу перейде з InnoDB на RocksDB. Особливо, невеликі сайти на cloud/VPS та виділених серверах.
Що такого хорошого в MyRocks? Лінійна запис замість випадкової і зниження числа дискових операцій взагалі. Тобто транзакції бази даних породжують менше дискових операцій, менше займають чергу диска, і пишуться набагато швидше.
Я зібрав у статтю результати тестування реальних сценаріїв Redmine, додав аналіз результатів і висновки. Redmine на MySQL з RocksDB виявився швидше, ніж з InnoDB — від 20% при мінімальному навантаженні до 3 разів при максимальній. Пізніше підготую матеріали по Drupal та іншим PHP-додатків.
Ви зможете перевірити роботу MyRocks і самостійно — в кінці статті є посилання на інсталятори і віртуальні машини з LAMP/LEMP/Ruby стеками, зібрані з MyRocks замість MySQL.


Читати далі →

RocksDB сервер - швидке key-value сховище для SSD накопичувачів

    RocksDBRocksDB — постійне сховище «ключ-значення» для швидких накопичувачів. Основне її призначення — зберігання даних на flash дисках.
 
Вузьким місцем у продуктивності часто є звернення до БД.
Ця проблема може вирішуватися по різному.
Використання кешу вирішує проблему продуктивності, але істотно ускладнює архітектуру програми. Графова бази даних виходять із ситуації за рахунок оптимальних для даної задачі алгоритмів. Іншим типом рішень є сховища, що досягають високої продуктивності за рахунок використання швидкого носія.
Останнім часом з'явилося багато NoSQL сховищ повністю зберігають дані в пам'яті. Але пам'ять все ще коштує дорого і її обсяг обмежений. Збільшення пам'яті за рахунок шардінга знову таки впирається у вартість.
Логічним виходом із ситуації було б використання SSD дисків. Вони мають відносно не високу вартість і при цьому цілком невеликий час відгуку.
 
 
Читати далі →