
Alexander
04.08.2018
18:49:55
да, там как раз все вокруг базы крутится

Den
04.08.2018
18:53:54

Сергей
04.08.2018
19:13:11
работать, и с новой

Google

Никита
04.08.2018
19:15:32

Alex
04.08.2018
19:15:38
про blue-green знаю, тут вся проблема с центральной бд... а так за ссылку спасибо, почитаю :-)
Есть вариант поставить мастер-слейв и в sql прокси завернуть все запросы к бд. Потом обновить схему бд если требуется на слейве. Новую версию приложения развернуть параллельно и на sql прокси все запросы от нового приложения маршрутизировать в слейв. Все запросы на изменение данных в бд записывать в прокси. Дальше часть трафика пустить только на новое приложение, если всё ок, постепенно увеличивать трафик нового приложения. Все юзеры должны привязаться к версии приложения по сессии или какому нибудь уникальному значению.

Сергей
04.08.2018
19:15:40
потом миграцию данных из старой в новую в параллели с работой грин сервиса, причем т.к.данных много это растянется надолго

Alex
04.08.2018
19:18:10
Ну и чтобы консистентность данных была, в слейв все запросы на изменение должны тоже идти. Про это надо не забыть.
Так можно и откатить без потери данных и обновить без простоя.
Готового инструмента для такого я не знаю, наверно и нет из-за того что у всех свой софт специфичен

Сергей
04.08.2018
19:21:46
ок

Alex
04.08.2018
19:24:13
Для отката будет необходимо все залогированные запросы на изменение к слейву проверить, что они валидны для старой схемы. Если не валидны, они будут всё равно однотипны и можно будет через прокси сконвертить или скриптом. Потом накатить на мастер бд
Вот это интересная задача, не то что нджинкс на убунту поставить

Alexander
04.08.2018
19:30:49

Combot
04.08.2018
19:31:13
Alexander (1) увеличил репутацию Alex Gluck (3)

Google

Сергей
04.08.2018
19:31:28
если использовать лог sql запросов, то получается eventually consistency. что не айс

Alexander
04.08.2018
19:31:49
я не понял про миграции

Alex
04.08.2018
19:31:53

Сергей
04.08.2018
19:32:26

Alexander
04.08.2018
19:32:27
все так делают (с)

Alex
04.08.2018
19:33:17

Alexander
04.08.2018
19:33:35
жопа. потенциально развал всего

Alex
04.08.2018
19:33:41

Alexander
04.08.2018
19:33:53
нет
копируй пока продуктив работает
никто не мешает

Alex
04.08.2018
19:34:16
нет
Тогда это полемика. Я считаю по другому

Alexey
04.08.2018
19:34:16
привет всем, может кто знает, есть чат по астериcку?

Alexander
04.08.2018
19:34:29

Alex
04.08.2018
19:36:56
жопа. потенциально развал всего
Ну надо думать, пытаться. Мой вариант теоретически работоспособен. Я даже когда то проверял теорию и подтвердил её на микровыборке. Но в больших масштабах могут быть описанные тобой проблемы.

Alexander
04.08.2018
19:37:14
я считаю что тут должен быть даунтайм и все
и бить по голове архитеторов, которые решили поля менять в больших таблицах

Alex
04.08.2018
19:38:10

Google

Alexander
04.08.2018
19:38:50
просто чувака загнали в яму
а можно было изначально предусмотреть

Alex
04.08.2018
19:39:33

Alexander
04.08.2018
19:39:55
конечно, но не выкручивают руки с минимальным даунтаймом
а что там за БД?

Alex
04.08.2018
19:40:13
Толерантность надо проявлять к пидорасам

Alexander
04.08.2018
19:40:16
оракл какой или сиквел?
к геям же

Alex
04.08.2018
19:40:33

Alexander
04.08.2018
19:40:48
это ж мегамонолит, че они парятся
ноччю свопнули базы и все

Alex
04.08.2018
19:41:22
к геям же
Геи, это люди иной ориентации. А архитекторы меняющие поля на бд, пидорасы

Сергей
04.08.2018
19:41:24
сейчас оракл

Alexander
04.08.2018
19:41:24
вайти-директор про скрамы девопсы и эджайлы начитался?
а если не секрет оракл в RAC работает?

Сергей
04.08.2018
19:42:38
есть желание уйти от монолита и миграций по несколько часов
насколько я знаю, нет не rac

Alexander
04.08.2018
19:43:31
а как вы сейчас мигрируете? и главное - почему мигрируете?
если что - у всех падает и ресторится ии фиксится от краша приложений

Google

Сергей
04.08.2018
19:44:09

Alex
04.08.2018
19:44:30

Alexander
04.08.2018
19:44:31
то есть набираете критическую массу изменений в схему и фигачите часами
если так то правильно делаете
точно начитались про микросервисы
но я не пойму если нет пересчета чего-то, почему многочасовые миграции

Alex
04.08.2018
19:47:42

Сергей
04.08.2018
19:48:04
:-)

Alexander
04.08.2018
19:48:19
есть табл1 надо поменять поле1, в табл1 всего 100 млн записей.
делаем табл2 с правильными полями. запускаем утилиту или просто запрос, который вольет содержимое табл1 в табл2. синхронизируем как только можно. тушим приложения. проверяем консистентность табл2 на 100% соответствие табл1. переименовываем табл1 в табл3 а табл2 в табл1. включаем приложения
где тут 3 часа не понимаю
сначала дольше, а потом минут до 5-15 дойдете
даутнайма

Сергей
04.08.2018
19:56:42
у нас порядок цифр несколько иной - десятки миллиардов записей, нагрузка порядка 10к транзакций в сек. скриптов миграций в одной версии - сотни.
поэтому и 3 часа
тут похоже проблема фундаментальнее. чтобы можно было использовать blue-green надо релизиться сильно чаще, чтобы сервис мог управляться с двумя схемами сразу.
иначе дельта м5жду схемами настолбко большая, что сервис просто разорвет от логики поддержки двух схем сразу

Alexander
04.08.2018
20:01:05
поэтому и 3 часа
а как сейчас процесс миграции идет? так как я выше описал или выключили приложение и давай молотить?
10к в сек и хрен с ним
все равно 3 часа - это много

Google

Alex
04.08.2018
20:01:37
Без простоя оракл вы не сможете без смены структуры софта на уход от централизованной бд

Alexander
04.08.2018
20:04:36
есть еще хак, но все зависит от приложения. кароче когда-то видел такую реализацию по решению проблемы: софт позволял писать необходимые данные сразу в несколько таблиц при опрееленных настройках. идея состояла в том что в определенный момент софт писал в старую и новую структуры. реализовывалось это на уровне приложения без прокси-серверов, что несколько усложняло логику и работу приложения, но "гарантировало" от случайностей с внешними прокси. когда видели что все идет по плану то просто ребутили сервер приложений с новыми настройками - переключали таким образом на другую структуру
но это разработчикам было сложновато делать и закладывалось на этапе проектирования (ритейл емнип)

Alex
04.08.2018
20:05:38

Сергей
04.08.2018
20:05:38
вооот, я как раз с этого и начал диалог :-)
объяснить толком не смог

Alexander
04.08.2018
20:05:49
;)
Это прям сложно и дорого звучит
чуваки были головастыми и не ленивыми. босс платил бабло и архитектурно грузил на нормальном уровне. основные проблемы они решали такими финтами. кароче команда была огонь

Alex
04.08.2018
20:07:14

Сергей
04.08.2018
20:07:24
но хочетс снять эту нагрузку с обчных девов
вот и ищу пример промышленной реализации такого

Alexander
04.08.2018
20:07:50
обычному деву насрать (простите мой французский) на простои при миграциях
выше с копированием написал по сути бест практис

Сергей
04.08.2018
20:08:45
вооот. может быть тогда головастые будут овнерами дао слоя например?

Alexander
04.08.2018
20:08:54
видел производную с переименованим не таблиц а просто колумна

Сергей
04.08.2018
20:10:49
где вся эта магия с zd миграциями будет скрыта

Alexander
04.08.2018
20:12:35
какая магия если вы структуры меняете на миллиардниках?

Сергей
04.08.2018
20:17:20
ну предположим, что начнется движение в микросервисы. бд распилят на несколько... все равно хотелось бы от обычных прикладников скрыть кухню zd миграций

Alexander
04.08.2018
20:17:47
простите, но как есть
в гонитве за модой угробите что есть