[
https://issues.apache.org/jira/browse/GEODE-6989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Juan Ramos reassigned GEODE-6989:
---------------------------------
Assignee: Juan Ramos
> Use Caching for Already Authorized Methods
> ------------------------------------------
>
> Key: GEODE-6989
> URL: https://issues.apache.org/jira/browse/GEODE-6989
> Project: Geode
> Issue Type: New Feature
> Components: querying
> Reporter: Juan Ramos
> Assignee: Juan Ramos
> Priority: Major
> Labels: GeodeCommons
>
> We already
> [cache|https://github.com/apache/geode/blob/rel/v1.9.0/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledOperation.java#L267-L285]
> created instances of {{MethodDispatch}} to avoid creating them for every
> query. Modify the {{MethodDispatch}} class to remember whether the method was
> allowed by a previous invocation, preventing further calls to the respective
> {{authorizer}} if it was. We also
> [cache|https://github.com/apache/geode/blob/rel/v1.9.0/geode-core/src/main/java/org/apache/geode/cache/query/internal/AttributeDescriptor.java#L148-L170]
> within the {{AttributeDescriptor}} class the member already read by
> reflection for a particular attribute to avoid doing it again and again in
> every query. Modify the {{AttributeDescriptor}} class to remember whether the
> accessor method was allowed by a previous invocation, preventing further
> calls to the respective {{authorizer}} if it was.
> Currently this internal caching is done statically through a static
> {{ConcurrentMap}}, we want something to store this information within the
> {{QueryExecutionContext}} so the authorization logic is executed once per
> query.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)