mit-pdos / noria

Fast web applications through dynamic, partially-stateful dataflow
Apache License 2.0
4.99k stars 244 forks source link

Use multi_put for benchmark prepopulation #59

Closed ekmartin closed 6 years ago

ekmartin commented 6 years ago

Doesn't matter too much, but saves a little waiting time.

jonhoo commented 6 years ago

I think we actually specifically want batch_put here, because otherwise we generate a single potentially very large update (e.g., if you used -a 10000000). Maybe the answer is to do multi_put inside of the batch_put... I'm surprised to hear that multi_put is significantly faster than batch_put, as they should both just fill up TCP buffers...

ekmartin commented 6 years ago

Closing this now that batch_put doesn't hang.

jonhoo commented 6 years ago

I think ultimately we'll want batch_put + multi_put. if a batch_put runs for too long without checking for acks, it could totally generate a deadlock. The domain of the base will fill the TCP buffer trying to send more acks, but that buffer will never drain because the sender will block on the domain not reading from the base input. The alternative is to make batch_put occasionally read acks.