[jira] [Commented] (OAK-7083) CompositeDataStore - ReadOnly/ReadWrite Delegate Support

2018-02-23 Thread Matt Ryan (JIRA)

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

Matt Ryan commented on OAK-7083:


Let me try to describe in more detail how GC works with the 
{{CompositeDataStore}} without the change to {{MarkSweepGarbageCollector}}.

Let's start with the Primary repo.  It has three nodes in the repo, A1-A3. It 
is connected to data store DS_P which has blobs A1_B-A3-B and a repository file 
in it.
{noformat}
P
  - A1
  - A2
  - A3

DS_P
  - repository-P
  - A1_B
  - A2_B
  - A3_B
{noformat}
At this point we create the Secondary repo by cloning the Primary. It has a 
copy of the Primary node store and refers directly to data store DS_P, which 
now has another repository file in it. Secondary also has another data store, 
DS_S, which is empty other than the repository file for the Secondary repo.
 Note that the {{CompositeDataStore}} writes the metadata files to EVERY 
delegate data store, so this way the repository file appears in every data 
store.
{noformat}
PS
  - A1 - A1
  - A2 - A2
  - A3 - A3

DS_P DS_S
  - repository-P   - repository-S
  - repository-S
  - A1_B
  - A2_B
  - A3_B
{noformat}
Suppose on Primary nodes A2 and A3 are deleted, and on Secondary nodes A1 and 
A3 are deleted. No GC has been run yet. So now we have this:
{noformat}
P   S
  - A1- (A1-deleted)
  - (A2-deleted)  - A2
  - (A3-deleted)  - (A3-deleted)

DS_PDS_S
  - repository-P  - repository-S
  - repository-S
  - A1_B
  - A2_B
  - A3_B
{noformat}
Now on Primary nodes B4 and B5 are created and on Secondary nodes C6 and C7 are 
created.
{noformat}
P   S
  - A1- (A1-deleted)
  - (A2-deleted)  - A2
  - (A3-deleted)  - (A3-deleted)
  - B4- C6
  - B5- C7

DS_PDS_S
  - repository-P  - repository-S
  - repository-S  - C6_B
  - A1_B  - C7_B
  - A2_B
  - A3_B
  - B4_B
  - B5_B
{noformat}
Now node B5 is deleted from Primary and node C7 is deleted from Secondary. 
Still no GC has been run yet.
{noformat}
P   S
  - A1- (A1-deleted)
  - (A2-deleted)  - A2
  - (A3-deleted)  - (A3-deleted)
  - B4- C6
  - (B5-deleted)  - (C7-deleted)

DS_PDS_S
  - repository-P  - repository-S
  - repository-S  - C6_B
  - A1_B  - C7_B
  - A2_B
  - A3_B
  - B4_B
  - B5_B
{noformat}
Let's suppose GC runs and Primary does a mark first. When it is done it will 
create a references file with all of the references it knows about that should 
be kept.
{noformat}
P   S
  - A1- (A1-deleted)
  - (A2-deleted)  - A2
  - (A3-deleted)  - (A3-deleted)
  - B4- C6
  - (B5-deleted)  - (C7-deleted)

DS_PDS_S
  - repository-P  - repository-S
  - repository-S  - C6_B
  - references-P (A1, B4) - C7_B
  - A1_B
  - A2_B
  - A3_B
  - B4_B
  - B5_B
{noformat}
Note at this point Primary cannot complete a sweep because Secondary has not 
performed a mark phase yet. There is no references file in DS_P yet from 
Secondary.

Later Secondary performs the mark phase and it creates a references file with 
all of the references it knows about that should be kept. Notice the references 
file gets created in both DS_S and DS_P, since {{CompositeDataStore}} performs 
metadata writes to all delegate data stores.
{noformat}
P   S
  - A1- (A1-deleted)
  - (A2-deleted)  - A2
  - (A3-deleted)  - (A3-deleted)
  - B4- C6
  - (B5-deleted)  - (C7-deleted)

DS_PDS_S
  - repository-P  - repository-S
  - repository-S  - references-S (A2, C6)
  - references-P (A1, B4) 

[jira] [Commented] (OAK-7083) CompositeDataStore - ReadOnly/ReadWrite Delegate Support

2018-02-23 Thread Matt Ryan (JIRA)

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

Matt Ryan commented on OAK-7083:


[~amitjain] [~chetanm]
{quote}Is it a requirement that the Primary should not delete blobs used by the 
Secondary? 
{quote}
I don't know if that was spelled out as a requirement.  It seems like an 
undesirable situation to have the Primary delete blobs that are still being 
referenced by the Secondary.  For the specific use case this was meant to 
address (production system and staging system sharing the data store) it may be 
acceptable that the secondary system have missing blobs, although not ideal.  
But it certainly limits the usability of the system for other similar use cases.
{quote}it would still be strange for the Primary (a Production system) to have 
to co-ordinate GC with a Secondary (staging or a test system) which it has no 
knowledge about.
{quote}
Agreed.

> CompositeDataStore - ReadOnly/ReadWrite Delegate Support
> 
>
> Key: OAK-7083
> URL: https://issues.apache.org/jira/browse/OAK-7083
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: blob, blob-cloud, blob-cloud-azure, blob-plugins
>Reporter: Matt Ryan
>Assignee: Matt Ryan
>Priority: Major
>
> Support a specific composite data store use case, which is the following:
> * One instance uses no composite data store, but instead is using a single 
> standard Oak data store (e.g. FileDataStore)
> * Another instance is created by snapshotting the first instance node store, 
> and then uses a composite data store to refer to the first instance's data 
> store read-only, and refers to a second data store as a writable data store
> One way this can be used is in creating a test or staging instance from a 
> production instance.  At creation, the test instance will look like 
> production, but any changes made to the test instance do not affect 
> production.  The test instance can be quickly created from production by 
> cloning only the node store, and not requiring a copy of all the data in the 
> data store.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7083) CompositeDataStore - ReadOnly/ReadWrite Delegate Support

2018-02-23 Thread Matt Ryan (JIRA)

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

Matt Ryan commented on OAK-7083:


[~amitjain]

You are right that Proposal 1 and Proposal 2 are not that different.

I think you clarified something I didn't realize before - that in a normal 
{{SharedDataStore}} environment, only one of the systems will have the "sweep" 
phase scheduled.  In other words GC sweep is only ever performed on one system. 
 I did not realize that.

This scenario CANNOT work with {{CompositeDataStore}} in the use case described 
here.  It cannot work because there will always be blobs that can only be 
deleted by one system or the other.  Once both the production and staging 
systems are both running and operational, any binaries created on either system 
from that point onward that are later deleted can only be garbage collected by 
that system.

You said:
{quote}Then we don't have to make any change to the MarkSweepGarbageCollector 
and the process will be the same as currently for normal deployments.
{quote}
I do not agree with that statement.  I do not think it is possible for GC to 
work in an environment with {{CompositeDataStore}} unless some code changes are 
made to the garbage collector.  Either we need to make these changes to the 
{{MarkSweepGarbageCollector}} or we have to make another garbage collector that 
is designed to work with {{CompositeDataStore}}.
{quote}Essentially, I am Ok with proposal 2 for a start
{quote}
In my view, Proposal 2 offers no real advantages to Proposal 1 but adds 
complexity due to the requirement to coordinate between repositories on the 
mark phase, beyond what is already being done.  With both proposals it is still 
required to make changes to the garbage collector and it is still required that 
ALL repositories perform the sweep phase.
{quote}then we can enhance with the proposal that I outlined of encoding the 
blob ids with the role/type of the DataStore. Could you please also add a 
response on the clarifications I had above.
{quote}
I haven't forgotten this part, Amit.  But currently no encoding is being done.  
That's not the approach that was taken.  I am not convinced yet that it is 
needed or that we want to tie blobs tightly to the repository that wrote them.

I'd like to first settle on an approach to this GC issue and then see if that 
additional step is actually required.

> CompositeDataStore - ReadOnly/ReadWrite Delegate Support
> 
>
> Key: OAK-7083
> URL: https://issues.apache.org/jira/browse/OAK-7083
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: blob, blob-cloud, blob-cloud-azure, blob-plugins
>Reporter: Matt Ryan
>Assignee: Matt Ryan
>Priority: Major
>
> Support a specific composite data store use case, which is the following:
> * One instance uses no composite data store, but instead is using a single 
> standard Oak data store (e.g. FileDataStore)
> * Another instance is created by snapshotting the first instance node store, 
> and then uses a composite data store to refer to the first instance's data 
> store read-only, and refers to a second data store as a writable data store
> One way this can be used is in creating a test or staging instance from a 
> production instance.  At creation, the test instance will look like 
> production, but any changes made to the test instance do not affect 
> production.  The test instance can be quickly created from production by 
> cloning only the node store, and not requiring a copy of all the data in the 
> data store.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (OAK-7283) Clarify usage of index-definitions-file and index-paths params when used in conjuction

2018-02-23 Thread Vikas Saurabh (JIRA)

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

Vikas Saurabh updated OAK-7283:
---
Description: 
Currently oak-run out of band indexing documentation \[0] says that 
{{--index-paths}} is a required parameter.

But, with experimental usage, it seems that the paths to index is decided by 
joining list from {{\-\-index\-paths}} (if provided) and paths listed in file 
mentioned by {{--index-defnitions-file}} (if provided).
At least on of those parameters must be provided (afaics).

_Disclaimer_: The title of the issue could be a bit mis-leading by using 
conjuction

\[0]: 
https://jackrabbit.apache.org/oak/docs/query/oak-run-indexing.html#out-of-band-indexing

  was:
Currently oak-run out of band indexing documentation \[0] says that 
{{--index-paths}} is a required parameter.

But, with experimental usage, it seems that the paths to index is decided by 
joining list from {{--index-paths}} (if provided) and paths listed in file 
mentioned by {{--index-defnitions-file}} (if provided).
At least on of those parameters must be provided (afaics).

_Disclaimer_: The title of the issue could be a bit mis-leading by using 
conjuction

\[0]: 
https://jackrabbit.apache.org/oak/docs/query/oak-run-indexing.html#out-of-band-indexing


> Clarify usage of index-definitions-file and index-paths params when used in 
> conjuction
> --
>
> Key: OAK-7283
> URL: https://issues.apache.org/jira/browse/OAK-7283
> Project: Jackrabbit Oak
>  Issue Type: Documentation
>Reporter: Vikas Saurabh
>Priority: Major
>
> Currently oak-run out of band indexing documentation \[0] says that 
> {{--index-paths}} is a required parameter.
> But, with experimental usage, it seems that the paths to index is decided by 
> joining list from {{\-\-index\-paths}} (if provided) and paths listed in file 
> mentioned by {{--index-defnitions-file}} (if provided).
> At least on of those parameters must be provided (afaics).
> _Disclaimer_: The title of the issue could be a bit mis-leading by using 
> conjuction
> \[0]: 
> https://jackrabbit.apache.org/oak/docs/query/oak-run-indexing.html#out-of-band-indexing



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7283) Clarify usage of index-definitions-file and index-paths params when used in conjuction

2018-02-23 Thread Vikas Saurabh (JIRA)

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

Vikas Saurabh commented on OAK-7283:


Btw, imo, if {{--index-paths}} is provided then that's the only list that must 
be used - it kind of makes reindexing process simpler by first preparing all 
defs in a file and then reindex only a subset of those. (I understand that's a 
behavior change... just that what felt more intuitive to me).

> Clarify usage of index-definitions-file and index-paths params when used in 
> conjuction
> --
>
> Key: OAK-7283
> URL: https://issues.apache.org/jira/browse/OAK-7283
> Project: Jackrabbit Oak
>  Issue Type: Documentation
>Reporter: Vikas Saurabh
>Priority: Major
>
> Currently oak-run out of band indexing documentation \[0] says that 
> {{--index-paths}} is a required parameter.
> But, with experimental usage, it seems that the paths to index is decided by 
> joining list from {{--index-paths}} (if provided) and paths listed in file 
> mentioned by {{--index-defnitions-file}} (if provided).
> At least on of those parameters must be provided (afaics).
> _Disclaimer_: The title of the issue could be a bit mis-leading by using 
> conjuction
> \[0]: 
> https://jackrabbit.apache.org/oak/docs/query/oak-run-indexing.html#out-of-band-indexing



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7283) Clarify usage of index-definitions-file and index-paths params when used in conjuction

2018-02-23 Thread Vikas Saurabh (JIRA)

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

Vikas Saurabh commented on OAK-7283:


[~chetanm], could you please review this issue and update the doc as you see 
fit?

> Clarify usage of index-definitions-file and index-paths params when used in 
> conjuction
> --
>
> Key: OAK-7283
> URL: https://issues.apache.org/jira/browse/OAK-7283
> Project: Jackrabbit Oak
>  Issue Type: Documentation
>Reporter: Vikas Saurabh
>Priority: Major
>
> Currently oak-run out of band indexing documentation \[0] says that 
> {{--index-paths}} is a required parameter.
> But, with experimental usage, it seems that the paths to index is decided by 
> joining list from {{--index-paths}} (if provided) and paths listed in file 
> mentioned by {{--index-defnitions-file}} (if provided).
> At least on of those parameters must be provided (afaics).
> _Disclaimer_: The title of the issue could be a bit mis-leading by using 
> conjuction
> \[0]: 
> https://jackrabbit.apache.org/oak/docs/query/oak-run-indexing.html#out-of-band-indexing



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (OAK-7283) Clarify usage of index-definitions-file and index-paths params when used in conjuction

2018-02-23 Thread Vikas Saurabh (JIRA)
Vikas Saurabh created OAK-7283:
--

 Summary: Clarify usage of index-definitions-file and index-paths 
params when used in conjuction
 Key: OAK-7283
 URL: https://issues.apache.org/jira/browse/OAK-7283
 Project: Jackrabbit Oak
  Issue Type: Documentation
Reporter: Vikas Saurabh


Currently oak-run out of band indexing documentation \[0] says that 
{{--index-paths}} is a required parameter.

But, with experimental usage, it seems that the paths to index is decided by 
joining list from {{--index-paths}} (if provided) and paths listed in file 
mentioned by {{--index-defnitions-file}} (if provided).
At least on of those parameters must be provided (afaics).

_Disclaimer_: The title of the issue could be a bit mis-leading by using 
conjuction

\[0]: 
https://jackrabbit.apache.org/oak/docs/query/oak-run-indexing.html#out-of-band-indexing



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7282) RDB: enable default continuous revision GC

2018-02-23 Thread Julian Reschke (JIRA)

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

Julian Reschke commented on OAK-7282:
-

Potential change 
https://issues.apache.org/jira/secure/attachment/12911739/OAK-7282.diff which 
already seems to work.

[~mreutegg] - is there something else (besides documentation) that needs to be 
done?

> RDB: enable default continuous revision GC
> --
>
> Key: OAK-7282
> URL: https://issues.apache.org/jira/browse/OAK-7282
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk, rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Major
> Fix For: 1.10
>
> Attachments: OAK-7282.diff
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (OAK-7282) RDB: enable default continuous revision GC

2018-02-23 Thread Julian Reschke (JIRA)

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

Julian Reschke updated OAK-7282:

Attachment: OAK-7282.diff

> RDB: enable default continuous revision GC
> --
>
> Key: OAK-7282
> URL: https://issues.apache.org/jira/browse/OAK-7282
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk, rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Major
> Fix For: 1.10
>
> Attachments: OAK-7282.diff
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (OAK-7202) RDB: potential optimization - avoid creating strings and byte arrays for serialization

2018-02-23 Thread Julian Reschke (JIRA)

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

Julian Reschke updated OAK-7202:

Summary: RDB: potential optimization - avoid creating strings and byte 
arrays for serialization  (was: RDB: potential optimization - avoid creatring 
strings and byte arrays for serialization)

> RDB: potential optimization - avoid creating strings and byte arrays for 
> serialization
> --
>
> Key: OAK-7202
> URL: https://issues.apache.org/jira/browse/OAK-7202
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Priority: Minor
> Attachments: OAK-7202.diff
>
>
> We might be able avoid some temprary objects by changing the serializer to 
> return {{StringBuilder}} or {{CharSequence}} instances instead of 
> {{Strings}}. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (OAK-7282) RDB: enable default continuous revision GC

2018-02-23 Thread Julian Reschke (JIRA)
Julian Reschke created OAK-7282:
---

 Summary: RDB: enable default continuous revision GC
 Key: OAK-7282
 URL: https://issues.apache.org/jira/browse/OAK-7282
 Project: Jackrabbit Oak
  Issue Type: Task
  Components: documentmk, rdbmk
Reporter: Julian Reschke
Assignee: Julian Reschke
 Fix For: 1.10






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7281) DocumentStore: long path handling looses information when strings are invalid

2018-02-23 Thread Julian Reschke (JIRA)

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

Julian Reschke commented on OAK-7281:
-

https://issues.apache.org/jira/secure/attachment/12911721/OAK-7281.diff 
modifies {{Utils}} to use the non-permissive encoder, and also takes advantage 
of not having to create byte arrays everywhere.

> DocumentStore: long path handling looses information when strings are invalid
> -
>
> Key: OAK-7281
> URL: https://issues.apache.org/jira/browse/OAK-7281
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: documentmk
>Reporter: Julian Reschke
>Priority: Minor
> Attachments: OAK-7281.diff
>
>
> The various methods related to long paths in 
> {{org.apache.jackrabbit.oak.plugins.document.util.Utils}} use 
> {{String.getBytes()}} which will map invalid inputs to the same replacement 
> character. Thus multiple long paths might map to the same hash.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (OAK-7281) DocumentStore: long path handling looses information when strings are invalid

2018-02-23 Thread Julian Reschke (JIRA)

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

Julian Reschke updated OAK-7281:

Attachment: OAK-7281.diff

> DocumentStore: long path handling looses information when strings are invalid
> -
>
> Key: OAK-7281
> URL: https://issues.apache.org/jira/browse/OAK-7281
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: documentmk
>Reporter: Julian Reschke
>Priority: Minor
> Attachments: OAK-7281.diff
>
>
> The various methods related to long paths in 
> {{org.apache.jackrabbit.oak.plugins.document.util.Utils}} use 
> {{String.getBytes()}} which will map invalid inputs to the same replacement 
> character. Thus multiple long paths might map to the same hash.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (OAK-7281) DocumentStore: long path handling looses information when strings are invalid

2018-02-23 Thread Julian Reschke (JIRA)
Julian Reschke created OAK-7281:
---

 Summary: DocumentStore: long path handling looses information when 
strings are invalid
 Key: OAK-7281
 URL: https://issues.apache.org/jira/browse/OAK-7281
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: documentmk
Reporter: Julian Reschke


The various methods related to long paths in 
{{org.apache.jackrabbit.oak.plugins.document.util.Utils}} use 
{{String.getBytes()}} which will map invalid inputs to the same replacement 
character. Thus multiple long paths might map to the same hash.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7276) Build Jackrabbit Oak #1256 failed

2018-02-23 Thread Hudson (JIRA)

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

Hudson commented on OAK-7276:
-

Previously failing build now is OK.
 Passed run: [Jackrabbit Oak 
#1260|https://builds.apache.org/job/Jackrabbit%20Oak/1260/] [console 
log|https://builds.apache.org/job/Jackrabbit%20Oak/1260/console]

> Build Jackrabbit Oak #1256 failed
> -
>
> Key: OAK-7276
> URL: https://issues.apache.org/jira/browse/OAK-7276
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: continuous integration
>Reporter: Hudson
>Priority: Major
>
> No description is provided
> The build Jackrabbit Oak #1256 has failed.
> First failed run: [Jackrabbit Oak 
> #1256|https://builds.apache.org/job/Jackrabbit%20Oak/1256/] [console 
> log|https://builds.apache.org/job/Jackrabbit%20Oak/1256/console]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7225) Replace AtomicCounter Supplier

2018-02-23 Thread Julian Reschke (JIRA)

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

Julian Reschke commented on OAK-7225:
-

OK, thanks for the explanation. So go ahead and commit :-).

> Replace AtomicCounter Supplier
> --
>
> Key: OAK-7225
> URL: https://issues.apache.org/jira/browse/OAK-7225
> Project: Jackrabbit Oak
>  Issue Type: Sub-task
>  Components: core
>Affects Versions: 1.4.0, 1.6.0
>Reporter: Davide Giannella
>Assignee: Davide Giannella
>Priority: Major
> Attachments: OAK-7225-0.diff
>
>
> In the 
> [AtomicCounter|https://github.com/apache/jackrabbit-oak/blob/7a7aa1e5d4f53f5bfb410f58264c237b288f5c74/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java#L121]
>  we use guava's Supplier which should be trivially replaced by the JDK8 
> [java.util.function.Supplier|https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html].
> In case of backports to Oak 1.4, and therefore Java7 it should be possible to 
> workaround the FunctionalInterface with a utility class.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7225) Replace AtomicCounter Supplier

2018-02-23 Thread Davide Giannella (JIRA)

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

Davide Giannella commented on OAK-7225:
---

It's not public API but is used during repository construction, when you 
register you want to have an atomic counter functionality. So it's kind-of 
middle-ground between public and private. 

IMO replacing with standard java will help us in the future in case anything 
change on the guava side, and the change if you can see it's very trivial with 
very low risk.

Tell me if you have anything against the patch, otherwise I will commit it next 
week.

Getting rid of guava completely was definitely out of scope but as I was 
investigating, I thought, let me see what it would take. Eventually the less we 
depends on external library the less the impact a change in those will have on 
us.

> Replace AtomicCounter Supplier
> --
>
> Key: OAK-7225
> URL: https://issues.apache.org/jira/browse/OAK-7225
> Project: Jackrabbit Oak
>  Issue Type: Sub-task
>  Components: core
>Affects Versions: 1.4.0, 1.6.0
>Reporter: Davide Giannella
>Assignee: Davide Giannella
>Priority: Major
> Attachments: OAK-7225-0.diff
>
>
> In the 
> [AtomicCounter|https://github.com/apache/jackrabbit-oak/blob/7a7aa1e5d4f53f5bfb410f58264c237b288f5c74/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java#L121]
>  we use guava's Supplier which should be trivially replaced by the JDK8 
> [java.util.function.Supplier|https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html].
> In case of backports to Oak 1.4, and therefore Java7 it should be possible to 
> workaround the FunctionalInterface with a utility class.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (OAK-7280) Remove superfluous methods from SegmentWriter

2018-02-23 Thread Francesco Mari (JIRA)

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

Francesco Mari commented on OAK-7280:
-

Work in progress in [this branch on 
GithHub|https://github.com/francescomari/jackrabbit-oak/tree/OAK-7280]. 
[~mduerig], [~dulceanu], can you please review?

> Remove superfluous methods from SegmentWriter
> -
>
> Key: OAK-7280
> URL: https://issues.apache.org/jira/browse/OAK-7280
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: segment-tar
>Reporter: Francesco Mari
>Assignee: Francesco Mari
>Priority: Major
> Fix For: 1.10
>
>
> Some methods in {{SegmentWriter}} are only used in test code. Production code 
> works only on a much smaller subset of the methods exposed by 
> {{SegmentWriter}}. As such, the superfluous methods should be removed and the 
> tests adapted.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)