[jira] [Reopened] (OAK-10281) Introduce recoveryDelay to ClusterNodeInfo.isRecoveryNeeded

2024-01-29 Thread Stefan Egli (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10281?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Egli reopened OAK-10281:
---

Reopening to suggest [this 
PR|https://github.com/apache/jackrabbit-oak/pull/1288] to also use an osgi 
config instead of system properties

> Introduce recoveryDelay to ClusterNodeInfo.isRecoveryNeeded
> ---
>
> Key: OAK-10281
> URL: https://issues.apache.org/jira/browse/OAK-10281
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk
>Reporter: Stefan Egli
>Assignee: Stefan Egli
>Priority: Major
> Fix For: 1.62.0
>
>
> Oak instances periodically update their leases to signal to peers in the 
> cluster that they are still alive. A lease that has timed out is hence taken 
> as indication that the corresponding oak instance has crashed (and not 
> released the lease). It is also assumed that the corresponding, crashing oak 
> instance does not do any further write operations after the lease timeout - 
> as it would otherwise have been alive and updated their lease, which it did 
> not.
> As already reported elsewhere (eg OAK-10254) there is a case where indeed 
> writes happen later than the lease timeout (aka "late writes"): a writing 
> thread could go passed the lease check, then a stop-the-world (eg high JVM 
> GC) could halt the thread for more than the lease timeout (eg 2min), and upon 
> continuation that writing thread could then send the write operation to the 
> DocumentStore.
> One way to mitigate this late-write risk is to delay the recovery. Ie wait 
> with doing the LastRevRecovery for eg 10min after a lease failure. That 
> includes putting the state of the clusterNode back into inactive.
> This ticket is about introducing such a recoveryDelay config parameter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OAK-6765) Convert oak-jcr to OSGi R7 annotations

2024-01-29 Thread Manfred Baedke (Jira)


[ 
https://issues.apache.org/jira/browse/OAK-6765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17811862#comment-17811862
 ] 

Manfred Baedke commented on OAK-6765:
-

After removing the unused StatisticsProvider reference:
{code:java}
org.apache.jackrabbit.oak.jcr.osgi.RepositoryManager
Declarative Services
References
referenceIndex
- bind = bindReferenceIndex (String)
- unbind = unbindReferenceIndex (String)
+ field = referenceIndex (String)
+ field-option = replace (String)
securityProvider
- bind = bindSecurityProvider (String)
- unbind = unbindSecurityProvider (String)
+ field = securityProvider (String)
+ field-option = replace (String)
propertyIndex
- bind = bindPropertyIndex (String)
- unbind = unbindPropertyIndex (String)
+ field = propertyIndex (String)
+ field-option = replace (String)
store
- bind = bindStore (String)
- unbind = unbindStore (String)
+ field = store (String)
+ field-option = replace (String)
org.apache.jackrabbit.oak.stats.StatisticsProvider
- name = org.apache.jackrabbit.oak.stats.StatisticsProvider 
(String)
- interface = 
org.apache.jackrabbit.oak.stats.StatisticsProvider (String)
- cardinality = 1..1 (String)
{code}


> Convert oak-jcr to OSGi R7 annotations
> --
>
> Key: OAK-6765
> URL: https://issues.apache.org/jira/browse/OAK-6765
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: jcr
>Reporter: Robert Munteanu
>Assignee: Manfred Baedke
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] (OAK-6765) Convert oak-jcr to OSGi R7 annotations

2024-01-29 Thread Manfred Baedke (Jira)


[ https://issues.apache.org/jira/browse/OAK-6765 ]


Manfred Baedke deleted comment on OAK-6765:
-

was (Author: baedke):
After removing the unused reference 
org.apache.jackrabbit.oak.stats.StatisticsProvider:
{code:java}
org.apache.jackrabbit.oak.jcr.osgi.RepositoryManager
Declarative Services
Properties
+ oak.observation.queue-length = 1 (Integer)
+ oak.query.fastResultSize = false (Boolean)
- Fast query result size = false (Boolean)
- Commit rate limiter = false (Boolean)
- Observation queue length = 1 (Integer)
+ oak.observation.limit-commit-rate = false (Boolean)
References
referenceIndex
- bind = bindReferenceIndex (String)
- unbind = unbindReferenceIndex (String)
+ field = referenceIndex (String)
+ field-option = replace (String)
securityProvider
- bind = bindSecurityProvider (String)
- unbind = unbindSecurityProvider (String)
+ field = securityProvider (String)
+ field-option = replace (String)
propertyIndex
- bind = bindPropertyIndex (String)
- unbind = unbindPropertyIndex (String)
+ field = propertyIndex (String)
+ field-option = replace (String)
store
- bind = bindStore (String)
- unbind = unbindStore (String)
+ field = store (String)
+ field-option = replace (String)
org.apache.jackrabbit.oak.stats.StatisticsProvider
- name = org.apache.jackrabbit.oak.stats.StatisticsProvider 
(String)
- interface = 
org.apache.jackrabbit.oak.stats.StatisticsProvider (String)
- cardinality = 1..1 (String)
{code}


> Convert oak-jcr to OSGi R7 annotations
> --
>
> Key: OAK-6765
> URL: https://issues.apache.org/jira/browse/OAK-6765
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: jcr
>Reporter: Robert Munteanu
>Assignee: Manfred Baedke
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OAK-6765) Convert oak-jcr to OSGi R7 annotations

2024-01-29 Thread Manfred Baedke (Jira)


[ 
https://issues.apache.org/jira/browse/OAK-6765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17811854#comment-17811854
 ] 

Manfred Baedke commented on OAK-6765:
-

After removing the unused reference 
org.apache.jackrabbit.oak.stats.StatisticsProvider:
{code:java}
org.apache.jackrabbit.oak.jcr.osgi.RepositoryManager
Declarative Services
Properties
+ oak.observation.queue-length = 1 (Integer)
+ oak.query.fastResultSize = false (Boolean)
- Fast query result size = false (Boolean)
- Commit rate limiter = false (Boolean)
- Observation queue length = 1 (Integer)
+ oak.observation.limit-commit-rate = false (Boolean)
References
referenceIndex
- bind = bindReferenceIndex (String)
- unbind = unbindReferenceIndex (String)
+ field = referenceIndex (String)
+ field-option = replace (String)
securityProvider
- bind = bindSecurityProvider (String)
- unbind = unbindSecurityProvider (String)
+ field = securityProvider (String)
+ field-option = replace (String)
propertyIndex
- bind = bindPropertyIndex (String)
- unbind = unbindPropertyIndex (String)
+ field = propertyIndex (String)
+ field-option = replace (String)
store
- bind = bindStore (String)
- unbind = unbindStore (String)
+ field = store (String)
+ field-option = replace (String)
org.apache.jackrabbit.oak.stats.StatisticsProvider
- name = org.apache.jackrabbit.oak.stats.StatisticsProvider 
(String)
- interface = 
org.apache.jackrabbit.oak.stats.StatisticsProvider (String)
- cardinality = 1..1 (String)
{code}


> Convert oak-jcr to OSGi R7 annotations
> --
>
> Key: OAK-6765
> URL: https://issues.apache.org/jira/browse/OAK-6765
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: jcr
>Reporter: Robert Munteanu
>Assignee: Manfred Baedke
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (OAK-10608) [Indexing job] Improve regex expression used to download from Mongo to make better used of Mongo indexes

2024-01-29 Thread Nuno Santos (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nuno Santos resolved OAK-10608.
---
Fix Version/s: 1.62.0
   Resolution: Done

> [Indexing job] Improve regex expression used to download from Mongo to make 
> better used of Mongo indexes
> 
>
> Key: OAK-10608
> URL: https://issues.apache.org/jira/browse/OAK-10608
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: indexing
>Reporter: Nuno Santos
>Priority: Major
> Fix For: 1.62.0
>
>
> The current regex expression used to filter from Mongo the included/excluded 
> paths has conditions on both the fields \{{_id}} and \{{_path}}. In most 
> cases, the \{{_id}} field contains the path of the node, but when the path is 
> too long, the \{{_id}} is replaced by an hash of the path and the full path 
> is added to the document as an additional \{{_path}} field. For these cases, 
> the regex expression must also check the \{{_path}} field. 
> When running an ordered traversal, we use a Mongo index on \{{(_modified, 
> _id)}}. So checks on \{{_id}} can be done with just the data retrieved from 
> the index. But for the check on \{{_path}}, Mongo needs to read the full 
> document from the column store, which slows down significantly the traversal.
> Currently, if \{{_id}} does not match, the regex expression will always check 
> \{{_path}}, forcing a retrieval of the document. But we only need to check 
> \{{_path}} if the \{{_id}} is of the form of a long path id, that is, of the 
> pattern \{{4:h...}}, otherwise, if the _id is not a long path, then if 
> it does not match the regex, we can be sure that the document is not needed. 
> The check that \{{_id}} is an hash can be done without retrieving the full 
> document from the column store, so it will be fast. And in the common case, 
> the document is not a long path, so this simple check will avoid retrieving 
> the document from the column store.
> This optimization will have a bit impact when the regex expression matches a 
> small fraction of the repository. In the current implementation, Mongo has to 
> traverse both the index and the column store for all possible regex filters. 
> But with the additional check for long paths, Mongo has still to traverse the 
> full index but it will only retrieve from the column store the documents that 
> match the filter or the long path documents. And since the index is much 
> smaller than the column store and can more easily be cached, this will 
> significantly improve performance.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)