This week, I primarily worked on upgrading our implementation of the video server to make it more suitable for our testing environment. In the previous week, when I changed the server so that it started retrieving the video from an S3 bucket instead of local files, it lost the functionality of being able to retrieve the video in chunks instead of retrieving the entire video. I attempted to solve this problem by querying the video size from the S3 bucket, but it seemed like the video server lacked the permissions to properly query that information. Therefore, since the scalability of being able to query the video size isn’t important to the functionality of the video server in the context of the testing environment, I decided to instead hardcode the video size of the video into the code.
Another way I upgraded the application was by adding a catalog so that users can select multiple videos to play instead of just one. This means that the load on the load balancer can now be greatly varied by requesting videos of different types. A 360p video that is mostly static would not need many requests to fully load, whereas a 1080p video that features an action scene would send many requests to the server. This will make the testing environment much more robust and realistic.
Next week, after the testing environment has been set up, I plan on helping with implementing our own custom load balancing algorithm as well as taking the data that is collected from our user scripts and compiling it in a coherent manner.