diff --git a/config/stress.conf b/config/stress.conf
index 69e63d465..6ab3d9617 100644
--- a/config/stress.conf
+++ b/config/stress.conf
@@ -24,3 +24,5 @@
 # database recovering is disabled by default
 --snapshot-recover-on-startup=false
 
+# increase query timeout (10 min)
+--query-execution-time-sec=600
diff --git a/tests/stress/continuous_integration b/tests/stress/continuous_integration
index 502129d59..e1347a5db 100755
--- a/tests/stress/continuous_integration
+++ b/tests/stress/continuous_integration
@@ -28,12 +28,12 @@ SMALL_DATASET = [
     },
     {
         "test": "long_running.cpp",
-        "options": ["--vertex-count", "1000", "--edge-count", "1000", "--max-time", "1", "--verify", "20"],
+        "options": ["--vertex-count", "1000", "--edge-count", "5000", "--max-time", "1", "--verify", "20"],
         "timeout": 5,
     },
     {
         "test": "long_running.cpp",
-        "options": ["--vertex-count", "1000", "--edge-count", "1000", "--max-time", "2", "--verify", "30"],
+        "options": ["--vertex-count", "10000", "--edge-count", "50000", "--max-time", "2", "--verify", "30"],
         "timeout": 5,
     },
 ]
@@ -56,13 +56,13 @@ LARGE_DATASET = [
 ] + [
     {
         "test": "long_running.cpp",
-        "options": ["--vertex-count", "100000", "--edge-count", "100000", "--max-time", "5", "--verify", "60"],
+        "options": ["--vertex-count", "10000", "--edge-count", "40000", "--max-time", "5", "--verify", "60"],
         "timeout": 8,
     },
 ] * 6 + [
     {
         "test": "long_running.cpp",
-        "options": ["--vertex-count", "100000", "--edge-count", "20000000", "--max-time", "480", "--verify", "300"],
+        "options": ["--vertex-count", "1000000", "--edge-count", "4000000", "--max-time", "480", "--verify", "300"],
         "timeout": 500,
     },
 ]
diff --git a/tests/stress/long_running.cpp b/tests/stress/long_running.cpp
index 63aa7af2a..8599faeae 100644
--- a/tests/stress/long_running.cpp
+++ b/tests/stress/long_running.cpp
@@ -20,15 +20,17 @@ DEFINE_string(port, "7687", "Server port");
 DEFINE_string(username, "", "Username for the database");
 DEFINE_string(password, "", "Password for the database");
 
-DEFINE_int32(vertex_count, 0, "The average number of vertices in the graph");
-DEFINE_int32(edge_count, 0, "The average number of edges in the graph");
+DEFINE_int32(vertex_count, 0,
+             "The average number of vertices in the graph per worker");
+DEFINE_int32(edge_count, 0,
+             "The average number of edges in the graph per worker");
 DEFINE_int32(prop_count, 5, "The max number of properties on a node");
 DEFINE_uint64(max_queries, 1 << 30, "Maximum number of queries to execute");
 DEFINE_int32(max_time, 1, "Maximum execution time in minutes");
 DEFINE_int32(verify, 0, "Interval (seconds) between checking local info");
 DEFINE_int32(worker_count, 1,
              "The number of workers that operate on the graph independently");
-DEFINE_bool(global_queries, false,
+DEFINE_bool(global_queries, true,
             "If queries that modifiy globally should be executed sometimes");
 
 /**
@@ -83,8 +85,14 @@ class GraphSession {
 
   bool Bernoulli(double p) { return GetRandom() < p; }
 
-  template <typename T>
-  T RandomElement(std::set<T> &data) {
+  uint64_t RandomElement(std::set<uint64_t> &data) {
+    uint64_t min = *data.begin(), max = *data.rbegin();
+    uint64_t val = std::floor(GetRandom() * (max - min) + min);
+    auto it = data.lower_bound(val);
+    return *it;
+  }
+
+  std::string RandomElement(std::set<std::string> &data) {
     uint64_t pos = std::floor(GetRandom() * data.size());
     auto it = data.begin();
     std::advance(it, pos);
@@ -264,8 +272,7 @@ class GraphSession {
 
     // generate report
     std::ostringstream report;
-    report << std::endl
-           << fmt::format("Runner {} graph verification success:", id_)
+    report << fmt::format("Runner {} graph verification success:", id_)
            << std::endl
            << fmt::format("\tExecuted {} queries in {:.2f} seconds",
                           executed_queries_, timer_.Elapsed().count())
@@ -290,14 +297,11 @@ class GraphSession {
 
  public:
   void Run() {
-    uint64_t vertex_count = FLAGS_vertex_count / FLAGS_worker_count;
-    uint64_t edge_count = FLAGS_edge_count / FLAGS_worker_count;
-
     // initial vertex creation
-    CreateVertices(vertex_count);
+    CreateVertices(FLAGS_vertex_count);
 
     // initial edge creation
-    CreateEdges(edge_count);
+    CreateEdges(FLAGS_edge_count);
 
     if (FLAGS_verify > 0) VerifyGraph();
     double last_verify = timer_.Elapsed().count();
@@ -311,8 +315,8 @@ class GraphSession {
         last_verify = timer_.Elapsed().count();
       }
 
-      double ratio_e = (double)edges_.size() / (double)edge_count;
-      double ratio_v = (double)vertices_.size() / (double)vertex_count;
+      double ratio_e = (double)edges_.size() / (double)FLAGS_edge_count;
+      double ratio_v = (double)vertices_.size() / (double)FLAGS_vertex_count;
 
       // try to edit vertices globally
       if (FLAGS_global_queries) {