@CSharpChatЭта группа больше не существует

Страница 491 из 1888
Vadim
07.03.2017
10:13:36
кучу проблем себе снимаешь тем самым
В любом случае делаешь синхронизацию в фоне. Но как это решает озвученные мной проблемы? )))

Женя
07.03.2017
10:14:04
Vadim
07.03.2017
10:14:09
В любом случае делаешь синхронизацию в фоне. Но как это решает озвученные мной проблемы? )))
По-хорошему через шину/message broker, но это не решает всех проблем )))

Microsoft news
07.03.2017
10:14:22
Приглашаем вас принять участие в онлайн-конференции «Бизнес.IoT: открывая Интернет вещей»! https://blogs.msdn.microsoft.com/rudevnews/2017/03/07/join-to-online-conference-business-iot-opening-the-internet-of-things/ Приглашаем вас принять участие в онлайн-конференции «Бизнес.IoT: открывая Интернет вещей». 30 марта 2017 года, 10:00 (МСК). Концепция Интернета вещей неразрывно связывает технологии и бизнес, помогая компаниям быстрее выходить на рынок, привлекать заказчиков уникальными сервисами, повышать эффективность бизнес-процессов. Вас ждут два параллельных трека с лучшими практиками, демонстрациями, выводами и рекомендациями от экспертов в области Интернета вещей,...

Google
Nikita
07.03.2017
10:14:55
я у себя через секвенсы и триггеры делаю глобальный для базы последовательный номер версии каждой строки

что делает тривиальным получение потока всех измененившихся/добавленных записей

Vadim
07.03.2017
10:16:00
когда данные проецируются 1 к 1 - это не сложно

опять же решение триггерить по базе не лучшее

Nikita
07.03.2017
10:16:47
забирай пачками по 1К записей и группируй номера записей, которые надо обновить

если триггерить не по базе, то получишь лапшу

и высокий риск где-то забыть уведомить об изменениях

Vadim
07.03.2017
10:17:31
про CQRS, ES слышал?

Nikita
07.03.2017
10:17:49
слышал

теперь построй на них всю архитектуру так, чтобы с ней мог работать не только ты один

а то наслушаются про акторы и журналы событий

Vadim
07.03.2017
10:18:58
порог вхождения никто не отменял

Nikita
07.03.2017
10:19:21
оно на самом деле оверкилл для большинства задач

Google
Vadim
07.03.2017
10:19:55
если ты задумываешься о презентационной базе, то скорей всего у тебя нагрузка, и приходиться масштабировать чтение/запись

Nikita
07.03.2017
10:20:38
>то скорей всего у тебя нагрузка то скорей всего у тебя JOIN на 15 таблиц и нужен полнотекстовый поиск

и всё это ложится даже без нагрузки

Vadim
07.03.2017
10:21:25
денормализовать и в той же базе можно

про full text согласен

Nikita
07.03.2017
10:21:57
можно и на той же, но смысл

Vadim
07.03.2017
10:22:27
забирай пачками по 1К записей и группируй номера записей, которые надо обновить
теряешь consistency при связях один ко многим/много ко многим

Nikita
07.03.2017
10:22:38
не потеряешь

Vadim
07.03.2017
10:22:48
)))

Nikita
07.03.2017
10:22:54
у тебя обновления к изменившимся в следующей пачке придут

по сути в процессе синхронизации идёт генерация слепков состояния

этакий самообновляющийся кэш

почему
при всей внешней простоте с нэнси будет больше проблем чем пользы, возьми сразу asp.net core и не мучайся

Ilya
07.03.2017
10:25:40
>asp.net core > не мучайся

Vadim
07.03.2017
10:25:44
ок, пример: две сущности - продавец, товар продавца у одного продавца куча товаров каждый товар меняется отдельно, меняется информация о продавце

попробуй не получить рассинхрон не используя parent/child

причем есть вероятность обломиться при optimistic lock

Nikita
07.03.2017
10:26:54
ну вот при получении пачки изменений о продавцах формируешь перечень товаров для перегенерации

а тут и не нужны локи

в этом вся прелесть

Google
Nikita
07.03.2017
10:27:24
даже если закинешь в эластик протухшие данные

за счёт глобальной версии строки

у тебя информация об изменениях всё равно потом обработается

т. е. ты по сути идёшь по истории, формируя список номерков того, что надо перегенерить

да, на сценарии "товары привязаны к продавцу и городу, поменялись названия продавца и города" придётся два раза перегенерить товары

что даст оверхед

но это жертва, на которую я намерен пойти

ну и эластик будет всё время несколько отставать от основной базы

Vadim
07.03.2017
10:30:35
я всё это к тому, что нет универсального решения

и у elastic'а с сортировкой плохо

Nikita
07.03.2017
10:31:02
понятное дело, что головой всегда думать надо

Nikita
07.03.2017
10:31:47
ну формально можно сидеть и тупить на транзакции в основную БД, пока bulk-запрос к эластику не завершится

и получать всегда свежие данные

Nikita
07.03.2017
10:32:01
но тогда будет проблемы см. выше

при изменении товаров у тебя уже есть id

по которым ты точно так же последовательно идёшь

Vadim
07.03.2017
10:32:39
ок, при изменении товара обновляем одну запись?

Nikita
07.03.2017
10:33:34
ну да

Google
Nikita
07.03.2017
10:33:42
тут смотри в чём плюшка решения

Vadim
07.03.2017
10:33:45
при изменении продавца все?

Nikita
07.03.2017
10:34:07
у каждой записи есть уникальный номер ВЕРСИИ ВСЕЙ БД на момент её создания/изменения

а эластик умеет работать с внешним версионированием

Azat
07.03.2017
10:34:30
Всем привет! Сюда новичкам с вопросами?

Vadim
07.03.2017
10:34:36
умеет

но это не отменяет вероятности обломиться на записи

Nikita
07.03.2017
10:35:11
записи куда

Admin
ERROR: S client not available

Vadim
07.03.2017
10:35:19
в эластик

Nikita
07.03.2017
10:35:26
на чём

Vadim
07.03.2017
10:36:02
два события - обновление информации о конкретном товаре, информация об обновлении продавца - обновляем все товары

и тут как повезёт

Nikita
07.03.2017
10:36:19
повезёт что

у тебя более позднее событие

будет обработано позже или в рамках той же операции, что и более раннее

Дмитрий
07.03.2017
10:37:00
Nikita
07.03.2017
10:37:30
с того что мы бежим по записям по порядку номера версии БД

Azat
07.03.2017
10:39:41
на вьюжал студио на си шарпе же можно писать не только консольные приложения но и приложения с кнопочками и окошечками? Дело в том что не представляю с чего начинается ищучение такого.

Google
Vadim
07.03.2017
10:40:15
Nikita
07.03.2017
10:42:02
один воркер, последовательно?
Один воркер, внутри себя параллелит формирование записей в рамках операции

хватит думать в терминах скриптовых языков без многопоточности

Vadim
07.03.2017
10:43:01
с чего такие выводы?

Nikita
07.03.2017
10:43:24
"один воркер" было сказано как что-то плохое

Vadim
07.03.2017
10:43:34
это и так плохо

Nikita
07.03.2017
10:43:54
если же тебе не хватает выделенного сервера с 8 ядрами на формирование JSON-записей для эластика

Vadim
07.03.2017
10:44:14
при частой записи, ты в него упрёшься, и отставание будет увеличиваться

Nikita
07.03.2017
10:44:18
то почему ты вообще сидишь в этом чате?

Vadim
07.03.2017
10:44:52
как это связано?)

Nikita
07.03.2017
10:47:47
на нескольких воркерах будет больше оверхеда

из-за того что ты будешь генерить записи

а у эластика уже будет более свежая версия

Nikita
07.03.2017
10:48:19
не вижу особого выигрыша от него тут

нет, написание программ с кнопочками начинается с Form1

Anatoly
07.03.2017
10:50:20
WPF + XAML
Кто-нибудь пробовал WPF software rendering на больших приложениях? Есть pet-project, который работает в условиях что нагружать видеокарту нельзя, а форму показывать надо. После WPF в WindowsForms слегка приходится страдать с некоторыми вещами.

Страница 491 из 1888

Эта группа больше не существует Эта группа больше не существует