Skip to content

Latest commit

 

History

History
387 lines (369 loc) · 18.3 KB

README.md

File metadata and controls

387 lines (369 loc) · 18.3 KB

BG

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.

Authors

Yazeed Alabdulkarim, Sumita Barahmand, and Shahram Ghandeharizadeh

Description

The documentation for this version of BG is similar to the one posted at bgbenchmark.org with the following extensions:

  1. Three decentralized techniques for generating meaningful actions.

  2. Disjoint Database scales superlinearly as a function of nodes.

  3. Integrated Database (Retain and Delegate) maybe more suitable to evaluate certain classes of data stores, see introduction of database lab technical report 2018-01.

  4. A hybrid technique that combines the strengths of Disjoint and Integrated Database.

For a complete description, see database lab technical report 2018-01.

Running this version of BG is similar to the one posted at bgbenchmark.org with the following additional parameters:

Parameter Value Description
benchmarkingmode disjoint, retain, delegate, hybridretain, or hybriddelegate Specifies the technique for generating actions. The default is disjoint
clients IP1:Port1, IP2:Port2,.... List of IP and port pairs for BG clients
numsockets An integer greater than 0 The initial number of TCP sockets to created with every other BG client with Integrated Database and hybrid techniques. The default value is 10

For completeness, we provide a description of all BG parameters below in two tables. The first table lists essential parameters that must be specified when running BG. The second table lists the optional parameters.

Here are the essential parameters that must be specified when running this version of BG:

Parameter Value Description
-db The name of the data store client class Identifies the data store interface layer which is going to be benchmarked
threadcount An integer greater than 0 The simultaneous socialites emulating members issuing requests
maxexecutiontime An integer greater than 0 Identifies the maximum benchmarking execution time in seconds
numclients An integer greater than 0 The number of BG Clients in the system. If not specified numclients=1 will be assumed
machineid An integer greater than or equal to 0 The machineid is the BG Client identifier and should start from 0. It represents the index of this client in the clients’ IP and port list
confperc A value between 0 to 1 The percentage of confirmed friendships among all the friendship relationships created for members
initapproach querydata/deterministic "querydata" instructs BG to query the initial state of the data store before running benchmark. "deterministic" instructs BG to construct the intial state of the data store using information about the load phase. This parameter should be accompanied with resourcecountperuser, friendcountperuser, confper, numloadthreads and useroffset.
friendcountperuser An even integer number greater than or equal to zero The number of friendship relationships per member (This can be confirmed friendships, generated friendships or pending friendships).
resourcecountperuser An integer number greater than or equal to zero The number of resources created by each member
numloadthreads An integer number greater than or equal to zero The number of threads used in the load phase per BG client. This parameter should be accompanied with the initapproach=deterministic parameter.
usercount An integer greater than 0 Number of members in the data store. The members are assigned memberids in a sequential manner.
useroffset An integer number greater than or equal to zero The smallest memberid in the data store. Can be used when using multiple BG Clients to populate the data store. It will be considered as 0 if not specified
zipfianmean A value between 0 to 1, defining the skewness of the dzipfian distribution. If the dzipfian distribution is specified the mean specified by this parameter will be used. The default value is 0.27
warmup An integer greater than or equal to zero The number of warmup operations issued to the data store. These operations are issued before the actual benchmarking phase starts and are not considered in the measurements. The default value for this is 0 operations.
warmupthreads An integer greater than zero Identifies the number of threads to issue the warmup operations
-P Name of the workload file The name of the workload file containing the runtime workload parameters.
requestdistribution uniform/dzipfian/latest Identifies the distribution of the members generating requests.

Here are the optional parameters to customize BG:

Parameter Value Description
AcceptFrdReqSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, LF, VFR, AFR, LF, VFR.

AcceptFriendReqAction A value between 0 to 1

Identifies the portion of requests performing the AFR action.

ViewFrdProfileSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, LF, VP.

ViewSelfProfileSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, VCR.

DeleteCmtOnResSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, VP, VTR ,VCR, DCR, VCR.

DeleteCommentOnResourceAction A value between 0 to 1

Identifies the portion of requests performing the DCR action.

PostCmtOnResSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, VP, VTR ,VCR, PCR, VCR.

expectedlatency A value greater than or equal to 0

The BG client uses the defined expected latency to compute the confidence for the various operations it performs in the benchmarking phase.

exportfile File name

The name of the output file. If the output file is not specified the output will be written to the console.

InviteFrdSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, LF, IF, VFR

ViewCommentsOnResourceAction A value between 0 to 1

Identifies the portion of requests performing the VCR action

ListFriendsAction A value between 0 to 1

Identifies the portion of requests performing the LF action

ViewFriendReqAction A value between 0 to 1

Identifies the portion of requests performing the VFR action

ViewProfileAction A value between 0 to 1

Identifies the portion of requests performing the VP action

ViewTopKResourcesAction A value between 0 to 1

Identifies the portion of requests performing the VTR action

imagesize An integer number greater than 0

Identifies the image size in KB to be inserted for members in the load phase. BG will insert a random set of bytes corresponding to the image size specified for each member as an image. BG always inserts 2KB random bytes as the thumbnail image for the members.

insertimage True/False

Identifies if images will be inserted/retrieved for members or not. These images will be used as thumbnails as well as member profile images.

interarrivaltime An integer greater than or equal to zero

the time between the various user sessions. 0 will be considered if not specified.

InviteFriendAction A value between 0 to 1

Identifies the portion of requests performing the IF action

logdir log directory path

Specifies the directory for the log records. In the benchmarking phase the log files will be created in this directory and will be used in the validation phase.

monitor An integer value greater than or equal to 0

The duration at which the observed throughput is reported to the coordinator. This is used when the BG Client is in the rating mode.

operationcount An integer greater than 0

Number of social operations(actions/sessions) to be performed.

port A valid port

The port number on which the BG clients starts communicating with the BG listener.

PostCommentOnResourceAction A value between 0 to 1

Identifies the portion of requests performing the PCR action.

probs A string containing the various BG client rates separated by “@” and accompanied by a terminating “@”. i.e. If there are 3 clients we will have something similar to 0.3@0.6@0.1@

This is used for multi-node benchmarking. It specifies the rate at which all BG Clients issue request and is used in the generation of fragments for the dzipfian distribution.

ratingmode True/false

If the BG Client is used for rating and needs to coordinate with a coordinator this parameter needs to be set to true.

RejectFrdReqSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, LF, VFR, RFR, LF, VFR.

RejectFriendReqAction A value between 0 to 1

Identifies the portion of requests performing the RFR action.

thinktime An integer greater than or equal to zero

The think time between emulated member clicks. 0 will be considered if not specified.

ThawFrdshipSession A value between 0 to 1

Identifies the portion of requests performing the session containing the following actions in the specified order: VP, VTR, LF, TF, LF.

ThawFriendshipAction A value between 0 to 1

Identifies the portion of requests performing the TF action.

validation.driver database driver

Used when validation using the RDBMS. Identifies the database driver.

validation.passwd database password

Used when validation using the RDBMS. Identifies the database password.

validation.url database url

Used when validation using the RDBMS. Identifies the database URL.

validation.user database username

Used when validation using the RDBMS. Identifies the database username.

validationapproach RDBMS/interval

Identifies the validation approach to be used. The interval option uses the interval tree approach to validate the log records.

validationblock An integer greater than zero

The number of log records validated by each validation thread.

validationthreads An integer greater than zero

Number of simultaneous threads used to validate log records.

enablelogging true/false, enables generation of log records.

If the enablelogging is set to true, log files will be generated for actions which can then be used to compute the amount of stale/unpredictable data.

-load None

Instructs BG to populate the data store.

-loadindex None

Instructs BG to populate the data store and create the appropriate index structures.

-s None

If specified, BG will report throughput and the observed average response time for the operations performed for 10 second windows throughout the benchmark execution.

-schema None

Instructs BG to create the data store schema.

-testdb None

Instructs BG to test the connection to the data store.

-stats None

Instructs BG to query the status of the data store.