You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by "Michael Dürig (Created JIRA)" <ji...@apache.org> on 2012/04/03 12:42:23 UTC
[jira] [Created] (OAK-45) Add support for branching and merging of
private copies to MicroKernel
Add support for branching and merging of private copies to MicroKernel
----------------------------------------------------------------------
Key: OAK-45
URL: https://issues.apache.org/jira/browse/OAK-45
Project: Jackrabbit Oak
Issue Type: New Feature
Components: mk
Reporter: Michael Dürig
As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
{code}
String addLotsOfData(MicroKernel mk) {
String baseRevision = mk.getHeadRevision();
String branchRevision = mk.branch(baseRevision);
for (int i = 0; i < 1000000; i++) {
branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
branchRevision, null);
}
return mk.merge(branchRevision, baseRevision); }
{code}
[1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (OAK-45) Add support for branching and merging of
private copies to MicroKernel
Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Guggisberg resolved OAK-45.
----------------------------------
Resolution: Fixed
Fix Version/s: 0.3
there's javadoc, a basic integration test in MicroKernelIT
and an implementation in oak-mk; resolving as fixed
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Assignee: Stefan Guggisberg
> Fix For: 0.3
>
> Attachments: OAK-45__OOME.patch
>
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-45) Add support for branching and merging
of private copies to MicroKernel
Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13261780#comment-13261780 ]
Stefan Guggisberg commented on OAK-45:
--------------------------------------
thanks, will investigate
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Attachments: OAK-45__OOME.patch
>
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-45) Add support for branching and merging
of private copies to MicroKernel
Posted by "Thomas Mueller (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13245248#comment-13245248 ]
Thomas Mueller commented on OAK-45:
-----------------------------------
As also discussed on the list, I'm not sure if that would be a good idea, given it might turn out to be impossible to support efficiently, correctly, and easily on some MicroKernel implementations.
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-45) Add support for branching and merging
of private copies to MicroKernel
Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262564#comment-13262564 ]
Stefan Guggisberg commented on OAK-45:
--------------------------------------
the OOME is not specific to the branch/merge support;
the tests are using the in-mem mk; to avoid the OOME
you can increase the JVM heap size or reduce the number
of commits.
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Attachments: OAK-45__OOME.patch
>
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-45) Add support for branching and merging
of private copies to MicroKernel
Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262566#comment-13262566 ]
Michael Dürig commented on OAK-45:
----------------------------------
I also tried the other implementation. There was no OOME but a severe performance degradation after a couple of 100 commits.
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Attachments: OAK-45__OOME.patch
>
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (OAK-45) Add support for branching and merging of
private copies to MicroKernel
Posted by "Stefan Guggisberg (Assigned) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Guggisberg reassigned OAK-45:
------------------------------------
Assignee: (was: Stefan Guggisberg)
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-45) Add support for branching and merging
of private copies to MicroKernel
Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13261764#comment-13261764 ]
Michael Dürig commented on OAK-45:
----------------------------------
Thank works great generally. However, I get an OOME after a couple of 100 commits to a branch.
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (OAK-45) Add support for branching and merging of
private copies to MicroKernel
Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Guggisberg reassigned OAK-45:
------------------------------------
Assignee: Stefan Guggisberg
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Assignee: Stefan Guggisberg
> Attachments: OAK-45__OOME.patch
>
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (OAK-45) Add support for branching and merging of
private copies to MicroKernel
Posted by "Stefan Guggisberg (Assigned) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Guggisberg reassigned OAK-45:
------------------------------------
Assignee: Stefan Guggisberg
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Assignee: Stefan Guggisberg
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-45) Add support for branching and merging
of private copies to MicroKernel
Posted by "Stefan Guggisberg (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13258308#comment-13258308 ]
Stefan Guggisberg commented on OAK-45:
--------------------------------------
implemented initial support for branch & merge in oak-mk incl. a basic integration test in svn r1328397.
the integration test currently fails with UnsupportedOperationException when using the non-default mk impl
in oak-core.
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Assignee: Stefan Guggisberg
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (OAK-45) Add support for branching and merging of
private copies to MicroKernel
Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dürig updated OAK-45:
-----------------------------
Attachment: OAK-45__OOME.patch
Test case demonstrating the OOME
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Attachments: OAK-45__OOME.patch
>
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-45) Add support for branching and merging
of private copies to MicroKernel
Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262610#comment-13262610 ]
Michael Dürig commented on OAK-45:
----------------------------------
Never mind, then changes from revision 1330811 seems to improve this.
> Add support for branching and merging of private copies to MicroKernel
> ----------------------------------------------------------------------
>
> Key: OAK-45
> URL: https://issues.apache.org/jira/browse/OAK-45
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: mk
> Reporter: Michael Dürig
> Attachments: OAK-45__OOME.patch
>
>
> As discussed on the dev list [1] we should add support to the Microkernel for branching of a private working copy which can be merged back later:
> {code}
> String addLotsOfData(MicroKernel mk) {
> String baseRevision = mk.getHeadRevision();
> String branchRevision = mk.branch(baseRevision);
> for (int i = 0; i < 1000000; i++) {
> branchRevision = mk.commit("/", "+\"node" + i + "\":{}",
> branchRevision, null);
> }
> return mk.merge(branchRevision, baseRevision); }
> {code}
> [1] http://markmail.org/message/jbbut6vzvmmjqonr
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira