We have an issue for 4KiB reads.
TwoStageRead:
- DescribeData - 1 IC request+response
- ReadBlob -> EvGet -> requests to 3 VDisks (1 to fetch the data, the other 2 - to 2 possible handoff VDisks)
Total: 4 IC requests+responses
Direct ReadData: just one IC request+response - ReadDataRequest + ReadDataResponse
So whenever the client (filestore-vhost) is the bottleneck, we should move the burden of sending VDisk requests to the tablets. I'll start with a simple setting which would let us disable TwoStageRead for small requests (default threshold == 0 in order not to change the behaviour in current clusters by default). Later on I'll probably change the code to decide which scheme (two- or one- stage read) to use depending on the cpu and network usage at the tablet side.