
Konstantin
09.12.2016
16:55:10
после инсерта получаем id, храним его в сессии и при работе с одним звонком получаем и дописываем инфу по этому id
потом выгружается статистика по этим данным

Dmitri
09.12.2016
16:56:12
а потом этим API рулишь, чо куда записать

Google

Konstantin
09.12.2016
16:56:35
что за апи?
какая разница, через апи дёргать базу или напрямую?

Dmitri
09.12.2016
16:57:12
А вы, Владимир, мне про DevOps-аутсорс
Напрямую небезопасно. Напрямую - не подменишь базу "на лету"

Konstantin
09.12.2016
16:59:03
а как подменишь базу... в каждой базе свои инкременты, связи...

Evgeniy
09.12.2016
16:59:52
Сделай owner_id какой-нить

Dmitry
09.12.2016
16:59:53

Vladimir
09.12.2016
16:59:58

Evgeniy
09.12.2016
17:00:03
И храни там идентификатор компании

Dmitry
09.12.2016
17:00:13
Не благодари?

Konstantin
09.12.2016
17:00:59
ну гуиды как вариант, да

Dmitri
09.12.2016
17:01:50

Google

Konstantin
09.12.2016
17:01:53
а если связанные таблицы? по внешнему ключу

Vladimir
09.12.2016
17:02:20

Dmitri
09.12.2016
17:02:35
пока ты не положишь id в таблицу, никаких внешних ключей не будет
что ты в базу запишешь, то ключом и будет

Konstantin
09.12.2016
17:03:21
ну вот я положил в москве запись, потом бд отвалилась и апи переключил на челябинск
навставлялось записей в дочернюю таблицу в челябинске

Dmitri
09.12.2016
17:04:06
транзакции?

Konstantin
09.12.2016
17:04:17
и одна сессия размазалась по разным базам

Dmitri
09.12.2016
17:04:25
ничего никуда не вставится при контроле внешнего ключа
если базы разные, сесси тоже будут разные
а транзакции - это транзакции

Vladimir
09.12.2016
17:05:08

Konstantin
09.12.2016
17:05:13
потом статистику не свести

Vladimir
09.12.2016
17:05:44
Потому что если eventually consistent это ок, то тебе нужна какая нибудь база под аналитику с поддержкой распределенных таблиц

Dmitri
09.12.2016
17:05:46
Смотри, по контролю консистентности: он бывает физическим, он бывает логическим

Vladimir
09.12.2016
17:06:03
И пофигу куда вставляешь, в конце концов запросы будут по всему идти

Dmitri
09.12.2016
17:06:09
все равно без бутылки и друга-спеца по теории и практике БД не разберешься

Alex
09.12.2016
17:06:41
Если у тебя есть жена, ей очень повезло

Konstantin
09.12.2016
17:06:55
мне нужно обеспечить отказоустойчивость, даже если бухой электрик рубанул одну ноду... и при этом целостность данных

Google

Dmitri
09.12.2016
17:07:00
если тебе критично совпадение rowid в таблицах - это одно, если тебе нужно, чтобы определенные запросы выдавали идентичные ответы на разных базах - это другое

Konstantin
09.12.2016
17:09:04
если на пару секунд у всех клиентов на одной площадке отвалятся приложения - это допустимо
это лучше чем когда падает локальная бд и все сосут

Dmitri
09.12.2016
17:10:21
если хочешь "прозрачного" реконнекта - проксируй запросы

Konstantin
09.12.2016
17:11:13

Dmitri
09.12.2016
17:11:40
я бы в API обернул, а там уже, на уровне API обращения к базе плясал как придумаю
С точки зрения сопровождения БД и софта - на стороне софта максимально абстрагируемся от БД, на стороне БД - реализуем один API
Получаем возможность "скакать" по БД и API до достижения просветления
Но там уже по реальному случаю смотреть надо
В подавляющем числе случаев прямой доступ в БД приложению не нужен
И чем меньше приложение знает про БД, тем лучше

Konstantin
09.12.2016
17:16:38

Andrey
09.12.2016
17:17:11
@CheshireKot нужна трехзвенная архитектура, такое можно построить на tarantool
я не знаю подходит ли nosql под твою задачу, но то что ты хочешь можно реализовать

Дмитрий
09.12.2016
17:18:16
Но это ту мач

Google

Vladimir
09.12.2016
17:19:24

Dmitri
09.12.2016
17:19:35
а как же ORM? удобно же :)
Ну, собственно, я про ORM, в частном случае и говорю. ORM - это тупо уровень абстракции, он позволяет "насрать" на то, что используется в роли БД.

Vladimir
09.12.2016
17:20:03
Облако это миф дающий плюс 100% к цене

Dmitri
09.12.2016
17:20:25

Konstantin
09.12.2016
17:20:41
Облако это просто организация доступа к данным. Как веб сервис. Как он там устроен тебе неважно главное что ты получаешь от него ответ. Тут тоже самое.
А так это как правило набор виртуалок
С аппаратной синхронизацией

Vladimir
09.12.2016
17:20:54

Dmitri
09.12.2016
17:21:00

Vladimir
09.12.2016
17:21:00
И сверху балансер

Konstantin
09.12.2016
17:21:12

Vladimir
09.12.2016
17:21:57

Dmitri
09.12.2016
17:22:00

Konstantin
09.12.2016
17:22:18

Dmitri
09.12.2016
17:22:34
Докер => попытка сбежать от синхронизации

Roman
09.12.2016
17:23:49

Dmitri
09.12.2016
17:24:14
Настолько больших баз, чтобы возникали проблемы репликации, у меня в руках не было

Roman
09.12.2016
17:27:55

Google

Dmitri
09.12.2016
17:28:38
Облако - это тупо другой уровень абстракции.
Не больше, не меньше
От тебя просто скрыты детали железа.
И выставлен другой API.

Roman
09.12.2016
17:29:35
Да бля. Облако - это базворд

Dmitri
09.12.2016
17:29:45
Тупо другие правила игры, в которых в некоторых широкоиспользуемых случаях может быть комфортнее
Согласен, слово придумано маркетолухами

Konstantin
09.12.2016
17:30:51
ну понятно, значит просто репликации в условно реальном времени

Dmitri
09.12.2016
17:31:31
Репликация БД, хоть убейся, в облаке и на реальном железе неразличимы
К слову, хитрый инструментарий по репликам прилагался, ЕМНИП, к Tarantool - тут упоминали.
осторожно - технология mail.ru

Roman
09.12.2016
17:32:32

Konstantin
09.12.2016
17:32:40
это я понимаю)
поэтому условно
но тогда и все площадки должны писать в один мастер-сервер?

Roman
09.12.2016
17:33:43
Да, именно
Но я все-таки за апи

Konstantin
09.12.2016
17:34:07
так а если он упал? или канал упал))

Roman
09.12.2016
17:34:18
Потому что когда приложенька знает про бд - это плохо

Konstantin
09.12.2016
17:34:33
где будет крутиться это апи? на каждой площадке своя копия?

Dmitri
09.12.2016
17:34:41

Roman
09.12.2016
17:34:41
Канал - это про резерв сеточки