Tarantool Silverbox, Юрий Востриков

1,848 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,848
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tarantool Silverbox, Юрий Востриков

  1. 1. Tarantool/Silverbox efficient in-memory storage Юрий Востриков, Mail.Ru 26 октября 2010, HighLoad++
  2. 2. Высоконагруженные плоские таблицы Примеры sessions passwd Характерные особенности select only by (primary) key no joins no complex wheres, no aggregates sizeof(data) < 256B высокая доступность
  3. 3. Скорость разных типов памяти Tape is dead, disk is tape, RAM is disk. Задержка произвольного доступа RAM — 25 ns HDD — 8’000’000 ns Пропускная способность последовательного доступа RAM — 6’400 MB/s HDD — 170 MB/s
  4. 4. The Answer Tarantool — framework In-memory storage Network IO Persistence facilities Hot Standby/Replication SilverBox — Key-Value storage Tuple storage Native binary protocol Memcached protocol emulation
  5. 5. Устройство SLAB аллокатора Высокая скорость Рассчитан на хранение множества мелких объектов Низкие накладные расходы Отсутствие внешней фрагментации meta alloc free . . . free list “phantom” pointers 4MB
  6. 6. Массаракш: код наизнанку FSM, libev only read1 read2 process write1 loop Fiber, libev+libcoro read1 read2 process write1 loop
  7. 7. Persistance WAL read prepare commit/rollback reply writer Snapshot main process child HDD fork Запись строго последовательная Copy on Write
  8. 8. Hot Standby Local port master beholder Zero downtime апгрейд Remote/Log Streaming master replica1 replica2 Readonly реплики на удаленных серверах
  9. 9. IProto/Silverbox binary protocol async safe: каждый запрос маркирован sync числом tuple storage < key1, value1, key2, value2, . . . , valuen > атомарные операции: +/−, and, or, xor namespaces индексы — u32 или string несколько индексов в одном namespace
  10. 10. Эмуляция memcached нет evictions expire — отложенный, с помощью background fiber
  11. 11. Производительность latency цена сискола пропускная способность дисков невелика 1 KB × 100000 rps = 1MB × 100rps = 100 MB/sec u32 в два раза быстрее string key
  12. 12. Что дальше? новый формат WAL расширенная версия бинарного протокола Lua Эмуляция протокола redis
  13. 13. Open Source http://opensource.mail.ru/ http://github.com/mailru/ opensource@corp.mail.ru
  14. 14. Спасибо! Вопросы?

×