Example #1
0
        public void InsertThenUpdate10KStates()
        {
            InstrumentationContext.Reset();
            const int count         = 10000;
            var       grainStateMap = CreateGrainStateMap();
            var       grains        = new List <Tuple <GrainIdentity, object> >();

            for (int i = 0; i < count; ++i)
            {
                var state = CreateState(i);
                grains.Add(new Tuple <GrainIdentity, object>(RandomIdentity(), state));
            }

            using (var dataManager = new SqlDataManager(logger, grainStateMap, ConnectionString, ShardCredentials, ShardMapDefault))
            {
                var stopwatch = Stopwatch.StartNew();
                var tasks     = grains.Select(grain => dataManager.UpsertStateAsync(grain.Item1, grain.Item2)).ToArray();
                Task.WaitAll(tasks);
                stopwatch.Stop();
                Console.WriteLine(" Insert elapsed: {0}", stopwatch.Elapsed);

                stopwatch = Stopwatch.StartNew();
                tasks     = grains.Select(grain => dataManager.UpsertStateAsync(grain.Item1, grain.Item2)).ToArray();
                Task.WaitAll(tasks);
                stopwatch.Stop();
                Console.WriteLine(" Update elapsed: {0}", stopwatch.Elapsed);
            }
        }
Example #2
0
        public void InsertThenUpdate10KStates()
        {
            InstrumentationContext.Reset();
            const int count = 10000;
            var grainStateMap = CreateGrainStateMap();
            var grains = new List<Tuple<GrainIdentity, object>>();
            for (int i = 0; i < count; ++i)
            {
                var state = CreateState(i);
                grains.Add(new Tuple<GrainIdentity, object>(RandomIdentity(), state));
            }

            using (var dataManager = new SqlDataManager(logger, grainStateMap, ConnectionString, ShardCredentials, ShardMapDefault))
            {
                var stopwatch = Stopwatch.StartNew();
                var tasks = grains.Select(grain => dataManager.UpsertStateAsync(grain.Item1, grain.Item2)).ToArray();
                Task.WaitAll(tasks);
                stopwatch.Stop();
                output.WriteLine(" Insert elapsed: {0}", stopwatch.Elapsed);

                stopwatch = Stopwatch.StartNew();
                tasks = grains.Select(grain => dataManager.UpsertStateAsync(grain.Item1, grain.Item2)).ToArray();
                Task.WaitAll(tasks);
                stopwatch.Stop();
                output.WriteLine(" Update elapsed: {0}", stopwatch.Elapsed);
            }
        }
Example #3
0
        public void OneWriteThenReadState()
        {
            Task.Run(async() =>
            {
                InstrumentationContext.Reset();
                var grainStateMap = CreateGrainStateMap();
                var grainIdentity = RandomIdentity();
                var state         = CreateState();

                using (var dataManager = new SqlDataManager(logger, grainStateMap, ConnectionString, ShardCredentials, ShardMapDefault))
                {
                    var stopwatch = Stopwatch.StartNew();
                    await dataManager.UpsertStateAsync(grainIdentity, state);
                    stopwatch.Stop();
                    Console.WriteLine(" Insert elapsed: {0}", stopwatch.Elapsed);

                    // now read
                    stopwatch  = Stopwatch.StartNew();
                    var state2 = await dataManager.ReadStateAsync(grainIdentity);
                    stopwatch.Stop();
                    Console.WriteLine(" Read elapsed: {0}", stopwatch.Elapsed);
                    Assert.AreEqual(state, state2);
                }
            }).Wait();
        }
Example #4
0
        private void Upsert10KStates(string mapName, int count, BatchingOptions batchingOptions)
        {
            //InstrumentationContext.Reset();
            GrainStateMap grainStateMap = CreateGrainStateMap();
            using (var dataManager = new SqlDataManager(logger, grainStateMap, ConnectionString, ShardCredentials, mapName, batchingOptions))
            {
                Stopwatch stopwatch = Stopwatch.StartNew();
                List<Task> tasks = new List<Task>();
                for (int i = 0; i < count; ++i)
                {
                    var state = CreateState(i);
                    tasks.Add(dataManager.UpsertStateAsync(RandomIdentity(), state));
                }
                Task.WaitAll(tasks.ToArray());
                stopwatch.Stop();

                output.WriteLine(" [{0}] {1} Upserts. {2} max concurrent writes. Elapsed: {3}", mapName, count, batchingOptions.MaxConcurrentWrites, stopwatch.Elapsed);
            }
        }
Example #5
0
        private void Upsert10KStates(string mapName, int count, BatchingOptions batchingOptions)
        {
            //InstrumentationContext.Reset();
            GrainStateMap grainStateMap = CreateGrainStateMap();

            using (var dataManager = new SqlDataManager(logger, grainStateMap, ConnectionString, ShardCredentials, mapName, batchingOptions))
            {
                Stopwatch   stopwatch = Stopwatch.StartNew();
                List <Task> tasks     = new List <Task>();
                for (int i = 0; i < count; ++i)
                {
                    var state = CreateState(i);
                    tasks.Add(dataManager.UpsertStateAsync(RandomIdentity(), state));
                }
                Task.WaitAll(tasks.ToArray());
                stopwatch.Stop();

                Console.WriteLine(" [{0}] {1} Upserts. {2} max concurrent writes. Elapsed: {3}", mapName, count, batchingOptions.MaxConcurrentWrites, stopwatch.Elapsed);
            }
        }
Example #6
0
        public void OneWriteThenReadState()
        {
            Task.Run(async () =>
            {
                InstrumentationContext.Reset();
                var grainStateMap = CreateGrainStateMap();
                var grainIdentity = RandomIdentity();
                var state = CreateState();

                using (var dataManager = new SqlDataManager(logger, grainStateMap, ConnectionString, ShardCredentials, ShardMapDefault))
                {
                    var stopwatch = Stopwatch.StartNew();
                    await dataManager.UpsertStateAsync(grainIdentity, state);
                    stopwatch.Stop();
                    output.WriteLine(" Insert elapsed: {0}", stopwatch.Elapsed);

                    // now read
                    stopwatch = Stopwatch.StartNew();
                    var state2 = await dataManager.ReadStateAsync(grainIdentity);
                    stopwatch.Stop();
                    output.WriteLine(" Read elapsed: {0}", stopwatch.Elapsed);
                    Assert.AreEqual(state, state2);
                }
            }).Wait();
        }