Skip to content

Conversation

@kocolosk
Copy link
Member

Overview

This adds the auto-compaction daemon directly into the main repo. It also adds the "Support scheduling compactions during time windows" enhancement and related unit tests that were added to couchdb-smoosh after the 1.0.1 tag.

We use git-subtree to carry the smoosh history forward, with an invocation like

git subtree add --prefix=src/smoosh https://github.com/apache/couchdb-smoosh.git master

Testing recommendations

Check that the codebase is the same as you would get by moving the "smoosh" tag in rebar to "master".

Checklist

rnewson and others added 8 commits January 30, 2019 14:20
config_listener_mon establishes a monitor of the caller process.
Therefore it is incorrect to call config:listen_for_changes
from temporary process.
Update API for handle_config_terminate/3
This patch allows administrators to configure smoosh to only
execute compactions during a specified time window on a
per-channel basis. The (partial) configuration looks like

[smoosh]
db_channels=overnight_channel

[smoosh.overnight_channel]
from = 22:00
to = 06:00
strict_window = true

If `strict_window` is set to true, smoosh will suspend all
currently running compactions in this channel when leaving the
time window, and resume them in the next window. If left at the
default, currently running compactions will be allowed to complete
but no new compactions will be started until the window is open again.
git-subtree-dir: src/smoosh
git-subtree-mainline: 0155bd8
git-subtree-split: 78eba84
@nickva
Copy link
Contributor

nickva commented Nov 22, 2019

Doing a local build with make check after a git clean -xffd and ./configure --dev I see failures in the boot sequence:

{"init terminating in do_boot",{{error,{"no such file or directory","smoosh.app"}},[{boot_node,start_app,3,[{file,"dev/boot_node.erl"},{line,146}]},{lists,foldl,3,[{file,"lists.erl"},{line,1263}]},{init,start_em,1,[]},{init,do_boo
t,3,[]}]}}
init terminating in do_boot ({{error,{no such file or directory,smoosh.app}},[{boot_node,start_app,3,[{_},{_}]},{lists,foldl,3,[{_},{_}]},{init,start_em,1,[]},{init,do_boot,3,[]}]})
Crash dump is being written to: erl_crash.dump...done
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed

@kocolosk
Copy link
Member Author

Ah, thanks Nick that definitely points out what I was missing. Hopefully fixed the rebar.config.script properly now.

@kocolosk kocolosk merged commit 8d9f80d into master Nov 22, 2019
@kocolosk kocolosk deleted the smoosh-in-tree branch November 22, 2019 19:14
@loguntsov
Copy link

Hello. There was undefined module call couch_md_index_manager:get_group_pid ( https://github.com/apache/couchdb/pull/2326/files#diff-113cd247cfe56b1aa882a37daa2856fd33bab2e2a6183034eb3a30088960dc13R246 ). Could somebody explain me where i can find this module ?

@nickva
Copy link
Contributor

nickva commented Jun 29, 2022

@loguntsov that was an experimental "schema" discovery feature I believe that never made it into a release

In the recent version of main the reference to that module should be removed

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

Successfully merging this pull request may close these issues.

5 participants