Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Threading;
- using System.Threading.Tasks;
- using Neo4j.Driver;
- namespace RequestGenerator {
- class Program {
- static void Main(string[] args) {
- DBStressTest(11519, 11397);
- Console.ReadKey();
- }
- public static void DBStressTest(double box1Id, double box2Id) {
- var query = $@"MATCH (n:Box)
- WHERE n.BoxId = $box1Id XOR n.BoxId = $box2Id
- RETURN n.BoxId limit 1";
- var local = "bolt://localhost";
- var localToken = AuthTokens.Basic("neo4j", "password!");
- var driver = GraphDatabase.Driver(local, localToken);
- var singleStarted = DateTime.UtcNow;
- Console.WriteLine($"::OPERATION STARTED::{singleStarted}");
- for (var index = 0; index < 10; index++) {
- var dict = new Dictionary<string, object>();
- dict.Add("box1Id", box1Id);
- dict.Add("box2Id", box2Id);
- var q = new Query(query, dict);
- var started = DateTime.UtcNow;
- GetSingleAsync(driver, q).Wait();
- var ended = DateTime.UtcNow;
- var timespan = ended - started;
- if (timespan > TimeSpan.FromSeconds(2)) {
- Console.WriteLine($"Slow query: {timespan}! Thread.CurrentThread {Thread.CurrentThread.ManagedThreadId}");
- } else {
- Console.WriteLine($"Nice performance: {timespan}! Thread.CurrentThread {Thread.CurrentThread.ManagedThreadId}");
- }
- }
- var singleThreadEnded = DateTime.UtcNow;
- Console.WriteLine($"SINGLE COMPLETED: {singleThreadEnded - singleStarted}!!!!");
- Parallel.For(0, 10, index => {
- var dict = new Dictionary<string, object>();
- dict.Add("box1Id", box1Id);
- dict.Add("box2Id", box2Id);
- var q = new Query(query, dict);
- var started = DateTime.UtcNow;
- GetSingleAsync(driver, q).Wait();
- var ended = DateTime.UtcNow;
- var timespan = ended - started;
- if (timespan > TimeSpan.FromSeconds(2)) {
- Console.WriteLine($"Slow query: {timespan}! Thread.CurrentThread {Thread.CurrentThread.ManagedThreadId}");
- } else {
- Console.WriteLine($"Nice performance: {timespan}! Thread.CurrentThread {Thread.CurrentThread.ManagedThreadId}");
- }
- });
- var parallelEnded = DateTime.UtcNow;
- Console.WriteLine($"PARALLEL COMPLETED: {parallelEnded - singleThreadEnded}!!!!");
- }
- private static async Task<IRecord> GetSingleAsync(IDriver driver, Query query) {
- using (var session = driver.AsyncSession(o => o.WithDatabase("neo4j").WithDefaultAccessMode(AccessMode.Read))) {
- var r = await session.RunAsync(query);
- return await r.SingleAsync();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement