-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/53398/#review154621
-----------------------------------------------------------


Ship it!




Ship It!

- Jason Huynh


On Nov. 2, 2016, 7:26 p.m., Dan Smith wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/53398/
> -----------------------------------------------------------
> 
> (Updated Nov. 2, 2016, 7:26 p.m.)
> 
> 
> Review request for geode, Jason Huynh and nabarun nag.
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> This is a fix for pretty specific race condition
> 1) T1 does a put and gets to the point of calling setIndexBufferTime,
> but hasn't updated the indexes
> 2) T2 starts a query and finds the entry in the index even though the
> value no longer matches the query
> 3) T1 finishes the put
> 4) T2 checks to see if should revaluate the entry, but decides not to
> because based on the SAFE_QUERY_TIME value the entry changed before the
> query started.
> 
> By moving the update to SAFE_QUERY_TIME down, if the an entry
> doesn't need reevaluation based on the SAFE_QUERY_TIME, we know the
> index was updated before the query started.
> 
> There is currently an updateInProgress flag to handle the issue of the
> query executing before the SAFE_QUERY_TIME is updated. If the entry is
> updated, but not the index, the updateInProgress flag will be set.
> 
> 
> Diffs
> -----
> 
>   geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java 
> 360c6a9f444b41a99bec1a896e660bd506d793ff 
> 
> Diff: https://reviews.apache.org/r/53398/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Dan Smith
> 
>

Reply via email to