Aleksey
оплог надо учеличивать на каждом хосте отдельно же
yopp
Но не обязательно на всех иметь равный размер
Aleksey
и у монги есть мануал про это
Aleksey
Но не обязательно на всех иметь равный размер
довольно хитрый способ стрельнуть себе в ногу
yopp
Чем стрельнуть то?
yopp
Даже полностью утерянный оплог не приводит к потере данных. Единственное что будет результатом — полная синхронизация любого нового участника.
yopp
В смысле не нового что пустого, а выпавшего из кластера.
Aleksey
хм. я всегда считал что порядок применения оплога сначала скачали себе потом проиграли. к тому же есть рекомендации в продуктовой среде держать journal и index на отдельных раздела для ускорения оных. поэтому я выделяю раздел некоторого объема скажем 30 гигов под журнал. и если на одной из нод он будет 200 гигов то возможна ситуация когда раздел будет переполен.
Aleksey
так вот соображаю я
yopp
Журнал и оплог — разные вещи.
yopp
Журнал он про сторадж, а оплог он про репликацию
Aleksey
хм. да ?
Aleksey
я всегда был уверен что это две стороны одной медали
yopp
Они пересекаются конечно, но по своей сути это разные вещи.
yopp
Ну вот в write concern два флага. Один про журнал, второй по сути про оплог
yopp
В wt вообще без журнала можно спокойно и репликация никуда не денется.
Alexey
Собственно вопрос в том, насколько больше от увеличения оплога будет использоваться оперативная память и, как следствие вытесняться индексы и тп
yopp
из коллекции в нормальном состоянии читается только хвост, так что никаких видимых изменений не будет
yopp
если бы оплог как-то существенно мешал, то на 50 гигабайтах его уже было бы видно
Alexey
Ясно, понятно
yopp
эти 50 гигабайт — лимит размера capped collection
yopp
увеличение размера влияет только на то, когда из начала коллекции данные удаляются
Alexey
yopp
короч ответ на твой вопрос: значительно на всё остальное не повлияет, будет занимать больше места на диске, за счёт увеличения размера коллекции и как следствия индекса, может на уровне погрешности измерений увеличится время необходимое для поиска и удаления документов в начале коллекции.
yopp
в памяти футпринт не изменится
Alexey
Ок. Спасибо
Aleksey
и чот мне кажется 50 гигов не дефолт
Aleksey
дефолт там какой то процент от диска
yopp
это предел по дефолту
yopp
5% но не более 50гб
yopp
(с 5% могу врать)
yopp
https://docs.mongodb.com/manual/core/replica-set-oplog/#oplog-size
yopp
Ваще очень печалит что нельзя динамически увеличивать размер оплога. Например перед выводом ноды на обслуживание, ставишь unlimited и спокойно выводишь. После завершения обслуживания, ставишь по дефолту и ненужное отбрасывается.
yopp
О
yopp
https://jira.mongodb.org/browse/SERVER-22766
yopp
Ничоси
yopp
Прям в 3.6 какие-то неземные количества свэга будут
Aleksey
даешь 3,5,10 в продакшон
yopp
230 additions and 84 deletions.
Николаич
А для монги есть что-то, чтоб миграции делать? Юзаю mongoose.
Николаич
Ну вот поменял я модель. Перезапускаю приложение и что будет с данными в БД?
Николаич
Сменил тип со стринга на булеан. Как мне без миграции быть?
Николаич
Щас с телефона, но вечером попробую. Спасибо.
yopp
Сменил тип со стринга на булеан. Как мне без миграции быть?
Идти по простому принципу: «ничего не удаляется, только добавляется». Создаёшь новый атрибут, в существующих моделях значение генерируешь из старого.
yopp
Суть в том, чтоб НЕ трогать старые атрибуты вообще.
yopp
Т.е. ты делаешь новый атрибут sid
yopp
Как его наполнить в существующих документах: от одного запроса с $set, до перебора всех документов и последовательным update каждого — в зависимости от условий и сложности.
yopp
Менять тип существующих атрибутов — путь к граблям глубокого залегания.
yopp
Напомню что к документным субд понятное схемы не применимо на уровне субд. «Схема» делегируете полностью в бизнес логику.
Alexey
Привет всем. Внезапно моргнуло железо, получил hard reset. Монга при старте уже несколько часов висит вот с этим в логах: 2017-08-26T17:58:34.404+0300 W - [initandlisten] Detected unclean shutdown - /mnt/data/mongodb/mongod.lock is not empty. 2017-08-26T17:58:34.404+0300 W STORAGE [initandlisten] Recovering data from the last clean checkpoint. 2017-08-26T17:58:34.404+0300 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=150G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), Это она что-то восстанавливает? или уже все и надо ресинхронизировать ноду? или просто удаление локфайла решит проблему?
Alexey
в документации сказано не использовать repair, если это репликасет
Alexey
Отвечу сам себе. В это время происходит все-таки восстановление. Нода прочихалась и запустилась...в общей сложности так висела 6ч с одним перезапуском по SIGTERM.
P&P
У ноды есть IPv6 и IPv4, есть ли возможность добавить её в репликасет под ОБОИМИ ip одновременно (видимо не как 2 ноды, а как одна с 2 ip) ? Если - нет, получается реплика сет м.б. только чисто под IPv6 или чисто под IPv4 - в чём идея такой одноадресности в условиях плавного перехода к Ipv6?
P&P
спасибо
P&P
понял, спасибо, понятно
P&P
я в DNS не люблю серваки добавлять... что бы боты не стучались
P&P
они как на моём домене видят третий уровень, так начинают всё долбить обдалбывать
Max
Как-то долго все равно. А дисками только монга пользуется или кто-то еще?
yopp
Если она висела в STARTUP2, то ничего удивительного
Alexey
Как-то долго все равно. А дисками только монга пользуется или кто-то еще?
Только монга. Я смотрел дисковую активность во время восстановления. Она была никакая. Что-то в килобитах...
Max
Если она висела в STARTUP2, то ничего удивительного
не, она ж не может быть в стартап. в это время демона даже нет, к нему не подключиться вроде так
Alexey
Если она висела в STARTUP2, то ничего удивительного
Она висела в "not available" или как-то так...
yopp
А, она на этой части лога так и висела?
Max
Она висела в "not available" или как-то так...
это ее так мастер видел. точнее, "не видел" :) я бы, конечно, попытался такое повторить, если есть возможность. 6 часов! чем она занята-то такое время
yopp
А покажи что в итоге в логе?
yopp
Монга какой версии?
Alexey
Во время восстановления я этот процесс завершил по SIGTERM, чтобы включить verbose 5 логах. Но это никак не дало ничего. Сообщение было такое же. Только потом когда поднялась, посыпался дебаг. Монга версии 3.2.9
Alexey
Лог позже покажу если там что-то будет.
yopp
3.2.9 это очень старая версия. Но багу с журналом поправили где-то немного раньшеь
Alexey
это ее так мастер видел. точнее, "не видел" :) я бы, конечно, попытался такое повторить, если есть возможность. 6 часов! чем она занята-то такое время
А зачем? Если бы она что-то писала хотя бы, так она висела как партизан 6 часов. Я даже strace'ом к процессу цеплялся, но там тоже ничего такого про процесс восстановления.
Max
А зачем? Если бы она что-то писала хотя бы, так она висела как партизан 6 часов. Я даже strace'ом к процессу цеплялся, но там тоже ничего такого про процесс восстановления.
идея в том, что 6 часов - это оч много, как на мой взгляд. И никогда я даже близко таких значений не видел, хотя своими кривульками укладывал ее не единожды если она диском не крутила, то чем же она занималась-то? Вот это и интересно.
Max
логи бы. если оно диском не крутит и проц не юзает - то чего-то же ждёт чудес не бывает.