[ 
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)

Reply via email to