SlideShare a Scribd company logo
Art of the Possible
Tim Faulkes
Chief Developer Advocate
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Agenda
• Why is Aerospike so fast?
• Linear latency even with the loss of a node / zone
• How strong consistency works with only two copies
2
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
3
Aerospike’s Rapid
Reads And Writes
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Primary Index Read
A
Sprig 1 Sprig 2 Sprig 3 Sprig N
…
Indexes
Storage
Sprig Table (2N)
…
SSD 1
SSD 2
SSD 3
1. Client sends digest to server
2. Bits in digest determine sprig
3. Sprig is traversed (memory) to find Primary
Index
4. Primary Index hold metadata + storage
location
5. Data read from storage and returned
Aerospike is:
● Written in C for speed
● Optimized to reduce contention / locks
● Is typically limited by Disk IOPS / Network
● Data volume does not slow down
performance
● Is strong consistent
● Doesn’t need a cache
Client
1
2
3
5
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Primary Index Write
1. Client sends digest and data to server
2. Write is put into a Write Buffer (memory)
3. Primary Index entry created / updated
4. Replica(s) sent the write over the Fabric
5. Writes stored in Write Buffers on replica(s)
6. Replica(s) acknowledge writes
7. Master acknowledges write to client
8. Write Buffers flushed to storage when full or
on timeout (1s by default)
A
Sprig 1 Sprig 2 Sprig 3 Sprig N
…
Indexes
Storage
Sprig Table (2N)
…
SSD 1
SSD 2
SSD 3
Buffers Used Record Unused
Network Fabric (Inter-node communications)
1
2
3
4
5
6
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
6
Demo: Loading
Data
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Cluster Configuration
Servers: m6gd.2xlarge
• 8 vCPUs
• 32 GiB DRAM
• 1 x 474 GB SSD (4 partitions)
• 6 nodes across 3 racks
Client: c7g.12xlarge
• Normally a range of clients!
Monitoring: t3.large
• Prometheus
• Grafana
Aerospike
• 2 copies of the data (RF = 2)
• Strong Consistency
• Session Consistency on reads
A
F
E
D
C
B
Rack 3 Rack 2
Rack 1
Monitoring
Note: 2 nodes per rack not recommended for production!
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
8
Demo: Node/Rack
Loss Under Load
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
9
Strong
Consistency
With 2 data copies!
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
CAP Theorem
10
RDBMS
Aerospike
HBase
MongoDB
BigTable
YugabyteDB
Aerospike
Cassandra
DynamoDB
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Terminology: Immediate vs Eventual
Consistency
Immediate consistency guarantees that as soon as a piece of data is written
successfully, it will be available to clients who are reading that data. There is
no delay between writing data and being able to read it.
Eventual consistency means that once the data is successfully written, it will,
at some point in the future, become available for reads. There is no guarantee
of how soon it will become available; the only guarantee is that the time will
eventually come when reads will be consistent.
Aerospike’s writes are always Immediately Consistent
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Raft Consensus (Quorum Based)
A
B C
Application (Leader)
(Followers)
RAFT is a well-known and quorum based.
● Requires an ODD number of copies of the data
● To support N node failures, need 2N+1 copies
○ 1 node failure => 3 copies
○ 2 node failures => 5 copies
● Data is consistent once a majority of nodes
(including leader) have responded
● Used by: YugabyteDB, CockroachDB, Neo4j,
MongoDB, RedisRaft, etc…
● Heartbeats are exchanged per raft group.
○ More raft groups => more CPU usage
● As data per node grows => more raft groups =>
more heartbeats => more CPU
● CPU is often a bottleneck in raft-based systems For more information, see http://thesecretlivesofdata.com/raft/
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Aerospike Consensus (Non-Quorum Based)
A
B
Application (Leader)
(Follower)
Aerospike has its own consistency algorithm
● To support N failures, need N+1 copies
○ 1 failure => 2 copies
○ 2 failures => 3 copies
○ Big hardware savings!
● Data is consistent once all nodes have responded
● Used by:
○ Aerospike
● Consistency is maintained with a roster
○ Determines healthy state of the cluster
● Heartbeats are exchanged by nodes so CPU stays
constant as data density per node increases
SC Mode passes Jepsen tests: https://jepsen.io/analyses/aerospike-3-99-0-3
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Cluster Splits Data Availability
A B C D E
A B C D E
RM
R
RR
M
RM RR
M R
Rule 1: A sub-cluster is Active if it has the Roster Master and all
Roster Replicas and at least 1 is full.
Rule 2: A sub-cluster is Active if it has the majority of nodes and at
least one full Roster Master or Roster Replica OR exactly ½ the
roster nodes and the Roster Master and the partition is full.
A B C D E
RM RR
M R
Rule 3: A sub-cluster is Active if it is a Super Majority Cluster and the
partitions are full or subsets
Aerospike implements rules which guarantee that for any partition in any network split, at most one partition
can write the data.
• Conflict avoidance, not conflict resolution
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Helpful tools &
resources
15
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Join our community!
16
https://discord.gg/NfC93wJEJU
on
Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc.
Helpful tools & resources
17
https://docs.aerospike.com
https://github.com/aerospike/aerolab
https://github.com/aerospike-examples
https://developer.aerospike.com

More Related Content

Similar to Art of the Possible_Tim Faulkes.pdf

Predictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-timePredictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-time
Aerospike, Inc.
 
fdocuments.in_aerospike-key-value-data-access.ppt
fdocuments.in_aerospike-key-value-data-access.pptfdocuments.in_aerospike-key-value-data-access.ppt
fdocuments.in_aerospike-key-value-data-access.ppt
yashsharma863914
 
A kind and gentle introducton to rac
A kind and gentle introducton to racA kind and gentle introducton to rac
A kind and gentle introducton to rac
Riyaj Shamsudeen
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
Jignesh Shah
 
Zookeeper Introduce
Zookeeper IntroduceZookeeper Introduce
Zookeeper Introduce
jhao niu
 
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Amazon Web Services
 
Aerospike: Maximizing Performance
Aerospike: Maximizing PerformanceAerospike: Maximizing Performance
Aerospike: Maximizing Performance
Aerospike, Inc.
 
Reference Architecture: Architecting Ceph Storage Solutions
Reference Architecture: Architecting Ceph Storage Solutions Reference Architecture: Architecting Ceph Storage Solutions
Reference Architecture: Architecting Ceph Storage Solutions
Ceph Community
 
Aerospike Architecture
Aerospike ArchitectureAerospike Architecture
Aerospike Architecture
Peter Milne
 
20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...
20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...
20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...
Umair Shahid
 
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Aerospike
 
Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...
Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...
Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...
Amazon Web Services
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
Amazon Web Services
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout Session
Splunk
 
More Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoMore Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit Juno
Kota Tsuyuzaki
 
Chicago spark meetup-april2017-public
Chicago spark meetup-april2017-publicChicago spark meetup-april2017-public
Chicago spark meetup-april2017-public
Guru Dharmateja Medasani
 
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red_Hat_Storage
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems
Baruch Osoveskiy
 
Cache coherence ppt
Cache coherence pptCache coherence ppt
Cache coherence ppt
ArendraSingh2
 
Chapter 3
Chapter 3Chapter 3

Similar to Art of the Possible_Tim Faulkes.pdf (20)

Predictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-timePredictable Big Data Performance in Real-time
Predictable Big Data Performance in Real-time
 
fdocuments.in_aerospike-key-value-data-access.ppt
fdocuments.in_aerospike-key-value-data-access.pptfdocuments.in_aerospike-key-value-data-access.ppt
fdocuments.in_aerospike-key-value-data-access.ppt
 
A kind and gentle introducton to rac
A kind and gentle introducton to racA kind and gentle introducton to rac
A kind and gentle introducton to rac
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
 
Zookeeper Introduce
Zookeeper IntroduceZookeeper Introduce
Zookeeper Introduce
 
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
 
Aerospike: Maximizing Performance
Aerospike: Maximizing PerformanceAerospike: Maximizing Performance
Aerospike: Maximizing Performance
 
Reference Architecture: Architecting Ceph Storage Solutions
Reference Architecture: Architecting Ceph Storage Solutions Reference Architecture: Architecting Ceph Storage Solutions
Reference Architecture: Architecting Ceph Storage Solutions
 
Aerospike Architecture
Aerospike ArchitectureAerospike Architecture
Aerospike Architecture
 
20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...
20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...
20240515 - Chicago PUG - Clustering in PostgreSQL: Because one database serve...
 
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
Handling Increasing Load and Reducing Costs Using Aerospike NoSQL Database - ...
 
Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...
Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...
Amazon Aurora Storage Demystified: How It All Works (DAT363) - AWS re:Invent ...
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout Session
 
More Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoMore Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit Juno
 
Chicago spark meetup-april2017-public
Chicago spark meetup-april2017-publicChicago spark meetup-april2017-public
Chicago spark meetup-april2017-public
 
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems
 
Cache coherence ppt
Cache coherence pptCache coherence ppt
Cache coherence ppt
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 

More from Aerospike, Inc.

Building for a Real-time Data Future_Subbu Iyer.pdf
Building for a Real-time Data Future_Subbu Iyer.pdfBuilding for a Real-time Data Future_Subbu Iyer.pdf
Building for a Real-time Data Future_Subbu Iyer.pdf
Aerospike, Inc.
 
Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...
Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...
Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...
Aerospike, Inc.
 
App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...
App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...
App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...
Aerospike, Inc.
 
Aerospike & AWS Working backward from the customer.pdf
Aerospike &  AWS Working backward from the customer.pdfAerospike &  AWS Working backward from the customer.pdf
Aerospike & AWS Working backward from the customer.pdf
Aerospike, Inc.
 
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdfUpdate on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Aerospike, Inc.
 
Developing for Real-time_Art Anderson.pdf
Developing for Real-time_Art Anderson.pdfDeveloping for Real-time_Art Anderson.pdf
Developing for Real-time_Art Anderson.pdf
Aerospike, Inc.
 
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdfAerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike, Inc.
 
Now in AI- How we got here_Ashwin Rao.pdf
Now in AI- How we got here_Ashwin Rao.pdfNow in AI- How we got here_Ashwin Rao.pdf
Now in AI- How we got here_Ashwin Rao.pdf
Aerospike, Inc.
 

More from Aerospike, Inc. (8)

Building for a Real-time Data Future_Subbu Iyer.pdf
Building for a Real-time Data Future_Subbu Iyer.pdfBuilding for a Real-time Data Future_Subbu Iyer.pdf
Building for a Real-time Data Future_Subbu Iyer.pdf
 
Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...
Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...
Aerospike & Unity_Connecting Developer Communities_Matt Dondelinger and Stace...
 
App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...
App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...
App Modernization with Aerospike as an Intraday System of Record_Venkat Thamm...
 
Aerospike & AWS Working backward from the customer.pdf
Aerospike &  AWS Working backward from the customer.pdfAerospike &  AWS Working backward from the customer.pdf
Aerospike & AWS Working backward from the customer.pdf
 
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdfUpdate on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
 
Developing for Real-time_Art Anderson.pdf
Developing for Real-time_Art Anderson.pdfDeveloping for Real-time_Art Anderson.pdf
Developing for Real-time_Art Anderson.pdf
 
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdfAerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
Aerospike Today and Tomorrow Product Roadmap 2023_Lenley Hensarling.pdf
 
Now in AI- How we got here_Ashwin Rao.pdf
Now in AI- How we got here_Ashwin Rao.pdfNow in AI- How we got here_Ashwin Rao.pdf
Now in AI- How we got here_Ashwin Rao.pdf
 

Recently uploaded

GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 

Art of the Possible_Tim Faulkes.pdf

  • 1. Art of the Possible Tim Faulkes Chief Developer Advocate
  • 2. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Agenda • Why is Aerospike so fast? • Linear latency even with the loss of a node / zone • How strong consistency works with only two copies 2
  • 3. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. 3 Aerospike’s Rapid Reads And Writes
  • 4. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Primary Index Read A Sprig 1 Sprig 2 Sprig 3 Sprig N … Indexes Storage Sprig Table (2N) … SSD 1 SSD 2 SSD 3 1. Client sends digest to server 2. Bits in digest determine sprig 3. Sprig is traversed (memory) to find Primary Index 4. Primary Index hold metadata + storage location 5. Data read from storage and returned Aerospike is: ● Written in C for speed ● Optimized to reduce contention / locks ● Is typically limited by Disk IOPS / Network ● Data volume does not slow down performance ● Is strong consistent ● Doesn’t need a cache Client 1 2 3 5
  • 5. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Primary Index Write 1. Client sends digest and data to server 2. Write is put into a Write Buffer (memory) 3. Primary Index entry created / updated 4. Replica(s) sent the write over the Fabric 5. Writes stored in Write Buffers on replica(s) 6. Replica(s) acknowledge writes 7. Master acknowledges write to client 8. Write Buffers flushed to storage when full or on timeout (1s by default) A Sprig 1 Sprig 2 Sprig 3 Sprig N … Indexes Storage Sprig Table (2N) … SSD 1 SSD 2 SSD 3 Buffers Used Record Unused Network Fabric (Inter-node communications) 1 2 3 4 5 6
  • 6. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. 6 Demo: Loading Data
  • 7. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Cluster Configuration Servers: m6gd.2xlarge • 8 vCPUs • 32 GiB DRAM • 1 x 474 GB SSD (4 partitions) • 6 nodes across 3 racks Client: c7g.12xlarge • Normally a range of clients! Monitoring: t3.large • Prometheus • Grafana Aerospike • 2 copies of the data (RF = 2) • Strong Consistency • Session Consistency on reads A F E D C B Rack 3 Rack 2 Rack 1 Monitoring Note: 2 nodes per rack not recommended for production!
  • 8. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. 8 Demo: Node/Rack Loss Under Load
  • 9. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. 9 Strong Consistency With 2 data copies!
  • 10. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. CAP Theorem 10 RDBMS Aerospike HBase MongoDB BigTable YugabyteDB Aerospike Cassandra DynamoDB
  • 11. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Terminology: Immediate vs Eventual Consistency Immediate consistency guarantees that as soon as a piece of data is written successfully, it will be available to clients who are reading that data. There is no delay between writing data and being able to read it. Eventual consistency means that once the data is successfully written, it will, at some point in the future, become available for reads. There is no guarantee of how soon it will become available; the only guarantee is that the time will eventually come when reads will be consistent. Aerospike’s writes are always Immediately Consistent
  • 12. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Raft Consensus (Quorum Based) A B C Application (Leader) (Followers) RAFT is a well-known and quorum based. ● Requires an ODD number of copies of the data ● To support N node failures, need 2N+1 copies ○ 1 node failure => 3 copies ○ 2 node failures => 5 copies ● Data is consistent once a majority of nodes (including leader) have responded ● Used by: YugabyteDB, CockroachDB, Neo4j, MongoDB, RedisRaft, etc… ● Heartbeats are exchanged per raft group. ○ More raft groups => more CPU usage ● As data per node grows => more raft groups => more heartbeats => more CPU ● CPU is often a bottleneck in raft-based systems For more information, see http://thesecretlivesofdata.com/raft/
  • 13. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Aerospike Consensus (Non-Quorum Based) A B Application (Leader) (Follower) Aerospike has its own consistency algorithm ● To support N failures, need N+1 copies ○ 1 failure => 2 copies ○ 2 failures => 3 copies ○ Big hardware savings! ● Data is consistent once all nodes have responded ● Used by: ○ Aerospike ● Consistency is maintained with a roster ○ Determines healthy state of the cluster ● Heartbeats are exchanged by nodes so CPU stays constant as data density per node increases SC Mode passes Jepsen tests: https://jepsen.io/analyses/aerospike-3-99-0-3
  • 14. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Cluster Splits Data Availability A B C D E A B C D E RM R RR M RM RR M R Rule 1: A sub-cluster is Active if it has the Roster Master and all Roster Replicas and at least 1 is full. Rule 2: A sub-cluster is Active if it has the majority of nodes and at least one full Roster Master or Roster Replica OR exactly ½ the roster nodes and the Roster Master and the partition is full. A B C D E RM RR M R Rule 3: A sub-cluster is Active if it is a Super Majority Cluster and the partitions are full or subsets Aerospike implements rules which guarantee that for any partition in any network split, at most one partition can write the data. • Conflict avoidance, not conflict resolution
  • 15. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Helpful tools & resources 15
  • 16. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Join our community! 16 https://discord.gg/NfC93wJEJU on
  • 17. Proprietary & Confidential | All rights reserved. © 2023 Aerospike, Inc. Helpful tools & resources 17 https://docs.aerospike.com https://github.com/aerospike/aerolab https://github.com/aerospike-examples https://developer.aerospike.com