@MongoDBRussian

Страница 49 из 342
ptchol
02.12.2016
12:02:10
или я плохо читал то что выше ?

Sergey
02.12.2016
12:02:16
я 3.4 ещё не щупал

и это вроде про read concern

ptchol
02.12.2016
12:03:24
ну да.

Google
Sergey
02.12.2016
12:03:33
а блокировки могут быть нужны даже вообще на одной ноде без реплик

(хотя если мы читаем со слейвов и пишем в мастер - они нужны чаще)

ptchol
02.12.2016
12:05:16
тоесть ты про ту ситуацию когда у тебя одно обновление приехало позже другого но в реальнйо ижзни они случились раньше ?

Sergey
02.12.2016
12:06:44
вот я, кстати, не уверен, что монга может оплог воспроизводить не подряд

но вопрос быдл вообще о другом

мы 1. читаем данные 2. изменяем их 3. пишем в базу и последнее должно произойти только если кто-то параллельно не успел эти данные изменить

optimisting locking - самый очевидный вариант

yopp
02.12.2016
12:20:08
если тебе условно надо обновить элемент массива с id: 2 и там поставить value в новое значение, то в чём проблема?

атомарно это делается

Sergey
02.12.2016
12:21:04
надо обновить 4 элемента

yopp
02.12.2016
12:21:10
и 4 элемента можно обновить

Sergey
02.12.2016
12:21:15
как?

Google
yopp
02.12.2016
12:21:33
somedata.$.value

Sergey
02.12.2016
12:21:42
для каждого id разный value

yopp
02.12.2016
12:21:53
блин

ты можешь внятно задачу сформулировать?

yopp
02.12.2016
12:22:32
блин

прислали patch и надо обновить только поле value в массиве, не трогая остальные

все value?

или какие value?

Sergey
02.12.2016
12:22:52
апдейт, допустим [ {'id': 1, 'value':7}, {'id': 2, 'value':8}, {'id': 3, 'value':9}, {'id': 4, 'value':10}, ]

yopp
02.12.2016
12:23:54
гхм. и в чём проблема?

Sergey
02.12.2016
12:26:12
ну либо я пропускаю какой-то очевидный вариант, либо это сделать нельзя в одном update

да, порядок элементов в апдейте может не совпадать с тем, что в базе

yopp
02.12.2016
12:26:55
ах.

Sergey
02.12.2016
12:27:15
и вообще, пользователь может прислать какой-нибудь мусор вместо id, которого нет в исходном документе

yopp
02.12.2016
12:29:10
ну это в query разрешается

Sergey
02.12.2016
12:33:47
последнее - да но вот с $ я что-то не видел в доке варианта с обновлением нескольких полей: https://docs.mongodb.com/v3.2/reference/operator/update/positional/#up._S_

yopp
02.12.2016
12:34:01
да-да, яж сказал «ах»

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

Sergey
02.12.2016
12:35:36
изначально идея была класть это в embedded с id - ключ, но тогда по этому полю не работает, например, $unwind

Google
yopp
02.12.2016
12:40:02
эм

Sergey
02.12.2016
12:40:16
вопрос-то был про locking

yopp
02.12.2016
12:41:03
яж тебе ответил: когда ты хочешь блокировки в монге, сначала надо понять как ты докатился до такой жизни

Sergey
02.12.2016
12:48:30
на самом деле, это просто перестраховка, поэтому и optimistic, а не pessimistic )

yopp
02.12.2016
12:50:37
да какая разница, любая блокировка в субд которая не поддерживает блокировки, должна вызывать вопрос

я твою проблему понял, сходу пока ничего в голову не пришло, но мне кажется можно найти решение без блокировки

но я пока не уверен как

подумаю

Sergey
02.12.2016
12:51:28
там будет 1 rpd (request per day ?) на запись, но если вдруг будет идея как обойти - буду благодарен

yopp
02.12.2016
12:53:20
пфф. да, оптимитичная блокировка тебя спасёт

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

но ладно!

Sergey
02.12.2016
13:00:51
Поддокументы чтобы читать быстро и без $lookup.

На чтение нагрузка сильно выше, чем на запись

И там практически весь документ пачкой нужен

Вообще, конечно, в идеале должна быть реляционная база. Но руководство было против поднятия ещё одной базы для данного микросервиса, поэтому пришлось использовать монгу)

Roman
04.12.2016
23:41:00
Народ, пособите с ответами на вопросы: 1) What data storage concept do you suggest to use the software world-wide? 2) Is data historicizing storage possible? How is it designed?

Google
Roman
04.12.2016
23:49:00
а, ну я типа пишу заявку на тендер, и должен рассказать какой у меня офигенный солюшен. у меня монга с постгресом. а они ребята серьезные, задают вот такие загадочные вопросы

я-то понятно ничо этого не планировал. а у них почему-то все подводится к идее держать данные в разных датацентрах

так вот. можно ли на монге держать данные в разных датацентрах?

и что это за data historicizing storage ?

GNU/Docker
05.12.2016
04:26:37
У нас есть локальные реплики и реплика на два цода.

Roman
05.12.2016
12:39:38
доброжелательность-бесценна :)

У нас есть локальные реплики и реплика на два цода.
это все организовано исключительно монговскими средствами или вы еще каких-то инструментов добавляли?

GNU/Docker
05.12.2016
13:04:58
Ну. Сами реплики стандартными

Но у нас есть свой прокси над коннекшном

Чтобы по имени азетки ходить в нужный цод

Или в глобальную реплику.

yopp
05.12.2016
14:43:54
бляха

они всё ещё не доложили инит скриптов для монгосов :(

Serge
05.12.2016
15:44:18
yopp
05.12.2016
16:37:57
да даже init.d нет

Serge
05.12.2016
16:39:25
Были же

Не в сорцах

yopp
05.12.2016
16:40:22
ну вот чо им мешало положить в пакеты?

Google
Axrorxo'ja
06.12.2016
04:41:19
Добрий ден,вчера я на одно группу спрашивал про популате на монгодб и все атветили што если нужен релатион лучше исползоват постгре ,што популате так плоха он для производителност ?

GNU/Docker
06.12.2016
06:47:12
Еще как

Axrorxo'ja
06.12.2016
06:59:09
Еще как
сможете дат обиснения или какойта линк иммена по этому тему

Страница 49 из 342