Опыт использования NoSql хранилищ (Андрей Новиков)
Upcoming SlideShare
Loading in...5
×
 

Опыт использования NoSql хранилищ (Андрей Новиков)

on

  • 7,835 views

 

Statistics

Views

Total Views
7,835
Views on SlideShare
6,099
Embed Views
1,736

Actions

Likes
10
Downloads
41
Comments
2

13 Embeds 1,736

http://www.belarusrubyonrails.org 1235
http://belarusrubyonrails.org 364
http://brug.by 43
http://lanyrd.com 22
http://abtasty.com 22
http://www.virtualaitec.edu.ec 16
http://paul-camacho.blogspot.com 14
http://localhost 7
http://50.57.221.109 5
http://www.designventures.co.kr 3
http://feeds.feedburner.com 2
http://osun.glyanec.net 2
http://www.itips.kr 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Я хочу расказать вам историю внедрение и смены нескольких NoSql хранилищ а так же об опыте реально их использвоания на продакшен серверах.
  • Перед нами встала задача порадовать наших клиентов красивыми отчетами о продажах.У каждого клиента есть магазины в системе, по магазина есть платежи. И все они в разной валюте. На тестовой базе все здорово – Графики красивые, отрисовка быстрая.В боевых услових печалька, чем крупней клиент тем печальнее выглядел его вход в систему.
  • Проблему надо было решать, и решать быстро поэтому первый метод был естественно – эволюционный, мы попытались улутшить скорость отрисовки средствами mysqlи Rails.
  • Скорость обработки выросла в 2 раза, но данный метод все равно был ограничен, ибо если клиент будет работать еще эффективней и заведет большее колчество магазинов ты мы получаем арифметическую прогресссию. Поэтому мы решили координальнос менить подход.
  • Обращение к чужому опыту показало, что большая часть времени при выборке из mysql базы данных по первичному ключу уходит на сам парсинг SQL запроса. Поэтмоу для подобных здач иделаьно подходят NoSQLрешения.
  • В результате анализа в качестве инструмента был выбран Redis.В жизненных условиях редас был разогнан до 20 000 оперция чтения записи в секунду. Никаких особоых нагрузок на камень и память не оказывал.Подкупил удобный руби клиент, реализованные методы работы с разными типами данных, очень удобно хранить массивы.Массовая выборка/удаление ключей по маске.
  • Что же произошло, 2 редис сервера работали в режиме мастер слэв. Мастер сервер должен был переехать на более производительную
  • Был развернут 2ой дата центр, полностью изолированный от первого. MySqlрепликация мастер мастер по выделенному VPN каналу. Репликация редиса нам не подходила и мы были вынуждены искать новое решение.

Опыт использования NoSql хранилищ (Андрей Новиков) Опыт использования NoSql хранилищ (Андрей Новиков) Presentation Transcript

  • Боевой опытиспользованияNoSqlхранилищ Новиков Андрей. Failsafe Payments
  • История одной статистики N графиков * N даннымПолучение данных ~ 30 секунд
  • Выбор методов • Эволюция • Революция
  • Эволюция • Создание индексов • Профилирование и оптимизация запросов • Подготовка части данных • Рефакторинг кодаПолучение данных ~ 20 секунд
  • Революция • CouchBase • Redis • Handler Socket
  • Redis• Данные в оперативной памяти• Хранение данных на диске• Типы данных: строки, числа, списки, хэши• Выборка множества ключей• Атомарность операций• Динамическое потребение памяти
  • Redis • Master / Slave репликация приведшая к потере хранилища
  • Расширение архитектуры
  • Couchbase • Master/Master репликация • Удобный веб интерфейс • Красивые графики нагрузки • Ограничение доступа
  • Couchbase • Объединение узлов через VPN приводит к потере данных • Для работы в режиме кластера каждый клиент должен видеть все узлы
  • Handler Socket Plugin • Все плюсы MySQL (репликации, работа с данными через ActiveRecord) • Отсуствие парсинга SQL запросов • Скорость работы
  • Handler Socket Plugin • Невозможность сборки под некоторые версии MySQL • Несовместимость пакетов в репозиториях Ubuntu • Проблемы при компиляции
  • Выводы• Redis – отлично подходит для проектов с простой сетевой архитектурой.• Couchbase – Хорошо подходит для создания кластера данных, но ограничен в плане работы с ключами.• Handler Socket – отлично подходит для существующего MySQLрешения
  • Спасибо за внимание Вопросы приветствуются