hongzimao / pensieve

Neural Adaptive Video Streaming with Pensieve (SIGCOMM '17)
http://web.mit.edu/pensieve/
MIT License
516 stars 279 forks source link

Generate cooked traces #129

Closed ali1hammoud closed 3 years ago

ali1hammoud commented 3 years ago

Please can you provide us with the code of converting the traces raw data to the format of [timestamp (s) throughput(Mbit/s)]. Or just explain how?

hongzimao commented 3 years ago

I think each trace folder has an example code converting raw trace to mahimahi format. Mahimahi format is described in https://github.com/hongzimao/pensieve/blob/master/traces/README.md. You can calculate the throughput in a predefined window (e.g., every second a value). Then you can use these windows to generate the simulation format. Hope this helps.

ali1hammoud commented 3 years ago

You can calculate the throughput in a predefined window (e.g., every second a value). Then you can use these windows to generate the simulation format.

can you explain more, I just didn't understand. you say we are using the codes in traces folder to generate the mahimahi format, then we use these files to generate the simulation format? can you give me the code for that, or just more explanation.

hongzimao commented 3 years ago

Ok so you can use the code to generate mahimahi trace first. The format of mahimahi trace is the following.

Each line gives a timestamp in milliseconds (from the beginning of the trace) and it represents an opportunity for one 1500-byte packet.

So from the trace you can count how many bytes are send in a second. For example, mahimahi trace gives you, line 1: 1, line 2: 1, line 3: 1, ..., line 1000: 1, this means there are 1500 1000 bytes got sent in a 1 second interval. This tells you the Mbit/sec for that 1 second window. You can fill it in the simulation trace. Another example, mahimahi line 1: 5, line 2: 5, ..., line 200: 5. This means you send 1500 200 bytes in a one second interval. Basically you add these numbers until they hit 1000. This gives you how many 1500 bytes are sent in one second. Hope these examples are sufficient.

ali1hammoud commented 3 years ago

thank you very much, that's so helpful.