
Vadim
07.03.2017
10:13:36

Женя
07.03.2017
10:14:04

Vadim
07.03.2017
10:14:09

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

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
понятное дело, что головой всегда думать надо

Vadim
07.03.2017
10:31:04

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

Vadim
07.03.2017
10:31:55

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

Vadim
07.03.2017
10:37:14

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

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

Google

Vadim
07.03.2017
10:40:15

Женя
07.03.2017
10:40:15

Илья
07.03.2017
10:40:29

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
на нескольких воркерах будет больше оверхеда
из-за того что ты будешь генерить записи
а у эластика уже будет более свежая версия

Дмитрий
07.03.2017
10:48:17

Nikita
07.03.2017
10:48:19
не вижу особого выигрыша от него тут
нет, написание программ с кнопочками начинается с Form1

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