Skip to content

Instantly share code, notes, and snippets.

@stillalex
Last active March 12, 2022 15:33
Show Gist options
  • Save stillalex/c8186b73639f8dde7974 to your computer and use it in GitHub Desktop.
Save stillalex/c8186b73639f8dde7974 to your computer and use it in GitHub Desktop.
TarMk Cold Standby Logging

TarMk Cold Standby Logging Tips

StandbyClientHandler

Enable DEBUG logs on org.apache.jackrabbit.oak.plugins.segment.standby.client.StandbyClientHandler

This will only log the start and the end of the sync cycle, no progress indication logged.

You'll get the following:

o.a.j.o.p.s.standby.client.StandbyClientHandler sending head request
o.a.j.o.p.s.standby.client.StandbyClientHandler did send head request
o.a.j.o.p.s.standby.client.StandbyClientHandler updating current head to {recordId}
o.a.j.o.p.s.standby.client.StandbyClientHandler updating current head finished

StandbyApplyDiff

Enable TRACE on org.apache.jackrabbit.oak.plugins.segment.standby.client.StandbyApplyDiff

This will log the progress, but it could log a lot of information so take care of disabling this log quickly after you are done.

You'll see the following:

27.08.2015 02:51:11.732 *TRACE* [defaultEventExecutorGroup-75-1] o.a.j.o.p.s.standby.client.StandbyApplyDiff childNodeAdded /some/content/path
27.08.2015 02:51:11.732 *TRACE* [defaultEventExecutorGroup-75-1] o.a.j.o.p.s.standby.client.StandbyApplyDiff childNodeAdded /another/content/path

FileStore

Enable DEBUG on org.apache.jackrabbit.oak.plugins.segment.file.FileStore to verify if the journal.log file gets updated.

If the journal.log file doesn't get updated the persisted head state doesn't get updated, this means that post-restart you might experience some content loss (a rollback to the latest persisted state from the journal log) Usually the journal.log update happens every 5s, but in the standby case the journal update interval depends on the sync duration, so if there are a lot of changes coming in and the sync takes longer (60 minutes for example) the journal update will only happen after this is done. this ensures the consistency of the sync, which means that once a sync is successfull the persisted head state points to the new head state.

You'll see the following:

27.08.2015 00:28:46.868 *DEBUG* [TarMK flush thread [/repository/segmentstore], active since Thu Aug 27 00:28:46 CDT 2015, previous max duration 27ms] o.a.j.o.p.s.file.FileStore TarMK journal update {oldRecordId} -> {newRecordId}
@varun217
Copy link

Thank you 👍

@stillalex
Copy link
Author

thanks to @varun217 for the FileStore mention

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment