You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (JIRA)" <ji...@apache.org> on 2014/03/27 08:56:15 UTC
[jira] [Updated] (CAY-1923) Optimize BatchTranslator - use fixed
size array of BatchParameterBinding
[ https://issues.apache.org/jira/browse/CAY-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrus Adamchik updated CAY-1923:
---------------------------------
Description:
The new BatchTranslator has this method:
List<BatchParameterBinding> createBindings(BatchQueryRow row);
The list contents differ from row to row (e.g. due to NULL handling). This means we need to create a new List and new BatchParameterBindings, which results in an inefficiency in the default mode of operation. This also makes crypto-related interception doubly inefficient, as we'll need to compile encryptors for each row individually. So need to batch this somehow. E.g. by allocating a single BatchParameterBinding[], filling it with bindings and then reusing it for each row. Excluded bindings for a given row will be marked with some flag. This will also allow to precompile encryptors in the crypto module.
was:
The new BatchTranslator has this method:
List<BatchParameterBinding> createBindings(BatchQueryRow row);
The list contents differ from row to row (e.g. due to NULL handling). This creates an inefficiency in the default mode of operation (List and BatchParameterBinding are created over and over again in the same tx), and makes crypto interception doubly inefficient, as we'll need to compile encryptors for each row individually. So need to batch this somehow. E.g. by allocating a single BatchParameterBinding[], filling it with bindings and then reusing it for each row. Excluded bindings for a given row will be marked with some flag. This will also allow to precompile encryptors in the crypto module.
> Optimize BatchTranslator - use fixed size array of BatchParameterBinding
> ------------------------------------------------------------------------
>
> Key: CAY-1923
> URL: https://issues.apache.org/jira/browse/CAY-1923
> Project: Cayenne
> Issue Type: Bug
> Reporter: Andrus Adamchik
> Assignee: Andrus Adamchik
> Fix For: 3.2.M2
>
>
> The new BatchTranslator has this method:
> List<BatchParameterBinding> createBindings(BatchQueryRow row);
> The list contents differ from row to row (e.g. due to NULL handling). This means we need to create a new List and new BatchParameterBindings, which results in an inefficiency in the default mode of operation. This also makes crypto-related interception doubly inefficient, as we'll need to compile encryptors for each row individually. So need to batch this somehow. E.g. by allocating a single BatchParameterBinding[], filling it with bindings and then reusing it for each row. Excluded bindings for a given row will be marked with some flag. This will also allow to precompile encryptors in the crypto module.
--
This message was sent by Atlassian JIRA
(v6.2#6252)