feat: use two round protocol for cacheable requests
Summarize the changes
- feat: use two round protocol for cacheable requests
- For cacheable requests, we now send only cache required data needed to execute the query if it is in the storage cache. If query is not in the storage cache, storage returns empty result with flag indicating there was a cache miss. Then coordinator sends the second round of requests to replicasets where cache miss happened. It sends the full message there.
- Parameters for required message are now computed without compilation to SyntaxPlan - Fixed parameter order in SyntaxPlan
Ensure that
-
New code is covered by unit and integration tests. -
Related issues would be automatically closed with gitlab's closing pattern ( Closes #1, #2
). -
Public modules are documented (check the rendered version with cargo doc --open
). -
(if PEST grammar is changed) EBNF grammar reflects these changes (check the result with railroad diagram generator.
Next steps
- Cherry-pick to: none / 24.2 / 24.3
- Update sbroad submodule in picodata/picodata.
- (if EBNF grammar is changed) create a follow-up issue in picodata/docs.