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