Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.2.0
-
None
-
None
Description
Make use of the TServerEventHandler in Thrift that can give you sessions tied to Thrift connections. In the every call to Thrift always reset the IndexReaders in the session except for when a query is followed by a fetch with locationIds happens. That's when the controller issues a query then after it has the top answers from all the shards in the table are calculated, it fetches the data.
The reason we need to do this is because in between those 2 calls the indexreader could have been refreshed from the writer, and thus the lucene doc ids could changed. This could cause the fetch to fetch the wrong data back to the controller.