1

I have used aerospike as a distributed cache solution.

There is one question that keeps questioning my mind, Does the Innodb buffer size of 20GB RAM give the same performance as 20GB RAM if I need just one server?

Can someone help here?

chicharito
  • 1,047
  • 3
  • 12
  • 41
nikhil roadi
  • 101
  • 1
  • 6

1 Answers1

4

"Let’s assume that everything is stored in RAM on both systems. Even so, there is more to retrieving data than just the storage medium it is stored in. Most of this has to do with how the data is partitioned, how the indexes are built, how connections are handled, the type of data structures and locks used internally.

I answered a similar question a few years ago on Stack Overflow

Aerospike Design | Request Flow Internals | Resources

This will generally explain why Aerospike’s architecture makes it better for caching, and in general as a strongly consistent single-record transaction database. Since then, there have been a lot of performance improvements, such as transaction queues being removed, and a larger number of service threads doing the work without the handoff to the transaction queue and its threads. The clients have improved, as well.

In the end, when in doubt, benchmark.

Just a note, if you’re using Aerospike as a cache (in-memory namespace, no persistence), rather than a database, this data is volatile. You might as well set the replication-factor to 1, which will avoid having replica writes. You should be able to go considerably faster with that kind of deployment."

Ronen Botzer
  • 6,951
  • 22
  • 41
  • Most of this has to do with how the data is partitioned, how the indexes are built, how connections are handled, the type of data structures and locks used internally.... Can you explain what are the difference here – nikhil roadi Oct 27 '20 at 10:53
  • Hi @nikhilroadi - most of that is described in the answer I referenced. Let me know if you have specific questions, and I can edit my answer. – Ronen Botzer Oct 29 '20 at 16:21