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); } }
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); } }
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(); }
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); } }
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); } }
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(); }