[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vikas Saurabh updated OAK-3001: --- Attachment: OAK-3001.take1.patch Attaching take1 [patch|^OAK-3001.take1.patch]. [~mreutegg], [~egli], [~chetanm], [~reschke], can you please review if I wavered off on what we planned to do? Added method is {code} int remove(Collection collection, String indexedProperty, long startValue, long endValue) throws DocumentStoreException; {code} I've added no conditions of {{\-1}} to disable condition. I wasn't sure if it made enough sense - 0 is logically correct for startVal and is as good as \-1. For our current case, endVal was always bound. I didn't extend {{Condition}} class for this as afaics usage of condition seemed to be somehow linked with id (I'm not completely sure of the intended contract). May be that bit needs correction/refactor. I think I can add a few more edge cases in BasicDocStoreTest. [~reschke], I couldn't quite pack up this method into existing delete methods in RDBDocStore or RDBDocStoreJDBC. May be, there was some more elegant way to do it. All tests pass on h2 - I couldn't do it for others. I was planning to use {{BETWEEN}} operator but internet seems to point that inclusive/exclusive range for that operator is implementation dependent... so, I went for {{>=}} and {{<=}}. There was one more interesting thing - conditional delete in RDBDocStoreJDBC seemed to throw if condition isn't on modified... I copied that same behavior in this new impl although the interface contract doesn't say so. > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Vikas Saurabh >Priority: Critical > Labels: scalability > Fix For: 1.6, 1.5.14 > > Attachments: OAK-3001.take1.patch > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] angela updated OAK-3001: Fix Version/s: 1.5.14 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Vikas Saurabh >Priority: Critical > Labels: scalability > Fix For: 1.6, 1.5.14 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger updated OAK-3001: -- Fix Version/s: (was: 1.4) 1.6 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.6 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Assignee: (was: Stefan Egli) > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.4 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.2.8) (was: 1.3.11) 1.4 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.4 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Davide Giannella updated OAK-3001: -- Fix Version/s: (was: 1.3.10) 1.3.11 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.3.11, 1.2.8 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.3.9) 1.3.10 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.3.10, 1.2.8 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.3.8) 1.3.9 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.3.9, 1.2.8 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Davide Giannella updated OAK-3001: -- Fix Version/s: (was: 1.2.7) 1.2.8 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.3.8, 1.2.8 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.2.5) (was: 1.3.6) 1.3.7 1.2.6 moving one version down the road since blocker OAK-3213 is currently unscheduled > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.3.7, 1.2.6 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Amit Jain updated OAK-3001: --- Fix Version/s: 1.2.5 > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.3.6, 1.2.5 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Amit Jain updated OAK-3001: --- Fix Version/s: (was: 1.2.5) > Simplify JournalGarbageCollector using a dedicated timestamp property > - > > Key: OAK-3001 > URL: https://issues.apache.org/jira/browse/OAK-3001 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mongomk >Reporter: Stefan Egli >Assignee: Stefan Egli >Priority: Critical > Labels: scalability > Fix For: 1.3.6 > > > This subtask is about spawning out a > [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] > from [~chetanm] re JournalGC: > {quote} > Further looking at JournalGarbageCollector ... it would be simpler if you > record the journal entry timestamp as an attribute in JournalEntry document > and then you can delete all the entries which are older than some time by a > simple query. This would avoid fetching all the entries to be deleted on the > Oak side > {quote} > and a corresponding > [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] > from myself: > {quote} > Re querying by timestamp: that would indeed be simpler. With the current set > of DocumentStore API however, I believe this is not possible. But: > [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] > comes quite close: it would probably just require the opposite of that > method too: > {code} > public List query(Collection collection, > String fromKey, > String toKey, > String indexedProperty, > long endValue, > int limit) { > {code} > .. or what about generalizing this method to have both a {{startValue}} and > an {{endValue}} - with {{-1}} indicating when one of them is not used? > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.2.4) 1.2.5 Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Assignee: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.3.6, 1.2.5 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.3.5) 1.3.6 Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Assignee: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.4, 1.3.6 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.3.4) 1.3.5 Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Assignee: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.4, 1.3.5 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.2.3) 1.2.4 Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Assignee: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.4, 1.3.4 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.2.4) 1.2.3 Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.3, 1.3.4 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Davide Giannella updated OAK-3001: -- Fix Version/s: (was: 1.3.3) 1.3.4 Move to 1.3.4 Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.4, 1.3.4 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.2.3) 1.2.4 Factored out adding just the timestamp property to avoid later migration problems to OAK-3085. OAK-3001 itself can therefore be removed from 1.2.3 as a blocking issue. Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.4, 1.3.3 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Davide Giannella updated OAK-3001: -- Fix Version/s: (was: 1.3.2) 1.3.3 Bulk move to 1.3.3. Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.3, 1.3.3 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger updated OAK-3001: -- Issue Type: Improvement (was: Sub-task) Parent: (was: OAK-2829) Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.3, 1.3.2 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OAK-3001) Simplify JournalGarbageCollector using a dedicated timestamp property
[ https://issues.apache.org/jira/browse/OAK-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Egli updated OAK-3001: - Fix Version/s: (was: 1.3.1) 1.3.2 Simplify JournalGarbageCollector using a dedicated timestamp property - Key: OAK-3001 URL: https://issues.apache.org/jira/browse/OAK-3001 Project: Jackrabbit Oak Issue Type: Sub-task Components: core, mongomk Reporter: Stefan Egli Priority: Critical Labels: scalability Fix For: 1.2.3, 1.3.2 This subtask is about spawning out a [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585733page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585733] from [~chetanm] re JournalGC: {quote} Further looking at JournalGarbageCollector ... it would be simpler if you record the journal entry timestamp as an attribute in JournalEntry document and then you can delete all the entries which are older than some time by a simple query. This would avoid fetching all the entries to be deleted on the Oak side {quote} and a corresponding [reply|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14585870page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14585870] from myself: {quote} Re querying by timestamp: that would indeed be simpler. With the current set of DocumentStore API however, I believe this is not possible. But: [DocumentStore.query|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java#L127] comes quite close: it would probably just require the opposite of that method too: {code} public T extends Document ListT query(CollectionT collection, String fromKey, String toKey, String indexedProperty, long endValue, int limit) { {code} .. or what about generalizing this method to have both a {{startValue}} and an {{endValue}} - with {{-1}} indicating when one of them is not used? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)