-
Notifications
You must be signed in to change notification settings - Fork 9
В slowpoke нет режима «nosync» #19
Comments
Не уверен что понял вопрос. |
Наверное, вопрос можно сформулировать так: что slowpoke не делает sync, теряет данные, это противоречит заявлению на хабре и в исходниках "with sync at end". Вы знаете, это умышленно, или это баг? upd: все это с добавками "насколько я понял код", моя цель не злая, просто хочу узнать. |
в первой версии slowpoke был только один режим - с принудительным sync - после каждой записи: https://habr.com/ru/post/354224/ "Все команды записи в slowpoke атомарны, и завершаются командой sync (синхронизация данных). Дело в том, что современные файловые системы при записи в файл, пишут по сути в буфер. И в случае падения операционной системы буфер будет потерян. Большинство баз данных имеет режим nosync (может называться по разному, но суть в том, что операция синхронизации очень медленная, особенно это заметно на старых винчестерах и для победы в бенчмарках и для ускорения записи используется данный режим)." Для пакетной записи - предлагалось использовать sets. Что оказалось не очень удобно на практике. В новом движке ( https://github.com/recoilme/pudge ) - нет режима принудительного sync - на каждую запись. И появилась возможность его отключения, те по сути nosync. Либо - интервальная синхронизация по таймеру. Те статья на хабре не соответствует текущей версии. |
Те слоупоке сейчас - обертка над https://github.com/recoilme/pudge Последняя версия с принудительным sync на каждый инсерт - https://github.com/recoilme/slowpoke/releases - была 1.5 |
Да-да, я цитировал код pudge в первом сообщении только потому что смотрел его. Короче резолюция такая, что это не баг и все в курсе. Может быть вам будет интересен патч документации типа |
Отлично. Я думаю если возникнет подобный вопрос - достаточно будет сослаться на это issue |
В двух словах: не нашел код, который реализует очень нужную мне фичу "нет режима nosync". Такое заявление было только на хабре и в коде "with sync at end", в readme не сказано, поэтому не знаю насколько вам интересно, может быть новый курс без sync и это приемлимо.
pudge.db.Close()
сделал бы нужные вызовы.Sync()
, но его не видноThe text was updated successfully, but these errors were encountered: