[
https://issues.apache.org/jira/browse/OAK-7849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Francesco Mari reassigned OAK-7849:
-----------------------------------
Assignee: Francesco Mari
> CommitHook for recording write operations to the segment store
> --------------------------------------------------------------
>
> Key: OAK-7849
> URL: https://issues.apache.org/jira/browse/OAK-7849
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: segment-tar
> Affects Versions: 1.9.9
> Reporter: Axel Hanikel
> Assignee: Francesco Mari
> Priority: Minor
> Attachments:
> 0001-OAK-7849-CommitHook-for-recording-write-operations-t.patch,
> 0001-OAK-7849-CommitHook-for-recording-write-operations-t.patch,
> 0001-OAK-7849-CommitHook-for-recording-write-operations-t.patch
>
>
> In order to increase reproducibility of tests which measure things like the
> duration of operations or their latency, the idea is to record a log of the
> changes committed to the segment store, which could later be replayed. That
> replay is expected to produce the same results when run on the same machine
> under the same conditions. That way, different versions of the segment store
> can be compared more easily.
> The log could look like this:
> {noformat}
> 1537963348079 FelixStartLevel n+ :clusterConfig
> 1537963348079 FelixStartLevel p+ :clusterId <STRING> =
> bf462164-be56-4023-94ef-f8bafc3eb49f
> 1537963348079 FelixStartLevel n!
> 1537963348079 FelixStartLevel n!
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ jcr:primaryType
> <NAME> = rep:root
> 1537963350142 Apache+Sling+Repository+Startup+Thread n+ oak:index
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ jcr:primaryType
> <NAME> = nt:unstructured
> 1537963350142 Apache+Sling+Repository+Startup+Thread n+ socialLucene
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ jcr:primaryType
> <NAME> = oak:QueryIndexDefinition
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ compatVersion <LONG>
> = 2
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ name <STRING> =
> socialLucene
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ type <STRING> = lucene
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ async <STRINGS> =
> [async,nrt]
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+
> evaluatePathRestrictions <BOOLEAN> = true
> 1537963350142 Apache+Sling+Repository+Startup+Thread p+ reindex <BOOLEAN> =
> true
> 1537963350143 Apache+Sling+Repository+Startup+Thread n+ indexRules
> 1537963350143 Apache+Sling+Repository+Startup+Thread p+ jcr:primaryType
> <NAME> = nt:unstructured
> 1537963350143 Apache+Sling+Repository+Startup+Thread p+ :childOrder <NAMES> =
> [social:asiResource]
> 1537963350143 Apache+Sling+Repository+Startup+Thread n+ social:asiResource
> 1537963350143 Apache+Sling+Repository+Startup+Thread p+ jcr:primaryType
> <NAME> = nt:unstructured
> 1537963350143 Apache+Sling+Repository+Startup+Thread p+ :childOrder <NAMES> =
> [properties]{noformat}
> where each line consists of a time stamp, the thread name, the operation (+ =
> added, - = removed, ^ = changed, ! = up to parent, n = node, p = property),
> the name (urlencoded except for : and / (for readability)), the type between
> angle brackets, and a value (urlencoded as well, and a comma-separated list
> between square brackets in case of multiple values). An 'n!' at the root node
> level ends a commit. Blob values are encoded as a simple string of bytes
> converted to hex.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)