This is an python application to implement proactive load balancing using video transcoding as load features
Packages used
1.Python
2.Socket
3.SkLearn
4.Numpy
5.Bluelet
This application is using Support Vector Regression for prediciting the transcoding time
Follow this link for more detail:
1.http://scikit-learn.org/stable/modules/svm.html#svm
2.http://scikit-learn.org/stable/auto_examples/svm/plot_svm_regression.html#example-svm-plot-svm-regression-py
3.https://docs.python.org/2/library/socket.html
4.https://github.com/sampsyo/bluelet
To Implement this
Step 1- Run server1.py server2.py and server3.py pyton file
step 2- Run tough_call.py
Step 3- Run sendfile_client.py
Please read this paper for More informations
http://ieeexplore.ieee.org/xpl/abstractKeywords.jsp?reload=true&arnumber=6890256
The machine learning algorithm uses SVR(support vector regression) for predicting the transcoding time for the videos that client is requesting for to be transcoded . SVR algorithm first trains data to create a regression function . The kernel involved for generating this function is radical base function. For training the kernel we gathered 1000 random points from the original dataset. These random data points are then converted to an numpy array IE an multi dimension array having values converted to the exponential values. These data points are then preprocessed using a scalar function. This scalar function converts the data point to values centered around the origin of the axis. The final dataset and the transcoding time for these final dataset is then trained using the rbf function . This function is then fed with data points sent by the client and the output of this function is the transcoding time.
Using this transcoding time, the load balancer allocates the load to the servers having higher available space and time and continues this process until all the load has been completely divided among the servers.