Skip to content
yungsters edited this page Sep 14, 2010 · 8 revisions

Welcome to the Rain Workload Toolkit wiki!

Rain is a statistics-based workload generation toolkit that uses parameterized and empirical distributions to model the different classes of workload variations.

To start using Rain, check out the Getting Started page.

Features

  • Highly flexible and customizable workload characterization
    • Supports variations in the amount of load, the mix of operations and variations in data popularity (data hotspots)
    • Application-specific request Generators can easily use parameterized or empirical probability distributions to characterize different variations in load
    • Benchmarks configured by simple JSON configuration files
  • Modular design of the harness
    • Simple Generator API allowing easy integration of application-specific request Generators that target new systems/applications. Example request generator for the Olio Web 2.0 application used in the Cloudstone Benchmark described and evaluated in our tech report (see Related Documents below for more details)
  • Supports closed, open, and partly open loop workload generation
    • Use of the Command pattern (GoF) to implement parameterizable Operations. This design choice allows any thread to execute an Operation opening up the possibility of open loop or partly open-loop workload generation
    • Two thread pools, one containing dedicated load threads based on the maximum number of clients/users to emulate during an experiment and a (possibly smaller) shared thread pool for simulating asynchronous Operation-execution
  • Separation of request generation from request execution
    • This design choice allows Rain to produce traces that can be consumed by a suitable third-party high performance load-delivery client e.g., httperf, if desired or feasible
  • Multi-track load generation
    • Generate a workload that targets multiple applications/tenants in a shared cluster in a single experiment. This feature is specifically to enable evaluating resource allocation strategies for multi-application/multi-tenant scenarios

Related Documents