FTS: Ensure fresh results from a manual probe request
This patch addresses two main scenarios: 1) Allowing multiple probes both internal and external to reuse the same results when appropriate (ie: piggybacking on previous results). Multiple requests should share the same results if they all request before the start of a new fts loop, and after the results of the previous probe. 2) Ensuring fresh results from an external probe. When a request occurs during a current probe in progress, this request should get fresh results rather "piggybacking" or using the current results. We use similar logic as the checkpointer code to detect whether a probe is in progress with a probe start tick and probe end tick. To request a probe, we send a signal requesting a fts results, then wait for a new loop to start, then wait again for that current loop to finish. This implementation uses a busy wait loop, which includes a short sleep. In the future, we can leverage the upstream conditaion variable implementation which enables us to signal multiple fts notify processes. This was done via a manual cherry-pick from a674b6b3025b9dc56c4cb34b3330f8b7bc1bf757. Co-authored-by: NSoumyadeep Chakraborty <sochakraborty@pivotal.io> Co-authored-by: NKalen Krempely <kkrempely@pivotal.io> Co-authored-by: NDavid Krieger <dkrieger@pivotal.io> Co-authored-by: NTaylor Vesely <tvesely@pivotal.io> Co-Authored-by: NAlexandra Wang <lewang@pivotal.io> Co-Authored-by: NJimmy Yih <jyih@pivotal.io>
Showing
src/backend/fts/README
0 → 100644
想要评论请 注册 或 登录