yopp
ну легко могли ошибиться в настройке драйвера, могли что-то нахимичть с чанками
yopp
может быть с топологией проблемы: не все ноды друг другу видны
Alexey
Привет, народ.
А расскажите про борьбу с jumbo чанками. Скажем, есть jumbo чанки...есть ли способ посмотреть их размеры?
yopp
берём чанк с флагом jumbo. берём диапазон ключа этого чанка, делаем find с этим диапазоном и считаем размер bson :)
Alexey
эм...а как считается размер bson?)
Alexey
Object.bsonsize?
Constantin
ᅠ ᅠ ᅠ ᅠ
ребят, может ли быть ошибка с подключением драйвера 3.6+ из-за вот этого:
ᅠ ᅠ ᅠ ᅠ
The mongodb+srv option will fail if there is no available DNS with records that correspond to the hostname identified in the connection string. In addition, use of the +srv connection string modifier automatically sets the ssl option to true for the connection. You can override this behavior by explicitly setting the ssl option to false with ssl=false in the query string.
https://docs.mongodb.com/manual/reference/connection-string/#dns-seedlist-connection-format
ᅠ ᅠ ᅠ ᅠ
?
Alexey
а вот такой вопрос...Для того, чтобы перенести эти jumbo чанки на другие шарды надо на конфигсерверах поднять chunkSize, в этом случае надо помечать jumbo как "уже не jumbo" или монга сама их пометит при следующей попытке смигрить?
ᅠ ᅠ ᅠ ᅠ
а вы какой версии драйвер используете для кластера ботов? Вы используете питоновский?
ᅠ ᅠ ᅠ ᅠ
а версия у вас 3.6+?
ᅠ ᅠ ᅠ ᅠ
у меня тоже, не могу подключиться никак к нему
ᅠ ᅠ ᅠ ᅠ
ᅠ ᅠ ᅠ ᅠ
до 3.6 нет +srv и таких проблем не возникало, а тут пишет, что нельзя
ᅠ ᅠ ᅠ ᅠ
Вы кроме того, что прописываете client = pymongo.MongoClient("mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/test")
db = client.test
что-то еще настраивали?
ᅠ ᅠ ᅠ ᅠ
IP Whitelist у меня настроен
ᅠ ᅠ ᅠ ᅠ
может еще что-то нужно
ᅠ ᅠ ᅠ ᅠ
ᅠ ᅠ ᅠ ᅠ
пишет, что +srv не должно быть, хотя я использую 3.6.1 драйвер
ᅠ ᅠ ᅠ ᅠ
у нас с подключением принцип по идее один и тот же
ᅠ ᅠ ᅠ ᅠ
давайте, буду благодарен
ᅠ ᅠ ᅠ ᅠ
3 реплики? Это разве не старые версии так подключаются?
yopp
yopp
искать как так вышло
yopp
вероятность заливки данных мимо монгоса повышается
Nick
а не было с балансером чтонит ьсвязанное что он не домигрировал бы данные?
yopp
всё может быть, но я ставлю на заливку мимо
yopp
потому что балансировка там многоступенчатая
yopp
балансер сейчас в каком состоянии?
ᅠ ᅠ ᅠ ᅠ
то есть я Вас правильно понимаю, Вы используя драйвер 3.6+ прописали подключение старого образца?
ᅠ ᅠ ᅠ ᅠ
client=MongoClient(os.environ['database'])
db=client.mydb
users=db.users
ᅠ ᅠ ᅠ ᅠ
В os.environ лежит ссылка такого вида:
mongodb://egor5q:password@cluster0-shard-00-00-pgt7n.mongodb.net:27017,cluster0-shard-00-01-pgt7n.mongodb.net:27017,cluster0-shard-00-02-pgt7n.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true
ᅠ ᅠ ᅠ ᅠ
Nick
ᅠ ᅠ ᅠ ᅠ
важно, потому что могут возникнуть проблемы потом с несовместимостью
ᅠ ᅠ ᅠ ᅠ
со старым 3.4 работает как и у Вас, с новым нет +srv вообще никак
Nick
действия УПС
допустим даже была лажа, или касячк монги, всетаки старая уже, вопрос как мне починить данные? пока вижу только напрямую цепляться к шардам и оттуда данные тянуть и заново их заливать
yopp
Nick
печальбеда
yopp
надо было тестировать™
Nick
)))
yopp
перед тем как заливать большие массивы, чтоб потом не было больно и обидно, лучше всегда на каком-то срезе пробовать
Nick
кстаит а если я сейчас кластер перезагружу он эти данные не потеряет? т.е. я все так же смогу на конкретном шарде их юзать?
yopp
потому что на условном 1 гигабайте отлаживать быстрее чем на десятке терабайт %)
Nick
yopp
а зачем его тогда назад сливать?
Nick
только реальных данных а не их копии. сначала поигрался никаких пробелм не было, когда перелил срез на 50лямов и шардинг начал на полную работать, то вылезла такая херь
Nick
есть коллекция дохера большая (9млрд доков/12Тб/4шарда) решил выделить горячий сет в отдельную коллекцию (50млн/70Гб/4шарда) , попереливал часть данных. прошло полторы недели, чекаю каунтеры по базе и вот наткнулся
Alexey
Nick
на каждом шарде raid10 из обычных, 1500рпс не напрягаясь на кластер
yopp
yopp
зоны же есть
Nick
зоны не подходят, у меня шард ключ не позволяет отзонить свежие данные от старых
yopp
в ключе даты нет?
Nick
нет
yopp
а что в ключе есть?
Nick
некоторый индентификатор устройства
Nick
с которого идут доки
yopp
и всё?
Nick
да
yopp
пойти от обратного и выселить холодные устройства? :)
Nick
все горячие
Nick
поэтмоу и зоны не подходят
yopp
нет повести печальнее
yopp
конечно отсутствие механизма изменения шард ключа — одна из самых больших проблем
Nick
причем можно было бы выделить холодные данные, но изза необхоидмости иметь доступ по ключу, в котором нет даты - вот что обламывает
yopp
а в чём проблема? date: { gte: MinKey, lte: MaxKey }
yopp
дату всегда можно ставить в постфикс индекса
yopp
хотя для временных рядов я за дату в префиксе и постфикс какой-то, который хорошо дробится
yopp
и делать скрипт, который чанк с MaxKey будет пилить по постфиксу и балансировать по шарду, чтоб когда дата новая наступила, данные размазались
Alexey
вот и у нас похожая ситуация
10 млрд 4 шарда, все в одно коллекции и ключ не позволяет дробить. и тоже идентификатор устройства
yopp
если тоже временные ряды, то вот выше
yopp
к сожалению иначе hot/cold будет сложно сделать
yopp
так можно по дате сделать зоны
yopp
и подкручивать их постепенно