Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Aerospike - fast and furious caching @ Burgasconf 2016

182 views

Published on

Aerospike - fast and furious caching.

Burgasconf 2016

Published in: Software
  • Be the first to comment

Aerospike - fast and furious caching @ Burgasconf 2016

  1. 1. Aerospike – the fast and furious cache Burgas Conf @ 2016
  2. 2. What is Aerospike • Fast • Scalable • ACID compliant • Open Source • Schema-less • Querying • Aggregations/MapReduce using UDF Burgas Conf @ 2016
  3. 3. What means fast? • Flash/SSD optimized. • Simple AWS test to make 1 million TPS on one r3.8xlarge instance. • 10 million keys, 100 byte string values, 50% read and 50% write Burgas Conf @ 2016
  4. 4. Scalable • Automatic cluster node discovery • Supports UDP/TCP. • Replication factor • Distributed reads/writes. • Self-managed – auto-heal, automatic data balancing, recovery from partition split. Burgas Conf @ 2016
  5. 5. ACID • Atomicity • Data is read/written on 'master'. • Consistency • A record is considered successfully written if all replicas acknowledge write. • Isolation • Read-committed isolation level. Applying CaS (Check and Set or Test and Set) concurrency scheme to allow parallel read-modify-write cycles. • Durability • Data persisting on flash storage. Rack-aware replication. Cross data-center (XDR) replication for enterprise users. Burgas Conf @ 2016
  6. 6. Open Source • Aerospike Server - GNU Affero General Public License version 3 (AGPLv3) since June 2014. • Aerospike Client – Apache License. Burgas Conf @ 2016
  7. 7. Schema-less • Basically a Key-Value store, but... Burgas Conf @ 2016
  8. 8. Schema-less: Namespaces Burgas Conf @ 2016
  9. 9. Schema-less: Sets Burgas Conf @ 2016
  10. 10. Schema-less: Record structure • Key • Metadata • TTL • Generation (auto-increment id) • Bins a.k.a. Columns • Types: integer, string, bytes, double, list, map, GeoJSON, native-language serialized (blobs), LDT (over 1MB of data). Burgas Conf @ 2016
  11. 11. Querying - AQL Burgas Conf @ 2016
  12. 12. Querying - AQL Burgas Conf @ 2016
  13. 13. Querying - API • Client libraries: • Java • C • C# • Python • Ruby • NodeJS • Go • Perl • PHP • Erlang Burgas Conf @ 2016
  14. 14. Aggregations/MapReduce • UDF (User-defined functions) written on Lua script. Burgas Conf @ 2016
  15. 15. UDF (User-defined functions) Burgas Conf @ 2016
  16. 16. Using UDF with AQL Burgas Conf @ 2016
  17. 17. Application and use-cases • Ad tech – fast sub-second ad selection on page load. • Gaming. • Fast/real-time data manipulation • Statistics Burgas Conf @ 2016
  18. 18. Q & A Burgas Conf @ 2016
  19. 19. Thank you! Tihomir Trifonov t.trifonov@gmail.com https://bg.linkedin.com/in/tisho Burgas Conf @ 2016

×