Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not a Bug
-
1.0.0-beta.1
-
None
-
None
Description
Observing lesser number of GET & SET operations while running transactions as compared to regular workloadA load test .
Also high CPU utilization
Here is a comparison of two load tests with durability set to None .
stats | Transaction Test | KV Load Test |
OPS | ~11000 ops/sec (7748 trans per sec) | ~328880 ops /sec |
cmd_get | ~37000 | ~164440 |
cmd_set | ~70000 | ~164440 |
Throughput | 7748 trans/sec | ~328880 ops/sec |
server side cpu utilization (%) | ~ 90 % | ~90 % |
workload | 1 Transaction = 4 READ + 3 UPDATE | 1 OPS = 1 READ or 1 UPDATE |
workload Distribution | 100% transactions | 50:50 READ:UPDATE |
Cluster Config : 4 Nodes, 2 Replicas , 12 vCPU, 64 GB RAM
Test Config : 10M Items , 1KB docSize
Client Info : YCSB , 1.0.0-beta.1 3.0.0-alpha.6 , Uniform requestdistribution, 480 concurrent workers
WORKLOADTA : Number of ops in Single Transaction 4 , 4 READS, 3 UPDATE, Durability 0
*Table updated with most recent numbers & test config .
Ok, closing it out. It turned into quite a sprawling ticket with various ideas and testing of performance improvements, but the core takeaway is that transactions performance is reasonably close to the maximum currently possible, considering durability performance and the current protocol. There is at least two ways the protocol can be improved in the future, performance-wise, which have been logged separately.