Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shrink logs #155

Open
recoilme opened this issue Jan 18, 2018 · 7 comments
Open

Shrink logs #155

recoilme opened this issue Jan 18, 2018 · 7 comments

Comments

@recoilme
Copy link

recoilme commented Jan 18, 2018

Дима, привет!

Уже год юзаем твой движок в https://github.com/recoilme/okdb - все прекрасно, но хотелось бы еще и место экономить чуть чуть если возможно.
Когда база суммарно превышает примерно 70 гиг процедура упаковки начинает запускаться реже чтоли
Вот примерно такие размеры:
13G db
126G log
138G total

самый старый лог - -rw-r--r-- 1 pudge pudge 489834960 Jan 5 16:47 00000000000000008652.log - 5 гиг

Если я верно понимаю в логах новые записи для кот еще не пришло время упаковки
Нет ли возможности как то форсировать это процесс или каких то параметров для уменьшения количества лог файлов?

@recoilme
Copy link
Author

screen shot 2018-01-18 at 14 35 13

красненький - это рост базы (мы ее грохаем периодически - как место кончается)

@pmwkaa
Copy link
Owner

pmwkaa commented Jan 18, 2018

Привет! Очень приятно это слышать :)

Возможно вам стоит покрутить db.compaction.cache. Переменная сейчас расчитывается из ожидаемого размера хранилища, скорости записи данных в базу и скорости диска. Можно взять типичное значение отсюда http://sophia.systems/v2.2/admin/memory_requirements.html

Можно самостоятельно включить compaction позвав функцию db.name.compaction.compact, например так как это делается в тестах: https://github.com/pmwkaa/sophia/blob/master/test/compaction/compact.test.c#L46

@recoilme
Copy link
Author

recoilme commented Feb 6, 2018

@pmwkaa а в какую сторону крутить чтобы логи почаще компактились? ))
Сейчас стоит 400мб, если я правильно выставил https://github.com/recoilme/okdb/blob/master/okdb.c#L939
Может быть вообще отключить лог, раз она не падает, или это не совсем то?
http://sophia.systems/v2.2/conf/log.html

@pmwkaa
Copy link
Owner

pmwkaa commented Feb 8, 2018

400 мб кажется очень мало, это будет вынуждать компактить постоянно и не эффективно с ростом базы. cache это размер памяти, которую мы можем выделить для хранилища. чем она выше, тем будет эффективнее работа в плане io. Типовой размер cache, расчитаный от макс. объема данных и скорости диска можно выбрать из этой таблички: можно выбрать http://sophia.systems/v2.2/admin/memory_requirements.html

Если отключить лог, тогда потеряются все данные, которые не успели скомпактится. Те база будет работать как in-memory хранилище больше. По простому сейчас решается компактится ли нода если 'размер данных в памяти ноды > cache / колво_нод'.

Я могу для вас вернуть checkpoint. Если его вызвать, он сможет все скомпактить все без условий.

@recoilme
Copy link
Author

recoilme commented Feb 8, 2018

Спасибо большое за ответы!
Я правильно понял что сейчас если просто дергать функцию - db.name.compaction.compact - она не скомпактит всё если по время компактится еще не пришло? Если так, то checkpoint был бы идеальным решением в нашем случае

@catroot
Copy link

catroot commented Feb 8, 2018

+1 за принудительный компакт

@pmwkaa
Copy link
Owner

pmwkaa commented Mar 31, 2018

Года еще не прошло, но я добавил checkpoint :) 2ecfe01

Позвать можно вызвав db.name.compaction.checkpoint (как в тесте compaction/checkoint.test.c). db.name.scheduler.checkpoint скажет, что он активен в текущий момент.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants