[chord] What is 'num_RPCc_in_flight' in filestore?

Emil Sit sit at MIT.EDU
Tue Dec 12 10:20:01 EST 2006


On Tue, 12 December 2006 at 13:08 (+0800), zkfzle wrote:
> filestore sockname -[fls] filename_or_hash num_RPCc_in_flight 
> what is the last parameter num_RPCc_in_flight?
> Is it just a seed?

It is a way for you to statically set the amount of network/disk
parallelism used by filestore; or you can look at it at as a
primitive form of flow control.

filestore chunks the file to be inserted into smaller fixed size
pieces.  The last parameter controls how many of those are inserted
into DHash at a time.  The number 1 will work fine but not take
advantage of any available parallelism; higher numbers will provide
better throughput up to a point.  If you request too much
parallelism, filestore's write rate will exceed the system's accept
rate for writes (either by exceeding some network bottleneck or the
aggregate disk throughput).  At this point, lsd will back-off the
rate at which it releases RPCs into the network and RPCs will start
to get very backlogged on the local lsd.  

If filestore were cleverer, it might try to increase parallelism
(like TCP) until it sees increased delays and then back-off.  Or
lsd could provide some form of explicit congestion notification
to instruct filestore to back-off.

-- 
Emil Sit / MIT CSAIL PDOS / http://pdos.csail.mit.edu/chord/  



More information about the chord mailing list