From oak-dev-return-1677-apmail-jackrabbit-oak-dev-archive=jackrabbit.apache.org@jackrabbit.apache.org Wed Jul 4 17:53:35 2012 Return-Path: X-Original-To: apmail-jackrabbit-oak-dev-archive@minotaur.apache.org Delivered-To: apmail-jackrabbit-oak-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3A67391B7 for ; Wed, 4 Jul 2012 17:53:35 +0000 (UTC) Received: (qmail 17840 invoked by uid 500); 4 Jul 2012 17:53:35 -0000 Delivered-To: apmail-jackrabbit-oak-dev-archive@jackrabbit.apache.org Received: (qmail 17792 invoked by uid 500); 4 Jul 2012 17:53:35 -0000 Mailing-List: contact oak-dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: oak-dev@jackrabbit.apache.org Delivered-To: mailing list oak-dev@jackrabbit.apache.org Received: (qmail 17777 invoked by uid 99); 4 Jul 2012 17:53:35 -0000 Received: from issues-vm.apache.org (HELO issues-vm) (140.211.11.160) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Jul 2012 17:53:35 +0000 Received: from isssues-vm.apache.org (localhost [127.0.0.1]) by issues-vm (Postfix) with ESMTP id 9A9E1142850 for ; Wed, 4 Jul 2012 17:53:34 +0000 (UTC) Date: Wed, 4 Jul 2012 17:53:34 +0000 (UTC) From: "Jukka Zitting (JIRA)" To: oak-dev@jackrabbit.apache.org Message-ID: <1993161977.3840.1341424414635.JavaMail.jiratomcat@issues-vm> In-Reply-To: <1329110594.34.1337865475698.JavaMail.jiratomcat@issues-vm> Subject: [jira] [Comment Edited] (OAK-114) MicroKernel API: specify retention policy for old revisions MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406637#comment-13406637 ] Jukka Zitting edited comment on OAK-114 at 7/4/12 5:53 PM: ----------------------------------------------------------- bq. i can't follow this argument Here's a snippet of code that illustrates Michael's point: {code} String revision = mk.getHeadRevision(); mk.commit(...); // Could occur in another thread TimeUnit.MINUTES.sleep(5); // Could be any delay <10mins, or no delay at all mk.getNodes("/", revision, ...); {code} Say the {{revision}} returned from the first call was committed something like an hour ago. Then by the time the {{getNodes}} call is reached it can be that the garbage collector has already removed that revision since it's already older than 10 minutes and it isn't anymore the latest revision in the repository. If that problem isn't fixed, a client can't make any reasonable assumptions about how long it can expect a particular revision to stay alive. The only way for a client to guarantee that it can see a given revision for at least the next 10 minutes would be for it to directly commit that revision, but that's definitely not something we want read-only clients to be doing. was (Author: jukkaz): bq. i can't follow this argument Here's a snippet of code that illustrates Michael's point: {code} String revision = mk.getHeadRevision(); mk.commit(...); // Could occur in another thread TimeUnit.MINUTES.sleep(5); // Could be any delay <10mins, or no delay at all mk.getNodes("/", revision, ...); {code} Say the {{revision}} returned from the first call was committed something like an hour ago. Then by the time the {{getNodes}} call is reached it can be that the garbage collector has already removed that revision since it's already older than 10ms and it isn't the latest revision in the repository. If that problem isn't fixed, a client can't make any reasonable assumptions about how long it can expect a particular revision to stay alive. The only way for a client to guarantee that it can see a given revision for at least the next 10 minutes would be for it to directly commit that revision, but that's definitely not something we want read-only clients to be doing. > MicroKernel API: specify retention policy for old revisions > ----------------------------------------------------------- > > Key: OAK-114 > URL: https://issues.apache.org/jira/browse/OAK-114 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: mk > Reporter: Stefan Guggisberg > Assignee: Stefan Guggisberg > Attachments: OAK-114.patch > > > the MicroKernel API javadoc should specify the minimal guaranteed retention period for old revisions. -- 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