tarantool.pdf

E028c6257b40e40c8b73ac7b29d39551?s=47 dasha
December 08, 2018

 tarantool.pdf

E028c6257b40e40c8b73ac7b29d39551?s=128

dasha

December 08, 2018
Tweet

Transcript

  1. СУБД «TARANTOOL» Студент: Жирёнок Д.А. Группа: 18.М10-ПУ Email: dashazhirenok@yandex.ru

  2. ИСТОРИЯ • Разработчик и автор - Mail.ru Group; • Начат

    в 2008 году; • Руководитель проекта – бывший технический директор MySQL; • «Как сэкономить миллион долларов на базе данных на высоконагруженном проекте» 2
  3. “УМНЫЙ” CACHE • Писать сначала в базу, потом в кэш

    (-) • Писать сначала в кэш, потом в базу (-) • ‘Самописный’ демон, который сам пишет в базу и кеширует (+) 3
  4. ОСОБЕННОСТИ 1. Данные хранятся в оперативной памяти; 2. Открытый исходный

    код; 3. Данные защищены логом транзакций; 4. Поддерживается репликация 5. Поддерживает язык запросов SQl + LUA; 6. Tarantool-binary protocol; 7. Клиентские библиотеки на многих языках. 4
  5. ПРОИЗВОДИТЕЛЬНОСТЬ • Хранит все данные в оперативной памяти; • Производительность

    изначально существенно выше чем у традиционных СУБД; • Читает всегда из оперативной памяти 5
  6. МОДЕЛЬ ДАННЫХ • Пространства — это коллекции объектов; • Первый

    элемент кортежа — это первичный ключ; • Типы данных – числа и строки; • Можно делать выборки по отдельным атрибутам кортежа. 6
  7. МОДЕЛЬ ДАННЫХ ['dc=ngdr,o=MegaFon,ou=subscriber,imsi=600000000132091,srv=PCCM_PCCM', 'PCCM_1', 'imsi=600000000132091,o=MegaFon', true] 7

  8. ОТКАЗОУСТОЙЧИВОСТЬ • Текущее состояние фиксируется в файле ‘snapshot’ • Все

    изменения пишутся в файл ‘WAL’ (write ahead log); • Каждая запись в ’WAL’ имеет порядковый номер ‘LSN’ (log sequence number) 8
  9. ОТКАЗОУСТОЙЧИВОСТЬ • tarantoolctl cat FILE --from=lsn • WAL -> .xlog

    • SNAPSHOT -> .snap 9
  10. ОТКАЗОУСТОЙЧИВОСТЬ • SNAP • 0.13 • Version: 1.9.2-7-g3736c37 • Instance:

    c5d1e3ac-736c-4e92-a390- 13ce02d272d0 • VClock: {1: 2949197, 2: 16387462} ХєєН%i Оzі{ШҐ (µ/э Pt*є˜ ‘\> Х ;ВHГМГЇsЎ˜ѓЖљµЎ©*Ф&•КгЧ"е”LX©€џT m1ПAючЅыя}СжЕ\’н%Фw)лз·€€лв~А›!_rFѓЂЫ©к °Q] 10
  11. РЕПЛИКАЦИЯ • Поддерживается репликация - master- master и master-slave 11

  12. РЕПЛИКАЦИЯ 12

  13. КОМАНДЫ ДЛЯ УПРАВЛЕНИЯ TARANTOOL • tarantoolctl start NAME; • tarantoolctl

    stop NAME; • tarantoolctl restart NAME. 13
  14. КОМАНДЫ ДЛЯ УПРАВЛЕНИЯ TARANTOOL • tarantoolctl connect URI. 14

  15. LUA - ФУНКЦИИ • Есть встроенные LUA - функции для

    управления БД; • В Tarantool можно писать хранимые функции на LUA; • Можно реализовать фоновые обработчики 15 box.snapshot() box.snapshot()
  16. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ • В качестве слоя кэширования для традиционных реляционных

    баз данных; • Для динамического контента: сеансов пользователей, мгновенных сообщений; • В 2014 году был принят социальными сетями Badoo и Одноклассники; • Обработка самых «горячих» данных Mail.Ru • Использование в биллинговых системах Мегафона 16
  17. МИНУСЫ • Разбросанная документация; • Не так много информации; •

    Сложности с PHP клиентом 17
  18. ПЛЮСЫ • Быстрая • Дружественные разработчики tarantool ; • Удобно

    доставать данные БД; • Удобно хранить данные 18
  19. ПОЛЕЗНЫЕ ССЫЛКИ • https://tarantool.io/en/developers/ • https://github.com/tarantool/tarantool • https://ru.bmstu.wiki/Tarantool • https://habr.com/company/mailru/blog/352760/

    • http://www.pvsm.ru/nosql/190984 • http://www.cnews.ru/news/top/2016-08- 01_bilajn_probuet_pereehat_na_rossijskuyu_subd 19