SlideShare ist ein Scribd-Unternehmen logo
1 von 56
USING LOCK-FREE AND WAIT-FREE IN-MEMORY
ALGORITHMS TO TURBO-CHARGE HIGH VOLUME DATA
MANAGEMENT
HENNING ANDERSEN, STIBO SYSTEMS A/S
See all the presentations from the In-Memory Computing
Summit at http://imcsummit.org
BIO
 20 years of professional career at Stibo Systems A/S
 Developed software for the last 30+ years
 Technical lead on many projects, including:
 Migrating from C++ to Java platform (performance & scalability)
 Establishing a component platform
 In-Memory component
GET TO KNOW STIBO
SYSTEMS
Travel/HospitalityDistributionRetail Manufacturing
OUR GROWING FAMILY
2015 MQ MDM OF PRODUCT DOMAIN
COMPLETE, SEAMLESS MULTIDOMAIN MDM SOLUTION
INTEGRATING IN-MEMORY INTO STEP
STEP
STEP
STEP Server
(J2EE)
STEP Server
(J2EE)
DB Server
STEP
DB Server
STEP
In-Memory
DB
OFF-HEAP
BENCHMARK RESULTS
Large Retailer Data Large Distributor Data Scalability Test Data
REQUIREMENTS
 Great performance
 Compact memory layout
 Data
 Per Entry Overhead
 Lookup by Key
 Complex Querying
 Indexing
 “Friendly” to our existing architecture
 Fast Startup/Initialization
PERFORMANCE BY SIMPLICITY
 MVCC/Immutability
 Wait-free index scans
 Code Generation
 Custom API/Direct Access
mov (%rdi,%r11,1),%r11
BASIC HASH TABLE CLOSED ADDRESSING
Next Key=K1 Value=10
hash(key)%tablesize
Bucket Table
BASIC HASH TABLE CLOSED ADDRESSING
Next Key=K1 Value=10
hash(key)%tablesize
Next Key=K3 Value=20
Bucket Table
Next Key=K4 Value=30
BASIC HASH TABLE COLLISION
hash(key)%tablesize
Next Key=K3 Value=20Next Key=K1 Value=10
Bucket Table
MVCC HASH TABLE
Next Prev TSN Key=K1 Value=10
hash(key)%tablesize
TSN = Transaction Sequence Number
Bucket Table
Tx ID TSN
Transaction Table
Published TSN
2
TRANSACTION/COMMIT PHASES
Prepare
Commit
Finish
Publish
Vacuum
Abort
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
Leader
Commit Phases
TRANSACTION/COMMIT PHASES
Prepare
Commit
Finish
Publish
Vacuum
Abort
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
Leader
Commit Phases
TRANSACTION/COMMIT PHASES
Prepare
Commit
Finish
Publish
Vacuum
Abort
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
Leader
TSN=3TSN=3
TSN=3
Commit Phases
TRANSACTION/COMMIT PHASES
Prepare
Commit
Finish
Publish
Vacuum
Abort
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
STEP
In-Memory
DB
Leader
TSN=3TSN=3
TSN=3
Commit Phases
Tx ID TSN
MVCC HASH TABLE UPDATE - PUT(K1,15)
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Tx ID TSN
UUID=1234
Bucket Table Transaction Table
Prepare
Finish
Publish
Next Prev Infinite Key=K1 Value=15
Prepare
Published TSN
2
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC HASH TABLE UPDATE - PUT(K1,15)
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Next Prev Infinite Key=K1 Value=15
Finish
1. Pull new TSN
Published TSN
2
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC HASH TABLE UPDATE - PUT(K1,15)
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Next Prev Infinite Key=K1 Value=15
Finish
Next Prev TSN=3 Key=K1 Value=15
2. Apply TSN
Published TSN
2
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC HASH TABLE UPDATE - PUT(K1,15)
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Next Prev Infinite Key Value’
Finish
Next Prev TSN=3 Key=K1 Value=15
3. Link to Prev
Published TSN
2
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC HASH TABLE UPDATE - PUT(K1,15)
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Next Prev Infinite Key Value’
Finish
Next Prev TSN=3 Key=K1 Value=15
4. Update
Bucket Table
Published TSN
2
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC HASH TABLE READER
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Next Prev Infinite Key Value’Next Prev TSN=3 Key=K1 Value=15
Reader TSN=2
Lookup K1
Published TSN
2
Prepare
Finish
Publish
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC HASH TABLE UPDATE (PUBLISH)
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Bucket Table Transaction Table
Next Prev Infinite Key Value’Next Prev TSN=3 Key=K1 Value=15
Update
Published TSN
Publish
Published TSN
23
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC HASH TABLE READER
Next Prev TSN=2 Key=K1 Value=10
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Next Prev Infinite Key Value’Next Prev TSN=3 Key=K1 Value=15
Reader TSN=3
Lookup K1
Published TSN
3
MVCC HASH TABLE
INDEXING USING SKIP LISTS
SKIP LISTS
H 10 20 30 40 50
50% have height
>=225% have height
>=3Head Height ~= log2(n)
30>=next.value?
Find Value=30?
SKIP LISTS - INSERTION
20 30 40 50
15
Pick random height
10H
SKIP LISTS - INSERTION
20 30 40 50
15
Pick random height
10H
SKIP LISTS - INSERTION
H 10 20 30 40 50
15
Pick random height
SKIP LISTS – INSERTION RESULT
H 10 20 30 40 5015
Next Prev TSN=3 Key=K1 Value=15 Index
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC INDEXING USING SKIP LISTS
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Published TSN
22
Finish
5. Update Index
Next Prev TSN=2 Key=K1 Value=10 Index
5. Update Index
Next Prev TSN=3 Key=K1 Value=15 Index
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
MVCC INDEXING USING SKIP LISTS
hash(key)%tablesize
Bucket Table Transaction Table
Prepare
Finish
Publish
Published TSN
22
Finish
Next Prev TSN=2 Key=K1 Value=10 Index
SKIP LISTS – 5. UPDATE INDEX
H
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
Next
Prev
TSN
Key
Value
Index L0
Index L1
Index L2
K1
SKIP LISTS – 5. UPDATE INDEX
H
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
Next
Prev
TSN
Key
Value
Index L0
Index L1
Index L2
K1
SKIP LISTS – INSERTION RESULT
H
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
Next
Prev
TSN
Key
Value
Index L0
Index L1
Index L2
K1
SKIP LISTS – FIND [12-25], TSN=2
H
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
Next
Prev
TSN
Key
Value
Index L0
Index L1
Index L2
K1
SKIP LISTS – FIND [12-25], TSN=3
H
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
Next
Prev
TSN
Key
Value
Index L0
Index L1
Index L2
K1
LOCK-FREE INSERTIONS SUMMARY
 CAS (compare-and-swap) on previous entity – one winner
 Bottom-up preserves skip-list for every level, allowing wait-free readers
 Help vacuum ensures lock-freedom
H 10 20 30 40
15 17
LOCK-FREE INSERTIONS SUMMARY
 CAS (compare-and-swap) on previous entity – one winner
 Bottom-up preserves skip-list for every level, allowing wait-free readers
 Help vacuum ensures lock-freedom
H 10 20 30 4015 17
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
H
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Reader TSN Epoch
Thread=1234 2 17
Thread=1235 3 17Vacuum wait
Reader TSN Epoch
Thread=1234 2 17
Thread=1235 3 17
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
H
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Vacuum wait
Reader TSN Epoch
Thread=1235 3 17
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
H
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Reader TSN Epoch
Thread=1235 3 17
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Vacuum phase 1
H
Reader TSN Epoch
Thread=1235 3 17
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Vacuum epoch wait
H
Reader TSN Epoch
Thread=2345 3 18
Thread=1235 3 17
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Vacuum epoch wait
H
Reader TSN Epoch
Thread=2345 3 18
Thread=1235 3 17
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Vacuum epoch wait
H
Reader TSN Epoch
Thread=2345 3 18
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Vacuum epoch wait
H
Reader TSN Epoch
Thread=2345 3 18
Tx ID TSN
UUID=1234
Tx ID TSN
UUID=1234 3
VACUUM, EPOCH BASED DEFERRED RECLAMATION
hash(key)%tablesize
Bucket Table Transaction Table
Published TSN
23
T
10
K1
P
N
2
15
P
N
3
20
K3
P
N
2
30
K4
P
N
2
40
K5
P
N
2
50
K6
P
N
2
K1
Snapshot Registry
Vacuum phase 2
H
MVCC SUMMARY
 Map and indexes both under MVCC
 Index scans are wait-free (and simple/fast)
 Insert/update/delete are lock-free
 Automated reclamation of storage
EFFICIENT AND SAFE API
transactionManager.read((snapshot) -> {
QueryIterator<ProductCO> products = snapshot.query(ProductCO._ID.range(‘IMC’,’Stibo’));
while (products.next()) {
CacheEntry<ProductCO> entry = queryIterator.entry();
long typeId = entry.longValue(ProductCO::getObjectType);
CacheEntry<ObjectTypeCO> type = snapshot.get(typeId);
// can do gets, queries etc. on the same snapshot safely for all kinds of objects
}
}
public class ProductCO {
long getObjectType(ValuePointer ptr) { … }
}
No object copies, no GC, efficient accessOften JVM can inline entire query to one native method
1
2
3
4
5
DIY USEFUL LEARNING
• Memory model (java different from C++) and CAS operations
• Assembly
• CPU memory architecture
• Wait-free and lock-free algorithms
• Enumerate all states
• Think about state transitions
• Try to formally proof it right
• Deletions are often the most tricky part
• Do not even think about “this will never happen”, because it will
IN-MEMORY VENDOR QUESTIONS
 Direct access to data or only access to copies of data?
 And direct access to individual fields in an entry?
 Index/Query engine MVCC consistent with map gets and/or additional queries?
 Will index scans/queries acquire locks?
 Will index inserts acquire locks?
 Will map get/put operations acquire locks?
 Memory overhead per entry?
 Memory overhead per index (per entry)?
 How do you avoid memory fragmentation?
 Do you lock pages in memory and use huge/large pages?
IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free In-memory Algorithms to Turbo-charge High Volume Data Management

Weitere ähnliche Inhalte

Andere mochten auch

IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...In-Memory Computing Summit
 
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...In-Memory Computing Summit
 
Boletín 16/03/2017
Boletín 16/03/2017Boletín 16/03/2017
Boletín 16/03/2017Openbank
 
The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)
The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)
The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)Lily Perkins-High
 
PersonalSchweiz - Interview Active Sourcing Angelo Ciaramella
PersonalSchweiz - Interview Active Sourcing Angelo CiaramellaPersonalSchweiz - Interview Active Sourcing Angelo Ciaramella
PersonalSchweiz - Interview Active Sourcing Angelo Ciaramellaciaramella & partner GmbH
 
Team Happiness - O szczęściu w zespole
Team Happiness - O szczęściu w zespoleTeam Happiness - O szczęściu w zespole
Team Happiness - O szczęściu w zespoleApptension
 
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage TierIMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage TierIn-Memory Computing Summit
 
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X PlatformIMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X PlatformIn-Memory Computing Summit
 
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...In-Memory Computing Summit
 
Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...
Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...
Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...gabiparavoce
 

Andere mochten auch (10)

IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
 
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
 
Boletín 16/03/2017
Boletín 16/03/2017Boletín 16/03/2017
Boletín 16/03/2017
 
The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)
The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)
The Potential for Energy Efficiency in Multifamily Housing (Pies for Pi Day)
 
PersonalSchweiz - Interview Active Sourcing Angelo Ciaramella
PersonalSchweiz - Interview Active Sourcing Angelo CiaramellaPersonalSchweiz - Interview Active Sourcing Angelo Ciaramella
PersonalSchweiz - Interview Active Sourcing Angelo Ciaramella
 
Team Happiness - O szczęściu w zespole
Team Happiness - O szczęściu w zespoleTeam Happiness - O szczęściu w zespole
Team Happiness - O szczęściu w zespole
 
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage TierIMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
 
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X PlatformIMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
 
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
 
Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...
Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...
Nas Fronteiras da Loucura - Divaldo Pereira Franco pelo Espírito Manoel Philo...
 

Ähnlich wie IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free In-memory Algorithms to Turbo-charge High Volume Data Management

Dbms recovering from a system crash
Dbms recovering from a system crashDbms recovering from a system crash
Dbms recovering from a system crashAbhishek Kumar Gupta
 
Principles in Data Stream Processing | Matthias J Sax, Confluent
Principles in Data Stream Processing | Matthias J Sax, ConfluentPrinciples in Data Stream Processing | Matthias J Sax, Confluent
Principles in Data Stream Processing | Matthias J Sax, ConfluentHostedbyConfluent
 
CDC Stream Processing With Apache Flink With Timo Walther | Current 2022
CDC Stream Processing With Apache Flink With Timo Walther | Current 2022CDC Stream Processing With Apache Flink With Timo Walther | Current 2022
CDC Stream Processing With Apache Flink With Timo Walther | Current 2022HostedbyConfluent
 
Row Pattern Matching 12c MATCH_RECOGNIZE OOW14
Row Pattern Matching 12c MATCH_RECOGNIZE OOW14Row Pattern Matching 12c MATCH_RECOGNIZE OOW14
Row Pattern Matching 12c MATCH_RECOGNIZE OOW14stewashton
 
Booths Algorithm.pptx
Booths Algorithm.pptxBooths Algorithm.pptx
Booths Algorithm.pptxRaisaFabiha1
 
The Ring programming language version 1.4 book - Part 21 of 30
The Ring programming language version 1.4 book - Part 21 of 30The Ring programming language version 1.4 book - Part 21 of 30
The Ring programming language version 1.4 book - Part 21 of 30Mahmoud Samir Fayed
 
Changelog Stream Processing with Apache Flink
Changelog Stream Processing with Apache FlinkChangelog Stream Processing with Apache Flink
Changelog Stream Processing with Apache FlinkFlink Forward
 
Row patternmatching12ctech14
Row patternmatching12ctech14Row patternmatching12ctech14
Row patternmatching12ctech14stewashton
 
CDC Stream Processing with Apache Flink
CDC Stream Processing with Apache FlinkCDC Stream Processing with Apache Flink
CDC Stream Processing with Apache FlinkTimo Walther
 
Flink's SQL Engine: Let's Open the Engine Room!
Flink's SQL Engine: Let's Open the Engine Room!Flink's SQL Engine: Let's Open the Engine Room!
Flink's SQL Engine: Let's Open the Engine Room!HostedbyConfluent
 
Creating Beautiful Dashboards with Grafana and ClickHouse
Creating Beautiful Dashboards with Grafana and ClickHouseCreating Beautiful Dashboards with Grafana and ClickHouse
Creating Beautiful Dashboards with Grafana and ClickHouseAltinity Ltd
 
Sequential Logic Circuits
Sequential Logic CircuitsSequential Logic Circuits
Sequential Logic CircuitsDilum Bandara
 
IBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql FeaturesIBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql FeaturesKeshav Murthy
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...
Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...
Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...Hsien-Hsin Sean Lee, Ph.D.
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 

Ähnlich wie IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free In-memory Algorithms to Turbo-charge High Volume Data Management (20)

ARIES Recovery Algorithms
ARIES Recovery AlgorithmsARIES Recovery Algorithms
ARIES Recovery Algorithms
 
Dbms recovering from a system crash
Dbms recovering from a system crashDbms recovering from a system crash
Dbms recovering from a system crash
 
Principles in Data Stream Processing | Matthias J Sax, Confluent
Principles in Data Stream Processing | Matthias J Sax, ConfluentPrinciples in Data Stream Processing | Matthias J Sax, Confluent
Principles in Data Stream Processing | Matthias J Sax, Confluent
 
Bitcoin.pdf
Bitcoin.pdfBitcoin.pdf
Bitcoin.pdf
 
CDC Stream Processing With Apache Flink With Timo Walther | Current 2022
CDC Stream Processing With Apache Flink With Timo Walther | Current 2022CDC Stream Processing With Apache Flink With Timo Walther | Current 2022
CDC Stream Processing With Apache Flink With Timo Walther | Current 2022
 
Row Pattern Matching 12c MATCH_RECOGNIZE OOW14
Row Pattern Matching 12c MATCH_RECOGNIZE OOW14Row Pattern Matching 12c MATCH_RECOGNIZE OOW14
Row Pattern Matching 12c MATCH_RECOGNIZE OOW14
 
Booths Algorithm.pptx
Booths Algorithm.pptxBooths Algorithm.pptx
Booths Algorithm.pptx
 
The Ring programming language version 1.4 book - Part 21 of 30
The Ring programming language version 1.4 book - Part 21 of 30The Ring programming language version 1.4 book - Part 21 of 30
The Ring programming language version 1.4 book - Part 21 of 30
 
Changelog Stream Processing with Apache Flink
Changelog Stream Processing with Apache FlinkChangelog Stream Processing with Apache Flink
Changelog Stream Processing with Apache Flink
 
Row patternmatching12ctech14
Row patternmatching12ctech14Row patternmatching12ctech14
Row patternmatching12ctech14
 
CDC Stream Processing with Apache Flink
CDC Stream Processing with Apache FlinkCDC Stream Processing with Apache Flink
CDC Stream Processing with Apache Flink
 
Flink's SQL Engine: Let's Open the Engine Room!
Flink's SQL Engine: Let's Open the Engine Room!Flink's SQL Engine: Let's Open the Engine Room!
Flink's SQL Engine: Let's Open the Engine Room!
 
Creating Beautiful Dashboards with Grafana and ClickHouse
Creating Beautiful Dashboards with Grafana and ClickHouseCreating Beautiful Dashboards with Grafana and ClickHouse
Creating Beautiful Dashboards with Grafana and ClickHouse
 
Sequential Logic Circuits
Sequential Logic CircuitsSequential Logic Circuits
Sequential Logic Circuits
 
IBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql FeaturesIBM Informix dynamic server 11 10 Cheetah Sql Features
IBM Informix dynamic server 11 10 Cheetah Sql Features
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...
Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...
Lec5 Computer Architecture by Hsien-Hsin Sean Lee Georgia Tech -- Branch Pred...
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
l1.ppt
l1.pptl1.ppt
l1.ppt
 

Mehr von In-Memory Computing Summit

IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing HubIMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing HubIn-Memory Computing Summit
 
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...In-Memory Computing Summit
 
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise GradeIMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise GradeIn-Memory Computing Summit
 
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIn-Memory Computing Summit
 
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...
IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...
IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...In-Memory Computing Summit
 
IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...
IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...
IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...In-Memory Computing Summit
 
IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...
IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...
IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...In-Memory Computing Summit
 
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...In-Memory Computing Summit
 
IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...
IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...
IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...In-Memory Computing Summit
 
IMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory Easy
IMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory EasyIMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory Easy
IMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory EasyIn-Memory Computing Summit
 
IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...
IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...
IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...In-Memory Computing Summit
 

Mehr von In-Memory Computing Summit (20)

IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing HubIMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
 
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
 
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
 
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
 
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
 
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
 
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise GradeIMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
 
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
 
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
 
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
 
IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...
IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...
IMC Summit 2016 Breakout - Pandurang Naik - Demystifying In-Memory Data Grid,...
 
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
IMC Summit 2016 Breakout - William Bain - Implementing Extensible Data Struct...
 
IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...
IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...
IMC Summit 2016 Keynote - Arthur Sainio - NVDIMM: Changes are Here So What’s ...
 
IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...
IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...
IMC Summit 2016 Keynote - Robert Barr - In Memory Computing for Financial Ser...
 
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...
IMC Summit 2016 Breakout - Nikita Ivanov - Shared In-Memory RDDs – Missing Li...
 
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
 
IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...
IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...
IMC Summit 2016 Keynote - Jason Stamper - In-Memory: The Foundation of the In...
 
IMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory Easy
IMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory EasyIMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory Easy
IMCSummit 2016 Keynote - Benzi Galili - More Memory for In-Memory Easy
 
IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...
IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...
IMCSummit 2016 Keynote - Abe Kleinfeld - The In-Memory Computing Landscape: L...
 

Kürzlich hochgeladen

Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraGovindSinghDasila
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNKTimothy Spann
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...amitlee9823
 
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...only4webmaster01
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...amitlee9823
 
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...gajnagarg
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...amitlee9823
 
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...amitlee9823
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men 🔝Sambalpur🔝 Esc...
➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men  🔝Sambalpur🔝   Esc...➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men  🔝Sambalpur🔝   Esc...
➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men 🔝Sambalpur🔝 Esc...amitlee9823
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Valters Lauzums
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...amitlee9823
 
Detecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning ApproachDetecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning ApproachBoston Institute of Analytics
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteedamy56318795
 

Kürzlich hochgeladen (20)

(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 
Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
 
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
Just Call Vip call girls Erode Escorts ☎️9352988975 Two shot with one girl (E...
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men 🔝Sambalpur🔝 Esc...
➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men  🔝Sambalpur🔝   Esc...➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men  🔝Sambalpur🔝   Esc...
➥🔝 7737669865 🔝▻ Sambalpur Call-girls in Women Seeking Men 🔝Sambalpur🔝 Esc...
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 
Detecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning ApproachDetecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning Approach
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 

IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free In-memory Algorithms to Turbo-charge High Volume Data Management

  • 1. USING LOCK-FREE AND WAIT-FREE IN-MEMORY ALGORITHMS TO TURBO-CHARGE HIGH VOLUME DATA MANAGEMENT HENNING ANDERSEN, STIBO SYSTEMS A/S See all the presentations from the In-Memory Computing Summit at http://imcsummit.org
  • 2. BIO  20 years of professional career at Stibo Systems A/S  Developed software for the last 30+ years  Technical lead on many projects, including:  Migrating from C++ to Java platform (performance & scalability)  Establishing a component platform  In-Memory component
  • 3. GET TO KNOW STIBO SYSTEMS
  • 5. 2015 MQ MDM OF PRODUCT DOMAIN
  • 7. INTEGRATING IN-MEMORY INTO STEP STEP STEP STEP Server (J2EE) STEP Server (J2EE) DB Server STEP DB Server STEP In-Memory DB OFF-HEAP
  • 8. BENCHMARK RESULTS Large Retailer Data Large Distributor Data Scalability Test Data
  • 9. REQUIREMENTS  Great performance  Compact memory layout  Data  Per Entry Overhead  Lookup by Key  Complex Querying  Indexing  “Friendly” to our existing architecture  Fast Startup/Initialization
  • 10. PERFORMANCE BY SIMPLICITY  MVCC/Immutability  Wait-free index scans  Code Generation  Custom API/Direct Access mov (%rdi,%r11,1),%r11
  • 11. BASIC HASH TABLE CLOSED ADDRESSING Next Key=K1 Value=10 hash(key)%tablesize Bucket Table
  • 12. BASIC HASH TABLE CLOSED ADDRESSING Next Key=K1 Value=10 hash(key)%tablesize Next Key=K3 Value=20 Bucket Table
  • 13. Next Key=K4 Value=30 BASIC HASH TABLE COLLISION hash(key)%tablesize Next Key=K3 Value=20Next Key=K1 Value=10 Bucket Table
  • 14. MVCC HASH TABLE Next Prev TSN Key=K1 Value=10 hash(key)%tablesize TSN = Transaction Sequence Number Bucket Table Tx ID TSN Transaction Table Published TSN 2
  • 19. Tx ID TSN MVCC HASH TABLE UPDATE - PUT(K1,15) Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Tx ID TSN UUID=1234 Bucket Table Transaction Table Prepare Finish Publish Next Prev Infinite Key=K1 Value=15 Prepare Published TSN 2
  • 20. Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC HASH TABLE UPDATE - PUT(K1,15) Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Next Prev Infinite Key=K1 Value=15 Finish 1. Pull new TSN Published TSN 2
  • 21. Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC HASH TABLE UPDATE - PUT(K1,15) Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Next Prev Infinite Key=K1 Value=15 Finish Next Prev TSN=3 Key=K1 Value=15 2. Apply TSN Published TSN 2
  • 22. Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC HASH TABLE UPDATE - PUT(K1,15) Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Next Prev Infinite Key Value’ Finish Next Prev TSN=3 Key=K1 Value=15 3. Link to Prev Published TSN 2
  • 23. Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC HASH TABLE UPDATE - PUT(K1,15) Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Next Prev Infinite Key Value’ Finish Next Prev TSN=3 Key=K1 Value=15 4. Update Bucket Table Published TSN 2
  • 24. Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC HASH TABLE READER Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Next Prev Infinite Key Value’Next Prev TSN=3 Key=K1 Value=15 Reader TSN=2 Lookup K1 Published TSN 2
  • 25. Prepare Finish Publish Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC HASH TABLE UPDATE (PUBLISH) Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Bucket Table Transaction Table Next Prev Infinite Key Value’Next Prev TSN=3 Key=K1 Value=15 Update Published TSN Publish Published TSN 23
  • 26. Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC HASH TABLE READER Next Prev TSN=2 Key=K1 Value=10 hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Next Prev Infinite Key Value’Next Prev TSN=3 Key=K1 Value=15 Reader TSN=3 Lookup K1 Published TSN 3
  • 29. SKIP LISTS H 10 20 30 40 50 50% have height >=225% have height >=3Head Height ~= log2(n) 30>=next.value? Find Value=30?
  • 30. SKIP LISTS - INSERTION 20 30 40 50 15 Pick random height 10H
  • 31. SKIP LISTS - INSERTION 20 30 40 50 15 Pick random height 10H
  • 32. SKIP LISTS - INSERTION H 10 20 30 40 50 15 Pick random height
  • 33. SKIP LISTS – INSERTION RESULT H 10 20 30 40 5015
  • 34. Next Prev TSN=3 Key=K1 Value=15 Index Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC INDEXING USING SKIP LISTS hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Published TSN 22 Finish 5. Update Index Next Prev TSN=2 Key=K1 Value=10 Index
  • 35. 5. Update Index Next Prev TSN=3 Key=K1 Value=15 Index Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 MVCC INDEXING USING SKIP LISTS hash(key)%tablesize Bucket Table Transaction Table Prepare Finish Publish Published TSN 22 Finish Next Prev TSN=2 Key=K1 Value=10 Index
  • 36. SKIP LISTS – 5. UPDATE INDEX H 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 Next Prev TSN Key Value Index L0 Index L1 Index L2 K1
  • 37. SKIP LISTS – 5. UPDATE INDEX H 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 Next Prev TSN Key Value Index L0 Index L1 Index L2 K1
  • 38. SKIP LISTS – INSERTION RESULT H 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 Next Prev TSN Key Value Index L0 Index L1 Index L2 K1
  • 39. SKIP LISTS – FIND [12-25], TSN=2 H 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 Next Prev TSN Key Value Index L0 Index L1 Index L2 K1
  • 40. SKIP LISTS – FIND [12-25], TSN=3 H 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 Next Prev TSN Key Value Index L0 Index L1 Index L2 K1
  • 41. LOCK-FREE INSERTIONS SUMMARY  CAS (compare-and-swap) on previous entity – one winner  Bottom-up preserves skip-list for every level, allowing wait-free readers  Help vacuum ensures lock-freedom H 10 20 30 40 15 17
  • 42. LOCK-FREE INSERTIONS SUMMARY  CAS (compare-and-swap) on previous entity – one winner  Bottom-up preserves skip-list for every level, allowing wait-free readers  Help vacuum ensures lock-freedom H 10 20 30 4015 17
  • 43. Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 H T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Reader TSN Epoch Thread=1234 2 17 Thread=1235 3 17Vacuum wait
  • 44. Reader TSN Epoch Thread=1234 2 17 Thread=1235 3 17 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 H T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Vacuum wait
  • 45. Reader TSN Epoch Thread=1235 3 17 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 H T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry
  • 46. Reader TSN Epoch Thread=1235 3 17 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Vacuum phase 1 H
  • 47. Reader TSN Epoch Thread=1235 3 17 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Vacuum epoch wait H
  • 48. Reader TSN Epoch Thread=2345 3 18 Thread=1235 3 17 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Vacuum epoch wait H
  • 49. Reader TSN Epoch Thread=2345 3 18 Thread=1235 3 17 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Vacuum epoch wait H
  • 50. Reader TSN Epoch Thread=2345 3 18 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Vacuum epoch wait H
  • 51. Reader TSN Epoch Thread=2345 3 18 Tx ID TSN UUID=1234 Tx ID TSN UUID=1234 3 VACUUM, EPOCH BASED DEFERRED RECLAMATION hash(key)%tablesize Bucket Table Transaction Table Published TSN 23 T 10 K1 P N 2 15 P N 3 20 K3 P N 2 30 K4 P N 2 40 K5 P N 2 50 K6 P N 2 K1 Snapshot Registry Vacuum phase 2 H
  • 52. MVCC SUMMARY  Map and indexes both under MVCC  Index scans are wait-free (and simple/fast)  Insert/update/delete are lock-free  Automated reclamation of storage
  • 53. EFFICIENT AND SAFE API transactionManager.read((snapshot) -> { QueryIterator<ProductCO> products = snapshot.query(ProductCO._ID.range(‘IMC’,’Stibo’)); while (products.next()) { CacheEntry<ProductCO> entry = queryIterator.entry(); long typeId = entry.longValue(ProductCO::getObjectType); CacheEntry<ObjectTypeCO> type = snapshot.get(typeId); // can do gets, queries etc. on the same snapshot safely for all kinds of objects } } public class ProductCO { long getObjectType(ValuePointer ptr) { … } } No object copies, no GC, efficient accessOften JVM can inline entire query to one native method 1 2 3 4 5
  • 54. DIY USEFUL LEARNING • Memory model (java different from C++) and CAS operations • Assembly • CPU memory architecture • Wait-free and lock-free algorithms • Enumerate all states • Think about state transitions • Try to formally proof it right • Deletions are often the most tricky part • Do not even think about “this will never happen”, because it will
  • 55. IN-MEMORY VENDOR QUESTIONS  Direct access to data or only access to copies of data?  And direct access to individual fields in an entry?  Index/Query engine MVCC consistent with map gets and/or additional queries?  Will index scans/queries acquire locks?  Will index inserts acquire locks?  Will map get/put operations acquire locks?  Memory overhead per entry?  Memory overhead per index (per entry)?  How do you avoid memory fragmentation?  Do you lock pages in memory and use huge/large pages?