static internal SingletonVersionDb MakeVersionDb(int concurrency)
        {
            var versionDb = SingletonVersionDb.Instance(concurrency);

            versionDb.CreateVersionTable(YCSB_TABLE);
            return(versionDb);
        }
Exemplo n.º 2
0
        static SingletonVersionDb MakeSingletonVersionDb(int concurrency)
        {
            Console.WriteLine("Initializing SingletonVersionDb");
            var versionDb = SingletonVersionDb.Instance(concurrency);

            return(versionDb);
        }
Exemplo n.º 3
0
 public SingletonExecution(
     SingletonVersionDb versionDb, int workerId)
     : base(versionDb, workerId)
 {
     this.objectPools =
         SingletonExecution.GetObjectPoolRefs(versionDb, workerId);
 }
Exemplo n.º 4
0
        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();
                }
            }
        }
Exemplo n.º 6
0
        /// <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();
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 9
0
 public SingletonExecutionBuilder(SingletonVersionDb versionDb)
     : base(versionDb)
 {
 }