Our application splits up read requests for multiple range scans to use multiple separate processes that each issue their own separate read requests to improve our parallelization for reads. When we try to use the same read version for each of the individual read requests, we immediately encounter transaction_too_old error, error code 1007. The Coordinator process calls get_read_version()
and then sends the read version number to the Read Worker processes, which will create a transaction and call set_read_version()
before calling get_ranges()
and send the results from the range scan back to the coordinator. The get_ranges()
requests all fail immediately with error code 1007. The elapsed time between the initial call to get_read_version()
and the get_ranges()
request is single digit milliseconds. Every range scan fails every time. Is a read version tied to an individual client connection or any other reason why multiple client connections cannot use the same read version?
Currently using the Rust foundationdb-0.4.2 crate for the client, on linux and testing this locally with the memory storage engine.