BG is a benchmark to evaluate performance of a data store for interactive social networking actions and sessions.These actions and sessions either read or update a very small amount of the entire data set.
One may use BG to compute either a Social Action Rating (SoAR) or a Socialites rating of a data store.These ratings compute the number of concurrent actions performed by a system when a fixed percentage of requests (say 95%) observe a latency equal to or lower than a pre-specifid threshold (say 100 msec) with the amount of unpredictable data less than a fixed threshold (say 0.01%) for some fixed duration of time (say 10 minutes). The values in the parantheses are inputs to BG. BG's output is the SoAR and Socialites rating of its target data store.
|M||Number of members in the database|
|Φ||Number of friends per member|
|ρ||Number of resources per member|
|O||Total number of sessions emulated by the benchmark|
|ε||Think time between social actions constituting a session|
|θ||Inter-arrival time between users emulated by a thread|
|α||Percentage of requests with response time ≤ Β|
|Β||Maximum response time observed by α requests|
|Τ||Max % of requests that observe unpredictable data|
|δ||Duration of experiment to rate a system|
|N||Number of BGClients|
BG consists of the following 3 software components:
A coordinator, BGCoord, computes SoAR and Socialites rating of a data store by implementing both an exhaustive and a heuristic search technique. Its input are the characteristics of an experiment, see Table above. It computes the fraction of workload that should be issued by each worker process, named BGClient, and communicates it with that BGClient. BGCoord monitors the progress of each BGClient periodically, aggregates their current response time and throughput, and reports these metrics to BG's visualization deck for display, see Item 3.
A BGClient is slave to BGCoord and performs three key tasks. First, it populates the data store with BG database. Second, it generates its BGCoord specified workload by issuing requests to the data store. Third, it computes the amount of unpredictable data produced by the data store. It transmits key metrics to BGCoord both periodically and at the end of the experiment.
BG Visualization Deck enables a user to specify parameter settings for BGCoord, start, and monitor an experiment.
One may use BGClient as a stand alone component to measure the throughput and average response time of a data store with a fixed number of threads, i.e., Socialites. In this case, BGClient must be provided with the necessary runtime parameters.