You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2016/03/03 18:34:18 UTC
[jira] [Resolved] (CALCITE-1092) Cache FieldDescriptors when
deserializing Protobufs
[ https://issues.apache.org/jira/browse/CALCITE-1092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Josh Elser resolved CALCITE-1092.
---------------------------------
Resolution: Fixed
Fix Version/s: (was: next)
1.7.0
Fixed in https://git1-us-west.apache.org/repos/asf?p=calcite.git;a=commit;h=0de38aaa38e0dc43d21c0b2dac4278c67c1dc24c
> Cache FieldDescriptors when deserializing Protobufs
> ---------------------------------------------------
>
> Key: CALCITE-1092
> URL: https://issues.apache.org/jira/browse/CALCITE-1092
> Project: Calcite
> Issue Type: Sub-task
> Components: avatica
> Reporter: Josh Elser
> Assignee: Josh Elser
> Fix For: 1.7.0
>
>
> To determine if a Protobuf message contains an optional attribute (and not the default value), we need to use the appropriate {{FieldDescriptor}} and call the {{hasField(FieldDescriptor)}} method on the {{Message}}.
> Through some profiling, I've found that we spend a non-zero amount of time in the update path doing HashMap operations. The naive implementation I did the first time around would get the necessary FieldDescriptor for each optional attribute in each deserialization. These descriptors are actually singletons, so we're just wasting a lot of time repeatedly accessing the same object in the HashMap over and over again.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)