Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 72348 invoked from network); 28 Mar 2008 07:58:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 28 Mar 2008 07:58:41 -0000 Received: (qmail 58199 invoked by uid 500); 28 Mar 2008 07:58:39 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 58172 invoked by uid 500); 28 Mar 2008 07:58:39 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 58163 invoked by uid 99); 28 Mar 2008 07:58:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Mar 2008 00:58:39 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Mar 2008 07:57:57 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 55489234C0A8 for ; Fri, 28 Mar 2008 00:56:24 -0700 (PDT) Message-ID: <1826222249.1206690984348.JavaMail.jira@brutus> Date: Fri, 28 Mar 2008 00:56:24 -0700 (PDT) From: "Kristian Waagan (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Created: (DERBY-3575) Optimize client side LOB release mechanism by reducing the number of round-trips MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Optimize client side LOB release mechanism by reducing the number of round-trips -------------------------------------------------------------------------------- Key: DERBY-3575 URL: https://issues.apache.org/jira/browse/DERBY-3575 Project: Derby Issue Type: Improvement Components: Network Client Affects Versions: 10.4.0.0, 10.5.0.0 Reporter: Kristian Waagan Assignee: Kristian Waagan Priority: Minor The current mechanism for freeing LOB locators from the client driver, is to invoke a stored procedure for each LOB locator every time the result set position is changed. This can potentially result in a number of round-trips to the server. The mechanism can easily be optimized by adding a stored procedure that takes a list of LOB locators and frees them all. The level of optimization can be tweaked by changing the timing of the stored procedure invocation, and this must also be balanced with regards to resource consumption on the server. The more LOB locators we collect on the client before we send the release request, the more memory is bound to LOB resources on the server. Possible release points: * on each result set positioning * when a threshold value is reached * on result set close * when Blob/Clob.free is called (problematic, as the Blob/Clob is detached from the result set) There are some compatibility issues to consider, and the client driver will most likely have to implement both the naive and the optimized mechanism. For this reason, it might be good if the release mechanism can be tightly encapsulated (for instance within LOBStateTracker). Note that piggy-backing the locators would be the most effective solution, but it is likely that implementing it requires more time and thus I'm reluctant to do so this close to the release. I'm saying this because we do need a fix to go into 10.4. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.