static internal SingletonVersionDb MakeVersionDb(int concurrency) { var versionDb = SingletonVersionDb.Instance(concurrency); versionDb.CreateVersionTable(YCSB_TABLE); return(versionDb); }
static SingletonVersionDb MakeSingletonVersionDb(int concurrency) { Console.WriteLine("Initializing SingletonVersionDb"); var versionDb = SingletonVersionDb.Instance(concurrency); return(versionDb); }
public SingletonExecution( SingletonVersionDb versionDb, int workerId) : base(versionDb, workerId) { this.objectPools = SingletonExecution.GetObjectPoolRefs(versionDb, workerId); }
GetObjectPoolRefs(SingletonVersionDb versionDb, int workerId) { var poolRefs = new CachableObjectPool[TpccTable.allTypes.Length]; foreach (TableType t in TpccTable.AllUsedTypes) { poolRefs[(int)t] = SingletonExecution.GetLocalObjectPool( versionDb.GetVersionTable(t.Name()), workerId); } return(poolRefs); }
static void LoadYcsbData(SingletonVersionDb versionDb, int recordCount) { TransactionExecution txExec = versionDb.MakeTxExec(); for (int i = 0; i < recordCount; ++i) { txExec.Reset(); if (!txExec.Insert(i, YcsbHelper.NewPayload()).IsAborted()) { txExec.Commit(); } } }
/// <summary> /// For YCSB sync benchmark test /// </summary> static void YCSBTest() { const int workerCount = 4; // 4; const int taskCountPerWorker = 2000000; // 50000; const string dataFile = "ycsb_data_lg_r.in"; const string operationFile = "ycsb_ops_lg_r.in"; // REDIS VERSION DB // VersionDb versionDb = RedisVersionDb.Instance; // SINGLETON VERSION DB VersionDb versionDb = SingletonVersionDb.Instance(); YCSBBenchmarkTest test = new YCSBBenchmarkTest(workerCount, taskCountPerWorker, versionDb); test.Setup(dataFile, operationFile); test.Run(); test.Stats(); }
static void SingletonTpccBenchmarkWithGlobalConfig() { BenchmarkConfig config = BenchmarkConfig.globalConfig; SingletonVersionDb versionDb = MakeSingletonVersionDb(config.Concurrency); SyncLoadTpccTablesInto( versionDb, FileHelper.DataSetDir(config.TpccFileDir)); var execBuilder = new SingletonExecutionBuilder(versionDb); var benchmark = InitializeBenchmark( execBuilder, config.WorkloadPerWorker, FileHelper.WorkloadDir(config.TpccFileDir), config.PaymentRatio); RunSyncBenchmark(benchmark); }
static BenchResult BenchmarkWithConfigOnce(YcsbConfig config) { // config.Print(); // Console.WriteLine(); var versionDb = YcsbHelper.MakeVersionDb(config.Concurrency); // Console.Write("loading data... "); LoadYcsbData(versionDb, config.RecordCount); // Console.WriteLine("done"); var generator = new YCSBDataGenerator( config.RecordCount, config.ReadRatio, config.Dist, config.ZipfSkew); Func <TransactionExecution, YcsbWorker> workerFactory = txExec => YcsbWorker.Generate( config.WorkerWorkload, config.QueriesPerTx, generator, txExec); // Console.Write("generate workload... "); var benchmark = new YcsbBenchmarkEnv(versionDb, workerFactory); // Console.WriteLine("done"); var result = benchmark.Go(); SingletonVersionDb.DestroyInstance(); return(result); }
public SingletonExecutionBuilder(SingletonVersionDb versionDb) : base(versionDb) { }