cmusatyalab / elijah-cloudlet

Elijah cloudlet system
http://elijah.cs.cmu.edu/
43 stars 13 forks source link

Pipelining #21

Closed HelloWorldLiWenjie closed 10 years ago

HelloWorldLiWenjie commented 10 years ago

Thank you for your previous answer.

I notice that pipelining is an important method listed in your paper. I am just very curious how to implement in the python code since i cannot find it. Do you have any suggestion on which part I should pay more attention to? Thank you very much

krha commented 10 years ago

Hi @HelloWorldLiWenjie

It is implemented at at _handle_synthesis method in $HOME/elijah/provisioning/server.py file

At _handle_synthesis method, NetworkStepThread, DecompStepProc, synthesis.recover_launchVM() are independent thread(or process) and they are connected using Queue(or Pipe). For example, In NetworkStepThread, it download VM overlay blob as a chunk granularity and pass it to the DecompStepProc. Therefore, decompression can be parallel while the downloading VM overlay.

You can compare _handle_synthesis (pipelined) and synthesis method ad synthesis.py (sequential) file to see how pipelining is implemented.