@MongoDBRussian

Страница 189 из 342
BuHuIIIko
15.02.2018
13:44:12
А инициализировать и спрашивать name муторно и займет лишнее время

Tenni
15.02.2018
13:48:20
https://university.mongodb.com

BuHuIIIko
15.02.2018
13:54:31
Сяп

Slava
15.02.2018
16:14:08
любопытно https://www.mongodb.com/transactions https://techcrunch.com/2018/02/15/mongodb-gets-support-for-multi-document-acid-transactions/

Google
yopp
15.02.2018
16:19:43
Воу. Ну теперь понятно зачем они сессии запили.

In MongoDB 4.0, which will be released this summer*, transactions will work across a single replica set, and MongoDB 4.2* will support transactions across a sharded deployment.

Алексей
15.02.2018
16:22:07
4-ко ?

3,6 -> 4.0 ?

yopp
15.02.2018
16:23:39
А чо нет. Ради транзакций могли сразу и 10.0 выпустить

Алексей
15.02.2018
16:24:18
ну вообще да

yopp
15.02.2018
16:25:37
Вощемто в монге больше не на что жаловаться!

Бедные хейтеры :(

Yaroslav
15.02.2018
16:27:02
не только хейтеры. РСУБД наверное ещё кусок рынка потеряют.

Slava
15.02.2018
16:29:01
вот тут любопытный роадмап на 4.2, транзакции на шарде https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb

Dmitry
15.02.2018
16:52:09
им кто-нибудь уже говорил, что у транзакций еще и уровни изоляции бывают

или они вот так сразу - serializable

да еще в кластере

Google
Dmitry
15.02.2018
16:53:22
да еще и с шардами

yopp
15.02.2018
16:56:47
Вы сейчас по анонсу делаете выводы

Более того, вы слюнями тут брызжите, даже не зная кто за всем этим стоит. Монга купив WT не просто купила двигло, они ещё получили Кейта Бостика и Майкла Кахила, которые пилили berkleydb. Чуваки этим почти 30 лет занимаются.

Dr. Cahill’s PhD from the University of Sydney is in the area of transaction processing and concurrency control. His work on a new algorithm for implementing serializable isolation received an ACM SIGMOD Best Paper award and was added to PostgreSQL 9.1.

Yura
15.02.2018
19:20:35
Но пока в монге обещают только snapshot isolation, что несколько меньше, чем serializable.

Но сильно больше того, что есть сейчас. И это радует.

yopp
15.02.2018
19:25:52
Порадовались бы, а не ныли. Это всё результат просто титанической работы лучших людей в индустрии. Вы хотите чтоб всё и сразу было, да ещё и бесплатно.

Токсичность совкового мышления невероятно демотивирует.

Artem
15.02.2018
19:57:42
Ну зря ты так. Рывок в монге действительно впечатляет, и по сути, если заявленные технологии допилят, то Монга отьест хороший кусок на рынке БД.

Алексей
15.02.2018
19:58:06
нет не отъест

все будут вспоминать mmapv1

и говорить что это снапчат

ибо на этом рынке помнят

и еще говорят херню.

и я вот 1,3 смотрел там было ...

Slava
15.02.2018
20:19:33
хлебом не корми дай людям припомнить) я тут узнал что в фнс расчет пеней на монге, и вот все норовят пошутить в стиле "ну теперь все стало на свои места")

Yura
15.02.2018
20:23:32
Так а я радуюсь.

Max
16.02.2018
12:58:36
товарищи, а как быстро балансер должен начать двигать чанки между шардами? заенаблили, все сделали, оно коллекцию на чанки побило, выглядит все ок mongos> sh.getBalancerState() true Но в то же время в sh.status() Failed balancer rounds in last 5 attempts: 0 Migration Results for the last 24 hours: No recent migrations

Google
Max
16.02.2018
15:25:38
да там изначальный синк.. и чтото ничего не двигает руками двинули пару шардов - переехали, а автоматичеки не хочет спасибо, изучаю доку.

yopp
16.02.2018
15:26:30
А сколько чанков получилось?

Проверьте что не установлено окно

И балансировка на конкретной коллекции не выключена

(sh.disableBalancing / sh.enableBalancing)

Evgeniy
16.02.2018
15:30:53
Подскажите, как в монго разбить результаты поиска(обьекты) в массивы по признаку значения одного ключа. Судя по докам есть куча способов но пока ни один не подошел. Например у меня есть массив пользователей с ролями user, admin и модератор, чтобы в итоге было 3 массива и в каждом пользователи своей роли.

yopp
16.02.2018
15:32:44
Группировка?

Max
16.02.2018
15:45:31
22k+ чанков окна не ставили, балансер включен сейчас руками попробовал moveChunk - переехало, но както хочется автоматом заставить блин, гдето знаний не хватает

чанки по лейбу двигаются

Evgeniy
16.02.2018
15:51:44
Группировка?
спасибо, получилось ) там просто куча всяких методов и способов не знал что выбрать, а монго дальше методов курсора обычно не приходилось использовать ))

Max
16.02.2018
16:12:16
2 шарда тут подсказывают, что, возможно, чанки сформировались неправильно - то есть в чанках перемешанные данные, из разных лейб поэтому ручная миграция чанка работает, но... надо какуюто перебалансировку запустить, наверное втычим.

yopp
16.02.2018
16:12:40
Что такое «лейб»?

Вы про зоны?

Max
16.02.2018
16:14:08
addShardTag

да, верно

yopp
16.02.2018
16:15:34
Не слушайте людей которые вам говорят про «чанки неверно сформировались». Чанк это виртуальная сущность, которая описывает диапазон шард ключа.

Google
yopp
16.02.2018
16:15:50
А покажите правила зоны?

(use config; db.shards.find())

Max
16.02.2018
16:18:34
{ "_id" : "DSP-SG-shard01", "host" : "DSP-SG-shard01/mongo-SG-shard-01:27000,mongo-SG-shard-02:27000", "state" : 1, "tags" : [ "ASIA" ] } { "_id" : "DSPRSv01", "host" : "DSPRSv01/mongo-rs-02:27000,mongo-rs-03:27000", "state" : 1, "tags" : [ "USA" ] }

yopp
16.02.2018
16:23:11
А вы range добавляли?

https://docs.mongodb.com/manual/reference/method/sh.updateZoneKeyRange/#sh.updateZoneKeyRange

Max
16.02.2018
16:25:03
да, там этих range сейчас как у дурака фантиков.

yopp
16.02.2018
16:25:05
В конфиге db.tags.find()

Скорее всего проблема где-то в них

Max
16.02.2018
16:26:38
mongos> db.tags.find().count() 247

{ "_id" : { "ns" : "_DB_._XXX_", "min" : { "country" : "ad", "ip" : "000.000.000.000" } }, "ns" : "dev_0.stop_clicks", "min" : { "country" : "ad", "ip" : "000.000.000.000" }, "max" : { "country" : "ad", "ip" : "999.999.999.999" }, "tag" : "USA" }

это вот один из.

yopp
16.02.2018
16:29:37
А сейчас данные на каком шарде застряли?

Max
16.02.2018
16:30:01
они все на оригинальном, который USA если говорить тегами.

yopp
16.02.2018
16:31:39
А есть ренжи которые на тег ASIA назначены?

Max
16.02.2018
16:31:44
в азию сейчас указано двигаться некоторым странам, range в ip — 00 — 99, то есть полный список я вручную двинул один из шардов, который явно был виден в sh.status(true), и заглянул руками в шард - там есть страны, которые _не_ в списке. то есть получается, что внутри шарда есть чтото, что шарду не принадлежит. отсюда и было предположение, что неправильно сформировались.

да, есть

sh.status() tag: ASIA { "country" : "tw", "ip" : "000.000.000.000" } —» { "country" : "tw", "ip" : "999.999.999.999" }

к примеру

yopp
16.02.2018
16:34:54
Попробуйте у ip вместо строки указать MinKey и MaxKey

Если вы хотите просто по префиксу балансировать

Google
Max
16.02.2018
16:36:45
ip делали с прицелом на будущее - если внутри одного региона будет много данных и надо будет их еще на 1 шард добавить. сейчас по сути - не используются чанки получились такие (кусок, для примера) { "country" : "tr", "ip" : "95.7.42.144" } -->> { "country" : "tw", "ip" : "1.160.105.3" } on : DSP-SG-shard01 Timestamp(2, 0) { "country" : "tw", "ip" : "1.160.105.3" } -->> { "country" : "tw", "ip" : "1.161.252.238" } on : DSPRSv01 Timestamp(1, 15067) { "country" : "tw", "ip" : "1.161.252.238" } -->> { "country" : "tw", "ip" : "1.163.194.238" } on : DSPRSv01 Timestamp(1, 15068) { "country" : "tw", "ip" : "1.163.194.238" } -->> { "country" : "tw", "ip" : "1.165.126.220" } on : DSPRSv01 Timestamp(1, 15069) { "country" : "tw", "ip" : "1.165.126.220" } -->> { "country" : "tw", "ip" : "1.168.37.33" } on : DSPRSv01 Timestamp(1, 15070) { "country" : "tw", "ip" : "1.168.37.33" } -->> { "country" : "tw", "ip" : "1.170.181.216" } on : DSPRSv01 Timestamp(1, 15071)

это в sh.status(true) видно непонятно, почему балансер их не двигает. пока решил руками, потому что отдельные тесты - типа записи в Азиатском дц в монгос - сохраняет данные где надо.

yopp
16.02.2018
16:39:22
Ааааа.

Так, стало видно откуда возникла история «неверно порезались» :)

Зоны никак не влияют на то, как данные разбиваются на чанки

Чанк разбивается при превышении сконфигурированного размера

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

Max
16.02.2018
16:44:11
какие слова для гугления? Подскажите,пожалуйста :)

yopp
16.02.2018
16:44:40
https://docs.mongodb.com/manual/reference/method/sh.splitAt/#sh.splitAt

Max
16.02.2018
16:45:01
и оно перетрясёт существующие чанки? Прекрасно, спасибо!

а при миграции чанка в азию - там не происходит момент, что оно ненужную страну вернет обратно?

там же,в моем понимании, обычные инсерты, оплоги, вот это вот всё то есть ненужное должно уйти

хотя там же не монгос, там репликасет затупил

yopp
16.02.2018
16:48:14
а при миграции чанка в азию - там не происходит момент, что оно ненужную страну вернет обратно?
Балансировщик не знает ничего про страны. Он очень тупой и перетаскивает чанки, если видит что они нарушают правила зоны. Условно, вы порежете чанк с Турцией и Тайванью. Если для Турции есть правило что её надо в USA, то он нарушает правила и поедет обратно в штаты.

Если на Турцию ренджа нет, она будет кататься балансировщиком по базовым правилам (держать равное количество чанков)

Я бы начал с простого: убрал бы все ренджи

Кроме одного: что всё в штатах

И дальше бы резал чанк по стране и добавлял один рендж

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