Skip to content

Instantly share code, notes, and snippets.

@juliangruber juliangruber/gist:5139252
Last active Dec 14, 2015

Embed
What would you like to do?
db performance comparisons (II)

This is just about GET & SET, the basic Key-Value store commands.

  • Redis is constantly fast and faster than Memcached
  • MongoDB is not a good key-value store
  • levelUp is only slower than levelDown doing PUT operations
  • leveled and levelUp perform almost the same
  • multilevel (levelUp rpc) isn't fast enough yet, even with a fake network layer
  • multileveled (leveled rpc) is faster than MongoDB doing GET and is slowed down heavily by the network layer
  • multilevel-http is not usable at all when performance counts
Redis
15,849 op/s ⨠ set small
18,625 op/s ⨠ set medium
18,733 op/s ⨠ set large
17,634 op/s ⨠ get large
18,514 op/s ⨠ get medium
18,345 op/s ⨠ get small
MongoDB
20,900 op/s ⨠ set small
22,947 op/s ⨠ set medium
22,035 op/s ⨠ set large
5,259 op/s ⨠ get large
5,980 op/s ⨠ get medium
6,461 op/s ⨠ get small
Memcached
11,644 op/s ⨠ set small
11,629 op/s ⨠ set medium
11,484 op/s ⨠ set large
12,333 op/s ⨠ get large
12,346 op/s ⨠ get medium
12,039 op/s ⨠ get small
levelUP
37,840 op/s ⨠ set small
36,189 op/s ⨠ set medium
34,063 op/s ⨠ set large
41,328 op/s ⨠ get large
45,933 op/s ⨠ get medium
48,099 op/s ⨠ get small
levelDOWN
69,075 op/s ⨠ set small
67,202 op/s ⨠ set medium
61,458 op/s ⨠ set large
48,181 op/s ⨠ get large
50,330 op/s ⨠ get medium
48,918 op/s ⨠ get small
leveled
73,808 op/s ⨠ set small
72,748 op/s ⨠ set medium
65,687 op/s ⨠ set large
60,643 op/s ⨠ get large
61,294 op/s ⨠ get medium
63,400 op/s ⨠ get small
multilevel
6,714 op/s ⨠ set small
6,413 op/s ⨠ set medium
6,121 op/s ⨠ set large
8,012 op/s ⨠ get large
8,214 op/s ⨠ get medium
8,215 op/s ⨠ get small
multilevel (fake network)
14,457 op/s ⨠ set small
14,230 op/s ⨠ set medium
12,659 op/s ⨠ set large
18,551 op/s ⨠ get large
18,563 op/s ⨠ get medium
18,844 op/s ⨠ get small
multileveled
9,851 op/s ⨠ set small
9,163 op/s ⨠ set medium
9,603 op/s ⨠ set large
9,315 op/s ⨠ get large
9,404 op/s ⨠ get medium
9,604 op/s ⨠ get small
multileveled (fake network)
28,962 op/s ⨠ set small
28,335 op/s ⨠ set medium
27,434 op/s ⨠ set large
26,322 op/s ⨠ get large
26,856 op/s ⨠ get medium
26,361 op/s ⨠ get small
multilevel-http
1,079 op/s ⨠ set small
1,227 op/s ⨠ set medium
1,813 op/s ⨠ set large
1,996 op/s ⨠ get large
1,635 op/s ⨠ get medium
978 op/s ⨠ get small
Memory
26,307,413 op/s ⨠ set small
9,572,282 op/s ⨠ set medium
14,120,584 op/s ⨠ set large
22,651,185 op/s ⨠ get small
33,082,786 op/s ⨠ get medium
34,338,065 op/s ⨠ get large
@DTrejo

This comment has been minimized.

Copy link

commented Mar 12, 2013

What is the last result, memory? The memory of the process itself?
Cheers!

@rvagg

This comment has been minimized.

Copy link

commented Mar 17, 2013

@juliangruber given that the results can vary massively depending on the sizes of the keys & values can you give us some clue about methodology here?

@juliangruber

This comment has been minimized.

Copy link
Owner Author

commented Apr 13, 2013

@DTrejo The last result is from storing everything in JavaScript memory

@juliangruber

This comment has been minimized.

Copy link
Owner Author

commented Apr 13, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.