Skip to content

cloudtm/cloudtm-auto-placer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloud-TM project

#Cloud-TM Auto Placer

This package provides a demonstration of Auto Placer self-tunning. The requirement to run are:

  • Maven (3.0.x)
  • Java 1.6.x
  • Apache Web Server with PHP (optional, only if you want to see the system performance in real time plots)

##Description

This software package demonstrates the advantage of using the auto placer optimization to improve the system's performance. The main goal is to optimize the system performance by adapting the keys location to the best place. By doing this, it is possible to reduce the communication costs avoiding fetch the data remotely.

The software package is configured to a read dominant workload and the data access pattern is described by 90% of the time, it chooses a key from a subset of keys (making this subset to be moved).

At each minute, the auto-placer optimization is triggered. Then, it checks the local and remote keys accesses and tries to move them to a best location.

Cloud-TM project

##How to run it

###Compilation

Execute the following commands to compile and create the distribution folder:

# clone the repository by doing git clone <url>
$ cd cloudtm-auto-placer
$ export WORKING_DIR=`pwd`
$ ./dist.sh

###Configuration: CSV Reporter (with Apache Web Server)

  1. copy the www/ folder to you apache HTML folder

    (important!) make sure you have write permission in that folder

    $ #assuming your apache web server is getting the HMTL from /var/www
    $ export WEB=/var/www/example;
    $ mkdir ${WEB}
    $ cp -r ${WORKING_DIR}/www/* ${WEB}
    $ chmod -R +w ${WEB}
    
  2. configure the csv reporter by editing the file dist/conf/config.properties

    reporter.ips - add here the hostname and the JMX port (by default 9998) of the machines to use separated by a comma.

    reporter.output_file - the output file. Assuming location in 1.set the property to /var/www/example/current/reporter.csv

    reporter.updateInterval - the update interval in seconds. In each updateInterval seconds it adds a new line in the output_file

###Configuration: CSV Reporter (without Apache Web Server)

  1. configure the csv reporter by editing the file dist/conf/config.properties

    reporter.ips - add here the hostname and the JMX port (by default 9998) of the machines to use

    reporter.output_file - the output file path (for example /tmp/reporter.csv)

    reporter.updateInterval - the update interval in seconds. In each updateInterval seconds it adds a new line in the output_file

###Configuration: Radargun and Infinispan

  1. configure the master machine. This example we have a master process where each node synchronizes to run the example. Edit the file dist/conf/benchmark.xml and set the bindAddress with the hostname or IP of the master.

  2. configure the Gossip Router. In order to the Infinispan instance to see each other, you need to configure the gossip router. The gossip router is started automatically in the master node. You need to set the hostname or IP in dist/plugins/infinispan52cloudtm/conf/jgroups/jgroups.xml and set the initial_hosts in TCPGOSSIP tag.

  3. if your machine does not support the C5.0 version provided (it is compiled for Linux) you can avoid using the machine learner by setting the property objectLookupFactory (dataPlacement tag in dist/plugins/infinispan52cloudtm/conf/ispn.xml) to org.infinispan.dataplacement.hm.HashMapObjectLookupFactory

###Running the benchmark

  1. copy the dist folder to all the machines to a common location

    $ for machine in <list of IP or hostnames>; do scp -r ${WORKING_DIR}/dist/ <username>@${machine}:/tmp/; done

  2. go to the master machine and execute the following

    $ ssh [username]>@[master machine IP or hostname]
    $ cd /tmp/dist/
    $ ./bin/benchmark.sh -i [number of nodes] [list of hostnames or IP addresses]
    
  3. If you have the apache web server installed, point your browser to http://<master machine IP or hostname>/example Otherwise, check the file defined in reporter.output_file

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published