RntbdTransportClient service endpoints are no longer restricted to a single channel. They now allocate, acquire, and release channels from a pool. Channels are created on demand and released to the pool immediately after acquisition. This implementation provides most core manageability, performance, and scalability features, including.
Request timeouts
Send/receive hang detection
Channel throttling to more equitably distribute workload
Improved diagnostics, error handling, and metrics throughout the code
One outstanding feature is left to-do: #119, health check requests. I will then turn my attention to performance, reliability, and scalability work.
Issues addressed in this PR:
112
113
114
115
116
Class diagram (a guide to the code)
Code reviewers unfamiliar with the RntbdTransportClient might find this diagram useful as a guide.
Read latency benchmark
Short story: Direct TCP out performed Direct HTTPS by about 9-10%:
RntbdTransportClient
service endpoints are no longer restricted to a single channel. They now allocate, acquire, and release channels from a pool. Channels are created on demand and released to the pool immediately after acquisition. This implementation provides most core manageability, performance, and scalability features, including.One outstanding feature is left to-do: #119, health check requests. I will then turn my attention to performance, reliability, and scalability work.
Issues addressed in this PR:
112
113
114
115
116
Class diagram (a guide to the code)
Code reviewers unfamiliar with the RntbdTransportClient might find this diagram useful as a guide.
Read latency benchmark
Short story: Direct TCP out performed Direct HTTPS by about 9-10%:
Parameters:
Direct TCP
Direct HTTPS
Write Latency Benchmark
Short story: Direct TCP underperformed Direct HTTPS by a little: 1-2%. This is well within a single standard deviation.
Parameters:
concurrency=10 consistency=Eventual operation_count=1000000
Direct TCP
Direct HTTPS