caching
caching copied to clipboard
implementation of Prediction, Collaborative and Replacement (PCR) caching algorithm for edge computing
Predictive Caching using Association
Full Implementation of A Novel Predictive-Collaborative-Replacement (PCR) Algorithm for MECs
Simulation Experiment
- To run the simulation test
python3 caching/test_files/compare1.py
- The Result can be seen below
Emulation Experiment
- To Carry out the emulation experiment you will need a GNS3 platform
- Setup and download of GNS3 is available here
- To run the C-LSTM
python3 LSTM_caching/predictive_caching.py --n=x --ip=address --result_server=z
where x is the number of MECs deployed, address is the ip address of the MQTT broker, and z is the result server ip - TO run PCR
python3 4proposed.py --n=x --ip=address --name_server=y --result_server=z
where x is the number of MECs deployed, address is the ip address of the MQTT broker, y is the ip address of the name server, and z is the result server ip - The Results can be seen below
Emulation Experiment SETUP and Installation
use the latest docker image ugwuanyi/ubuntu_tf3
and run git pull https://github.com/emylincon/caching
- To run setup on ubuntu run the
ubuntu_setup.sh
- To run setup on alpine run
alpine_setup.sh
Note for alpine use
refere to link on how to install dependencies
Installing FTP in Linux
sudo apt-get install vsftpd
Edit conf
- change to
anonymous_enable=YES
nano /etc/vsftpd.conf
/etc/vsftpd.conf
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=YES
- restart FTP Server
/etc/init.d/vsftpd restart
- Tutorial link to configure in ubuntu
- Tutorial link to configure in alpine
you can use the config file in this dir (vsftpd)
cp vsftpd.conf /etc/
- create directory
/srv/ftp/cache
to be shared by MECs
Content Server
Name Server
To deploy the name server refer to Link
MQTT Broker
To deploy the MQTT broker refer to link
PreBuilt Docker Images
Alpine Image => ugwuanyi/alpine_cache3
Ubuntu Image => ugwuanyi/ubuntu_tf3
Name server => ugwuanyi/nameserver
To Run the Demo
GNS3 Architecture
Follow Along Setup YouTube Video
- start name server
/etc/init.d/nginx start
gunicorn server:app
- start broker
/etc/init.d/mosquitto start
- setup result server
- Pull and run setup
git pull https://github.com/emylincon/caching
cd caching
sudo sh ubuntu_setup.sh
sudo sh LSTM_ubuntu.sh
- install FTP server on result server
sudo apt install vsftpd
cp vsftpd.conf /etc/
/etc/init.d/vsftpd restart
- start FTP server and SSH server on all MECs
/etc/init.d/vsftpd start ; /etc/init.d/ssh start
- copy ssh key from all mecs to the result server
ssh-keygen -t rsa ; ssh-copy-id osboxes@result_server_ip
6: start application
sh clean_up.sh ; cd python3 7demo.py --n=5 --ip=broker_ip --name_server=name_server_ip --result_server=result_server_ip
7: run control
python3 control1.py