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

Preview:

DESCRIPTION

 

Citation preview

Tarantool: chats & comets

Константин Осипов

СУБД Tarantool: обзор• 100% данных в оперативной

памяти

• постоянная копия данных на диске

• гибкая модель данных

• есть репликация и бэкап

• хранимые процедуры на Lua

• memcached протокол и binary протокол

О чём этот доклад• о том, как сделать онлайн чат на Tarantool и Node.JS

• краткий обзор Tarantool

• возможности версии 1.4.4

• обзор 1.4.5

• описание системы дискового хранилища

Модель данных Tarantool• HASH, TREE индексы

• multipart, unique, non-unique индексы

• STRING, NUM, NUM64 типы

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...

Что нового в 1.4.4Скорость:

• 70+% ускорение INSERT, UPDATE, DELETE

• новый UPDATE O(n), n — количество полей → большие кортежи, быстро

• incremental rehash в HASH индексах

• более компактные TREE индексы

• hardware crc32 (Intel SSE 2.0)

Inc. Rehash: эффект

Память: 1 млн кортежей

Производительность

Что нового в 1.4.4 (2)Новые возможности:

• поддержка 64-бит чисел в Lua и индексах

• INSERT/DELETE/APPEND полей в кортеже

• .deb и .rpm пакеты

Tarantool в Debian “Sid”Спасибо Dmitry E. Oboukhov!

Мы ищем мейнтенеров дляSuSE и Fedora

It's going on in the kitchenНовые возможности 1.4.5:

• Darwin port (Mac OS X)

• HA кластер

• Транзакции

• множество улучшений текущих возможностей

• WebScale & DevNullScale

Планы на 1.5

• Дисковое хранилище

• Авторизация

• Master-master репликация

• Синхронная репликация

Disk store для хранения Comet

• Начало каждого кортежа хранится в памяти

• Хвост хранится в B-tree на диске, с использованием кэша

Преимущества:

• Гарантированное время ответа для актуальных данных

• Кэширование исторических данных

• В связке с nginx/node.js — система хранения чатов

Спасибо!

Recommended