Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)

3,998 views

Published on

  • Be the first to comment

Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)

  1. 1. Tarantool: chats & comets Константин Осипов
  2. 2. СУБД Tarantool: обзор• 100% данных в оперативной памяти• постоянная копия данных на диске• гибкая модель данных• есть репликация и бэкап• хранимые процедуры на Lua• memcached протокол и binary протокол
  3. 3. О чём этот доклад• о том, как сделать онлайн чат на Tarantool и Node.JS• краткий обзор Tarantool• возможности версии 1.4.4• обзор 1.4.5• описание системы дискового хранилища
  4. 4. Модель данных Tarantool• HASH, TREE индексы• multipart, unique, non-unique индексы• STRING, NUM, NUM64 типы
  5. 5. Tarantool: пример Redis Tarantool (Lua)redis.set(key, value) box.insert(space, key, value)redis.get(key) box.select(space, 0, key, value)redis.getset(key, newkey) box.update(space, key, =p, 0, newkey)redis.incr(key) box.update(space, key, +p, 1, 1)redis.lpush(key, value) box.update(space, key, !p, 1, value)redis.rpush(key, value) You guess it...
  6. 6. Что нового в 1.4.4Скорость:• 70+% ускорение INSERT, UPDATE, DELETE• новый UPDATE O(n), n — количество полей → большие кортежи, быстро• incremental rehash в HASH индексах• более компактные TREE индексы• hardware crc32 (Intel SSE 2.0)
  7. 7. Inc. Rehash: эффект
  8. 8. Память: 1 млн кортежей
  9. 9. Производительность
  10. 10. Что нового в 1.4.4 (2)Новые возможности:• поддержка 64-бит чисел в Lua и индексах• INSERT/DELETE/APPEND полей в кортеже• .deb и .rpm пакеты
  11. 11. Tarantool в Debian “Sid” Спасибо Dmitry E. Oboukhov! Мы ищем мейнтенеров для SuSE и Fedora
  12. 12. Its going on in the kitchenНовые возможности 1.4.5:• Darwin port (Mac OS X)• HA кластер• Транзакции• множество улучшений текущих возможностей• WebScale & DevNullScale
  13. 13. Планы на 1.5• Дисковое хранилище• Авторизация• Master-master репликация• Синхронная репликация
  14. 14. Disk store для хранения Comet• Начало каждого кортежа хранится в памяти• Хвост хранится в B-tree на диске, с использованием кэша Преимущества:• Гарантированное время ответа для актуальных данных• Кэширование исторических данных• В связке с nginx/node.js — система хранения чатов
  15. 15. Спасибо!

×