4 ms·
On the picture Redis tops at 200k/seconds on an instance with 64 cores (r6g), Dragonfly 1400k/seconds, Redis is single threaded DF is not but it only got 7.7x f
by Thaxll 4y ago
On the picture Redis tops at 200k/seconds on an instance with 64 cores (r6g), Dragonfly 1400k/seconds, Redis is single threaded DF is not but it only got 7.7x faster how come?
If you run let say 32 instances of Redis ( not using HT ) with CPU pining will be much faster than DF assuming the data is sharding/clustered.
- jitl 4y agoI assume this is because data is stored in memory, not in a CPU core.
- edmcnulty101 4y agoDoesn't it use the CPU core to put the data to memory though?
- jng 4y agoEach CPU core doesn't have it's own independent channel to memory, there are usually 2-3 channels to DDR memory shared by all cores via multiple intermediate caches (usually shared hierarchically).
- lrem 4y agoI'd guess multi-key operations with keys landing in separate shards.
- romange 4y agoyes
- 867-5309 4y agocore count probably transferred the bottleneck to e.g. memory speed, disk io, .. ?
- ledauphin 4y agoyour conclusion does not follow from the available evidence. Comparing MT with shared memory to ST performance is comparing apples and oranges.
- romange 4y agoThe reason for this is the networking limitations of each instance type. DF consistently reaches the networking limits for each instance type in the cloud. On r6g it's 1.4M qps and then it's saturated on interrupts due to ping pong nature of the protocol. This is why pipelining mode can reach several times higher throughput - your messages are big. c6gn is network-enhanced instance with 32 network queues! it's the most capable instance in AWS network-wise. This is why DF can reach there > 3.8M qps.