Date post: | 12-Aug-2015 |
Category: |
Software |
Upload: | alina-dolgikh |
View: | 2,468 times |
Download: | 1 times |
Java Day Minsk 2015
ORM на noSql через JPA
Павел ВейникHead of Dev @ geomotiv
Java Day Minsk 2015
1. SQL vs noSql
2. JPA + Kundera + Pelops + Thrift + Cassandra
3. Проект и команда
Java Day Minsk 2015
SQL vs noSql
SQL-2011 и др
ясная концепция
матаппарат
зрелое решение
не теряет данные
масштабируется
целостность данных
ACID
нет стандарта
расплывчатая
нет
нет
может
масштабируется
нет FK и PK
eventual constistency
Java Day Minsk 2015
SQL vs noSql: разработка
commercial
легко менять код под новые выборки
быстрое прототипирование
ORM стандарт JPA
Hibernate
триггеры, процедуры
громоздкий код
не нужно думать о производительности
open source
трудно менять код под новые выборки
быстрое прототипирование?
нет стандарта
Thrift
все в клиентском коде
сложный код
вы думаете о производительности
Java Day Minsk 2015
noSql
● Используется в целях маркетингаNot Only SQL
● Используется жертвами маркетинга● Используется как вспомогательное решение
рядом с РСУБД● Используется как самостоятельное решение
в нестандартных проектах
Java Day Minsk 2015
Бухучет
Java Day Minsk 2015
Java Day Minsk 2015
NoSql?
Каждому приложению не нужна вся мощь Oracle, DB2 или даже Mysql, часто даже полный ACID не нужен.
NoSql — усеченный вариант, разработчику предоставляются низкоуровневые средства работы с БД и ответственность за их использование.
Java Day Minsk 2015
Задача
Перевести большой проект с MySql на Cassandra
Разработать новый уровень обращения к бд
JPA, Hibernate, 300+ таблиц, много данных
Java Day Minsk 2015
Решение
● JPA● Kundera● scale7-pelops● Thrift● Cassandra
Java Day Minsk 2015
Java Day Minsk 2015
Java Day Minsk 2015
Боль
Снижение производительности работы с бд примерно в 2 раза.
Увеличение времени ожидания ответа.
Вернули MySql назад и придумали разумный план на полгода по переходу на Cassandra. В результате добавили пару кэшей.
Java Day Minsk 2015
Проект и команда
Java Day Minsk 2015
Умник– Неизвестный фактор
CTO – Интересы в компани несколькими уровнями
выше чем технологии
Команда– Не хочет ссориться с CTO
– Не хочет делать дурную работу и отвечать за нее
Фрилансер– Хочет сделать задание и получить деньги
Java Day Minsk 2015
Почему?
● Почему CTO выдал распоряжение по переходу на noSql?
● Почему команда не донесла до СТО масштабы перехода?
● Почему оказалось проще потратить время и ресурсы, чем подумать сразу?
● Почему фрилансер взялся за странную работу?
Java Day Minsk 2015
Технологии?
Процессы?
Роли?
Исполнители?
Разработчики
Отношения?
Управление?
HR? Внутренний HR?
Успех проекта
Java Day Minsk 2015
?Павел Вейник
Head of Dev @ geomotiv