Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Plan: 

Set up a Fedora 4 load balanced cluster, perform tests including load-balance read requests across the cluster, nodes joining/leaving the cluster, and throughput/response time comparison of a single Fedora and a cluster.

Description:

Currently the Fedora 4 cluster performance testing was conducted in a single machine [1], and load balanced cluster setup was conducted using Fedora Beta 1 version [2]. After Fedora 4 Beta 2 was released, the version of Modeshape and Infinispan were changed and the existing cluster configuration document does not apply to the new Fedora 4 release. Our plan at VT is to set up a Fedora 4 load balanced cluster using n AWS EC2 instances, where n>=3, to do the following tasks:
  1. Verify the load balanced cluster setup using the updated Modeshape and Infinispan configuration.
  2. Demonstrate the nodes joining and node leaving in the cluster.
  3. Measure the cluster’s throughput and response time
    1. Continue increasing the load until server is unable to handle further requests from the client. 
    2. Exam if the n-node (n >= 2) cluster handles n times as much requests as a single instance
    3. n-JMeter (n=2) clients to send requests in different region/availability zone and measure the response time.
    4. Simulate real world case, 95% read requests and 5% write requests. 
  4. Write up installation document
  5. Write up performance report

Software:

Fedora 4: master branch version (09/18/14) https://github.com/fcrepo4/fcrepo4 

Test Environment:

AWS: EC2 t2.small or medium instances. 
OS: Ubuntu 14.04 LTS,.

Test Procedure:

  1. Verify the load balanced cluster setup using the updated Modeshape and Infinispan configuration.
    1. Following updated configuration files and document to set up Fedora 4 cluster 
    2. Configured the cluster in replication mode
    3. Load objects into one of the instances
    4. Configure Apache mod_jk load balancer to equally balance requests across these three instances.
    5. Use JMeter to send read/write requests.
  2. Demonstrate the nodes joining and node leaving in the cluster.
    1. Create new Fedora instances
    2. Add new instances into cluster
    3. Perform read requests as in Test 1
    4. Remove instances from cluster
    5. Perform read/write requests as in Test 1
  3. Measure the single and cluster’s throughput and response time
    1. Use JMeter to send read /write requests to a single Fedora instances
    2. Compare results with Test 1 and Test 2

Possible variations:

Run EC2 instances in the same or
    1. Use JMeter to send read requests to a Fedora Cluster
  1.  Continue increasing the load until server is unable to handle further requests from the client.
  2. Exam if the n-node (n >= 2) cluster handles n times as much requests as a single instance.
  3. n-JMeter (n=2) clients to send requests in different region/availability zone
  • Different read/write ratio
  • Different file size distributions (mostly small, mostly larger, or mixes)
  • Expand the clustering mode from replicated to invalidation, distributed, and even remote mode. The distributed mode is of particular interest to us since it allows us to use many smaller EC2 instances instead of several large instances.
    1. and measure the response time.
      1. We choose 4 different zone, US-East, US-West, Asia and EU. 
      2. Each zone run 2 JMeters and calculate the average response time.  
    2. Simulate real world case, 95% read requests and 5% write requests. 
      1. One JMeter do write request while another JMeter do read request.
         
    That being said, I'm not overly concerned about these variations at the moment and want to focus on the simplest cases. Just want to point out these variations are interesting and we may want to try them after the baseline tests are done.