You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Juan Ramos (Jira)" <ji...@apache.org> on 2019/10/17 10:39:00 UTC

[jira] [Resolved] (GEODE-6989) Use Caching for Already Authorized Methods

     [ https://issues.apache.org/jira/browse/GEODE-6989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juan Ramos resolved GEODE-6989.
-------------------------------
    Fix Version/s: 1.11.0
       Resolution: Fixed

> 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
>             Fix For: 1.11.0
>
>          Time Spent: 4h
>  Remaining Estimate: 0h
>
> 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)