@MongoDBRussian

Страница 154 из 342
yopp
03.12.2017
16:21:00
Селективность повысится

Но удаление само по себе дорого, так что там выше тоже мысль. Попробуйте на ssd или nvme переехать

Но я за то чтоб шардить

Алексей
03.12.2017
16:24:43
Шардить сложно

Google
yopp
03.12.2017
16:50:25
Это кажется так.

Потом будет ещё сложнее

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

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

Плюс если научиться жить на дешёвом железе можно ещё за копейки получать и HA и FT

Алексей
03.12.2017
16:55:57
Если есть возможность шардить хочется до монги

Сохранив простоту одного сервера

yopp
03.12.2017
16:56:57
До первого отказа

Никто просто ущерб не считает и не подходит к рискам с точки зрения стоимости минимизации этих самых рисков

Sergey
03.12.2017
17:00:32
Ясно. Покопаюсь с ttl полями.

yopp
03.12.2017
17:07:58
Сделай запрос по этому ролю руками и посмотри в explain

Можешь ещё https://github.com/db-ai/mongo_collection_exporter воткнуть

Вместе с node exporter

Google
yopp
03.12.2017
17:08:58
Посмотри что с ресурсами на сервере

Алексей
03.12.2017
17:09:08
yopp
03.12.2017
17:09:28
Перенёс из личной репы

По старому адресу автоматом редирект будет

Руслан
04.12.2017
09:13:29
Ребят привет, подскажите для чего нужна папка diagnostic.data ? она постепенно разрастается. До каких размеров она может разрастись? сейчас уже 100мб.

yopp
04.12.2017
09:26:20
Это внутренний профайлер для разработчиков монги, тулзы для него не опубликованы.

Не должен сильно расти, в районе 100мб и будет

Руслан
04.12.2017
09:27:44
ок спасибо

Artem
04.12.2017
18:41:00
Кайл Бэнкер, MongoDB в действии. https://play.google.com/store/books/details?id=jABUAwAAQBAJ

Юрий
05.12.2017
04:00:38
А есть в pdf?
В vk доках есть, я находил

Artem
05.12.2017
05:52:32
в pdf к сожалению нет, я с планшета читаю, там можно все локально скачать в гугл-книгах

в книге приводятся примеры на 2.6 версии, но есть оф документация так что никаких проблем с изменениями быть не должно

Леха
05.12.2017
06:30:50
Да, для конкретной версии всегда в доке можно глянуть нюанся. А так в книге много примеров.

yopp
05.12.2017
07:16:22
Не надо тут пиратские книжки распространять.

Viktor
05.12.2017
07:50:54
Кайл Бэнкер, MongoDB в действии. https://play.google.com/store/books/details?id=jABUAwAAQBAJ
Посмотрел содержание - можно не читать. Вообще по монге очень хорошая официальная документация, а знания можно бесплатными курсами закрепить

Svyatoslav
05.12.2017
13:22:26
Коллеги, добрый день. Как корректно добавить в sharded cluster with replica sets еще одну replica set? Как понимаю, надо создать саму реплику с арбитром, и на существующем mongos выполнить sh.addShard( "<replSetName>/mongodb-hostname:27017")

Верно?

yopp
05.12.2017
13:23:18
Вы хотите добавить ещё один шард?

Svyatoslav
05.12.2017
13:24:45
Google
yopp
05.12.2017
13:24:57
https://docs.mongodb.com/manual/tutorial/add-shards-to-shard-cluster/

Но в целом корректно: инициировать реплику, добавить реплику в шард

Svyatoslav
05.12.2017
13:26:23
https://docs.mongodb.com/manual/tutorial/add-shards-to-shard-cluster/
На какие проблемы стоит расчитывать? Кстати, как бэкапите шардированный кластер? У меня выходит неконсистентный бэкап слегка.

yopp
05.12.2017
13:27:28
Самый надежный с точки зрения консистентност вариант — лочить базу и делать снепшот

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

yopp
05.12.2017
15:35:54
и да, нужно выключить балансироващик и с CSRS тоже самое сделать

после остановки репликации базу можно анлочить

при небольшом replication lag операция должна занять несколько секунд

https://docs.mongodb.com/manual/tutorial/backup-sharded-cluster-with-filesystem-snapshots/

Не обращайте внимания на «If the journal and data files are on the same logical volume, you can use a single point-in-time snapshot to capture a consistent copy of the data files.» Тут имеется ввиду storage level consistency. Консистентность данных между двумя и более шардами это очевидно не гарантирует

Там есть рецепт с маркером в специальной коллекции, но тут тоже такая история что по хорошему его надо на всех шардах одновременно воткнуть, а это нетривиально. Проще всего временно локнуть

Svyatoslav
05.12.2017
16:26:51
Там есть рецепт с маркером в специальной коллекции, но тут тоже такая история что по хорошему его надо на всех шардах одновременно воткнуть, а это нетривиально. Проще всего временно локнуть
Ок. Спасибо. Еще вопрос: все запросы к шардам идут через монгос? Или подгружается карта чанков и дальше запросы идут напрямую к членам реплики?

yopp
05.12.2017
16:27:10
монгосы и держат карту чанков

в целом, для клиента совершенно не важно с кем он соединяется

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

Svyatoslav
05.12.2017
16:28:59
монгосы и держат карту чанков
Эту часть я знаю и понимаю, но дальше как? Через кого идут клиентские запросы Поясню вопрос: у меня разрабочики утверждают, что при secondaryPrefered у них работает insert, но не работает select

yopp
05.12.2017
16:29:17
а в реплике есть secondary хоть один?

Svyatoslav
05.12.2017
16:29:35
Да. У каждой реплики по одному secondary

yopp
05.12.2017
16:29:46
Клиентские запросы в шард _всегда_ должны идти через монгосы

Google
yopp
05.12.2017
16:29:58
Если это не так, значит вы очень крупно накосячили

Svyatoslav
05.12.2017
16:30:21
Это так. Значит что-то с фаерволом

Спасибо

yopp
05.12.2017
16:30:48
Все монгосы должны видеть все остальные ноды в кластере

А как secondaryPrefered на вставку вообще получился?

Невозможно вставить данные на secondary, только на текущий primary

Svyatoslav
05.12.2017
16:33:46
А как secondaryPrefered на вставку вообще получился?
Так как раз вставка работает, а выборка нет. При вставке запрос идет на primary

В доке так написано

yopp
05.12.2017
16:35:06
Эм. secondaryPrefered вообще к вставке никакого отношения не имеет. Это read concern

тьфу, не concern а preference

Ого. А что, 3.6 таки зарелизили? https://docs.mongodb.com/manual/release-notes/3.6/

https://www.mongodb.com/blog/post/announcing-the-general-availability-of-mongodb-36

Stable: 3.6.0 (Dec 1, 2017), Bugfix: 3.4.10 (Oct 31, 2017) 3.6.0: https://docs.mongodb.com/manual/release-notes/3.6 3.4.10: https://docs.mongodb.com/manual/release-notes/3.4/#oct-31-2017 3.2.17: https://docs.mongodb.com/manual/release-notes/3.2/#sept-28-2017

Svyatoslav
05.12.2017
16:41:00
Эм. secondaryPrefered вообще к вставке никакого отношения не имеет. Это read concern
Но точно все запросы идут через mongos, никто не ломится напрямую к репликам? В connection uri стоят все mongos кластера.

yopp
05.12.2017
16:41:22
Клиенты по спецификации могут после соединения с монгосом получить список дополнительных серверов, кроме тех что в uri и закешировать его

но это касается опять-же только mongos

Там обычно всё написано

Вообще с secondaryPrefered фоллбек на праймари должен идти, даже если secondary не доступны

Google
yopp
05.12.2017
16:46:10
ОООООО

https://docs.mongodb.com/manual/reference/connection-string/#connections-dns-seedlist

In addition to the standard connection format, MongoDB supports a DNS-constructed seedlist. Using DNS to construct the available servers list allows more flexibility of deployment and the ability to change the servers in rotation without reconfiguring clients.

Дискач!

Даже более того, почти двойной дискач: The DNS seedlist connection string can also provide options as a query string, with a trailing “/?” as in the standard connection string above. However, the +srv appended to the standard connection string signals the driver to query the DNS for options as a configured TXT record. Only two options are available for configuration via a TXT record – replicaSet and authSource, and only one TXT record is allowed per server. If multiple TXT records appear in the DNS and/or if the TXT record contains an option other than replicaSet or authSource, an error will be thrown by the driver.

Svyatoslav
05.12.2017
16:47:16
Спасибо за информацию

yopp
05.12.2017
16:48:05
Глядишь к 4.0 и x509 в порядок приведут

Ничоси: An index can cover a query on fields within nested documents.

Kolya
05.12.2017
18:24:26
Ребят, всем привет) возник такой вопрос: иногда надо на удаленном сервере посмотреть данные с монги, удалить что-то, протестировать или измнеить, для локальной такого рода работы я использую Robo 3T, посоветуйте как лучше работать с удаленной? открывать монгу на доступ извне и подключаться к ней? или есть способы более надежные и практичные? Прошу поделиться тех, кто реально в боевых проектах чем пользуется) Большое спасибо)

yopp
05.12.2017
18:43:02
SSH тунель

И прочие бастионы

Kolya
05.12.2017
18:43:18
нагуглил такое https://www.8host.com/blog/ustanovka-i-zashhita-mongodb-v-ubuntu-16-04/

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