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

Alberto Gomez updated GEODE-9774:
---------------------------------
    Description: 
When executing a server function on a partitioned region, if a network hop is 
done during the execution of the function to access data from another server, 
the networkHop thread local variable on the PartitionedRegion instance will be 
set to either 1 or 2. Nevertheless, when the function returns, the variable 
will not be reset leaving a wrong value in it for subsequent requests.

As a result, subsequent requests handled by the same thread that executed the 
previous function will see the networkHop thread local variable with the value 
set previously by the function no matter if a network hop was required or not. 
In case of get/put/destroy/invalidate, the server will return this information 
to the client indicating that it should update the metadata when it should not.

This will cause unnecessary requests from the client to update the metadata 
which could impact very negatively the performance of the system.

  was:
When executing a server function on a partitioned region, if a network hop is 
done during the execution of the function to access data from another server, 
the networkHop thread local variable on the PartitionedRegion instance will be 
set to either 1 or 2. Nevertheless, when the function returns, the variable 
will not be reset leaving a wrong value in it for subsequent requests.

As a result, subsequent requests handled by the same thread that executed the 
previous function will see the networkHop thread local variable with the value 
set previously by the function no matter if a network hop was required or not. 
In case of get/put/destroy/invalidate ,the server will return this information 
to the client indicating that it should update the metadata when it should not.

These will cause unnecessary requests from the client to update the metadata 
which could impact very negatively the performance of the system.


> Function execution on partition region does not clear networkHop on exit
> ------------------------------------------------------------------------
>
>                 Key: GEODE-9774
>                 URL: https://issues.apache.org/jira/browse/GEODE-9774
>             Project: Geode
>          Issue Type: Bug
>          Components: functions
>            Reporter: Alberto Gomez
>            Assignee: Alberto Gomez
>            Priority: Major
>              Labels: needsTriage
>
> When executing a server function on a partitioned region, if a network hop is 
> done during the execution of the function to access data from another server, 
> the networkHop thread local variable on the PartitionedRegion instance will 
> be set to either 1 or 2. Nevertheless, when the function returns, the 
> variable will not be reset leaving a wrong value in it for subsequent 
> requests.
> As a result, subsequent requests handled by the same thread that executed the 
> previous function will see the networkHop thread local variable with the 
> value set previously by the function no matter if a network hop was required 
> or not. In case of get/put/destroy/invalidate, the server will return this 
> information to the client indicating that it should update the metadata when 
> it should not.
> This will cause unnecessary requests from the client to update the metadata 
> which could impact very negatively the performance of the system.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to