Thanks for the detailed explanation Phil. I hadn't thought about the context switches that might slow down flow. I was primarily thinking of something that would be cleaner, and easier to modify and test for different scenarios. If at some point I get around to playing with a flow impl that uses the concurrent state machine framework, I'll open up the discussion again to avoid any of the pitfalls you described.

Cleaner and easier to modify would be great!

I just remembered that there are a couple of test programs in the tree to look at the thread context switch overhead, in case they are helpful to figure out if it is still a concern:

pvfs2/test/io/job/thread-bench2.c
pvfs2/test/io/job/thread-bench3.c

One of those just goes through a bunch of iterations relaying a condition across threads to see how long it takes. The second one does the same thing, except with 2 relays instead of one (to mimic the trove side of things). I haven't run these on a decent machine in years. I will also add a disclaimer that the test programs are old and quite possibly wrong :)

We also have the benefit of your small-io optimization now too, so it isn't quite as critical as it used to be for the flow to be able to keep the latency down on small transfers any more...

-Phil
_______________________________________________
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to