SlideShare a Scribd company logo
1 of 28
Download to read offline
LOCKLESS
MARK BROADBENTMARK BROADBENT
I N S E A T T L EI N S E A T T L EI N S E A T T L E
LOCKLESSLOCKLESS
Using In-Memory OLTP
for Transaction Processing
Using In-Memory OLTP
for Transaction Processing
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
@retracement
mark.broadbent@sqlcambs.org.uk
Likes…
Community…
Badges…
Contact…
tenbulls.co.uk Guilty pleasures…
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Agenda
Why IMOLTP?
1
Limitations
4
The best part of the
presentation… Gin O‘Clock
5
Isolation & TP
Control
4
Implementation
Architecture
2
3
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Serial Processing
• Theoretically at least, serial execution time
(should) = our slowest throughout speed.
(This is the 2nd law of Concurrency Control)
• Our aim then is to execute workloads in
parallel right?!
• But when we do, our typical resource
bottlenecks are:
• Memory
• CPU
• Disk IO
Read R1
Read R2
Write R3
T1
Read R1
Read R2
Write R3
T2
Read R4
Write R4
T4
Read R4
Write R4
T3
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Parallel Processing requires Transaction Interleaving
T1 Read R1
T2 Write R1
T2 Read R2
T1 Write R3
T2 Write R3
T3 Read R4
T3 Write R4
T4 Read R4
T4 Write R3
T2 (write) waits for T1 to
release Xlock on R3
Xlock is released when?
T2 (write) waits for T1 to
release Slock on R1
Slock is released when?
Pessimistic
Disk based
Optimistic
T2 (write) is not blocked
by T1 (read)
Why no blocking?
T2 (write) waits for T1 (write)
to release Xlock on R3
Why is there blocking?
Lock
wait
Lock
wait
Lock
wait
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
IMOLTP
(Optimistic)
Parallel Processing requires Transaction Interleaving
T1 Read R1
T2 Write R1
T2 Read R2
T1 Write R3
T2 Write R3
T3 Read R4
T3 Write R4
T4 Read R4
T4 Write R3
T2 (write) will not be
blocked by T1 (write)
Why are writes not blocked?
T2 (write) will not be
blocked by T1 (read)
(same behaviour on-disk)
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Concurrency Models in SQL 2014 and beyond
• Pessimistic Isolation
• Readers do not block readers
• Writers block readers
• Readers block writers
• Writers block writers
• (disk based) Optimistic Isolation
• Readers do not block readers
• Writers do not block readers
• Readers do not block writers
• Writers block writers
• (In-Memory) Optimistic Isolation
• Readers do not block readers
• Writers do not block readers
• Readers do not block writers
• Writers do not block writers
Governed by lock
compatibility and
implemented through
lock hierarchy and
escalation
Governed by write
conflict detection
orders Object
Page
Row
Sch-M, or object level X
can kill concurrency.
Intent locks and escalation
have overhead!
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
1
100
10000
1000000
1990
1991
1992
1993
1994
1994
1995
1996
1997
1998
1999
2000
2000
2001
2002
2004
2005
2007
2008
2009
2011
US$/GB
$ per GB of PC Class Memory
Hardware Trends
• Hardware trend is for scale not speed
• CPU Core count increases, clock speed static
• Memory sizes increase/ costs fall
• (As disk speeds also increase)
• Concurrency is clearly a software problem
Graphics from BRK3576, In-Memory – The Road Ahead by Kevin Farlee – Ignite Conference 2015
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
In-Memory OLTP to the rescue…
• In-Memory data structures (optimised for memory)
• Persistence through Transaction Log and checkpoint file pair/s
• Logging optimizations and improvements
• No TempDB overhead – all versioning In-Memory
• Lockless and latchless operation
• No fragmentation concerns
• Baked into product
Hash
Index/es
BW Tree
Index/es
Transaction Log
Checkpoint
file pair/s
In-Memory
constructs
Physical
persistence
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
A solution to a problem that doesn’t exist?
• Before Internet we were in db-centric world. We are now in a message centric world
• A defined platform tends to define a solution, when in fact it should be the problem
driving the solution...
• Micro-services, stateless data queues, smaller data repositories, no locking
• Application Caching Fabrics reduce latencies
***Newsflash*** so does SQL Server Caching/ Buffering
• Are monolithic OLTP environments about to become extinct?
Host 1
Container x
Container y
Host 2
Container y
Container x
Host 3
Container x
Container z
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
In-Memory Data Structures (Tables and Indexes)
• Tables
• On create - C file generated, Compiled to DLL and Linked to SQL process
• Structure of the row is optimized for memory residency and access
• Recreated, compiled, linked on database startup
• Indexes (rebuilt at startup)
• Hash indexes for point lookups
• Memory-optimized non-clustered index for range and ordered scans
• Do not duplicate data, just pointers on rows
• Warning! Statistics not auto-updated.
CREATE TABLE…
WITH
(MEMORY_OPTIMIZED=ON)
C file
generated
Compiled Linked to
process
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
In-Memory Data Structures (Natively Compiled Stored Procedures)
• On create - Optimized, C file generated, Compiled to DLL and Linked to SQL process
• Warning, optimised once and Plan based on statistics!
• Not part of plan cache (so not visible in sys.dm_exec_cached_plans)
• Recreated on database startup and compiled on first execution
• They can only access In-Memory Tables
Query
Optimization
C file
generated
Compiled Linked to
process
CREATE PROCEDURE…
WITH
NATIVE COMPILATION
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Demo
Creating in memory tables
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
MemOpt Table: Row Format
Row header Row data “Payload”
Begin Ts End Ts StmtId IdxLinkCount
8 bytes 8 bytes 4 bytes 2 bytes
8 bytes * (IdxLinkCount – 1)
(or) one 8 byte pointer per index
Row valid start
time (creation
time)
Row valid end
time (deletion
time)
Number of indexes
referencing row
Padding
2 bytes
Index pointers
(pointer/s to the
next bucket rows)
Statement
ID for
Halloween
Protection
8060 bytes
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Hash Indexes
Hash fx
0
1
Hash Bucket
(BUCKET_COUNT=8)
2
3
4
5
6
7
Hash Bucket
(BUCKET_COUNT=16)
Dave
Buck
Bob
Martin
Alan
Niko
Karla
0
1
2
3
4
5
6
...
...
15
Dave BallyntyneT1 ∞
Schoombe
Woody
Ballyntyne
Mitchell
Landrum
Neugebauer
Duffy
Hash fx
Buck WoodyT1 ∞
Bob DuffyT1 ∞
Martin SchoombeT1 ∞
Alan MitchellT1 ∞
Niko NeugebauerT1 ∞
Karla LandrumT1 ∞
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
BW-Trees
LPID 1
Intermediate
Pages
Leaf Pages
Page mapping table
LPID PMA
0 0x00008862
1 0x00009862
2 0x00008AA2
3 0x000077C6
4 0x00005B62
5 0x000088BC
Niko Rodders Wendy
Alan Bob Buck Dave
Dave Niko Paul Rodders
LPID 2
LPID 0
LPID 4
Karla Martin Niko
LPID 5
LPID 3
Robert
Delete Buck…
Insert Bill…
Page Delta Records
RPID
T1 ∞ Alan Mitchell
DoffyT1 T2 Bob
T2 ∞ Bob Duffy
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Data Persistence
Log file (.ldf)
Logfile
Log
Buffer 1
Log
Buffer n
Log
Writer
Signal to flush
async
IMOLTP Datafile 1 (container)
a b c d
IMOLTP Datafile 2 (container)
e f
Martin Schoombe
Bob Duffy
Alan Mitchell
Niko Neugebauer
Bob Doffy
T1 ∞
T1 ∞
T1 ∞
T1 ∞
T1 T2
Delta File c
Data File a
Checkpoint
threads
• Checkpoint file pairs, minimum of 8 (in various states)
• Log file primary persistence source
• Database recovery from CFP and Log
• INS to data file, DEL to delta file, Update is INS and DEL
g h
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Log Performance improvements
• Indexes not persisted, rebuilt on start-up
• So NO index maintenance logging
• Log records ordering by Transaction End Timestamps (On disk ordered by LSN)
• Removes requirement for single log stream to disk per DB (implemented in SQL 2016)
• Transaction consolidation into reduced number of log records
• Because only committed transactions
• So NO undo overhead!
• NVDIMM support in Windows 2016!
• See Accelerating SQL Server 2016 peformance with Persistent Memory in Windows Server
2016
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Demo
Logging and improvements
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
SERIALIZABLE
4
None
Supported Isolation Levels when accessing IMOLTP tables
READ UNCOMMITTED
1
“Bad Dependencies”Isolation Level
Dirty Read,
Non-Repeatable Read, Phantoms, Lost Updates
READ COMMITTED
2 Non-Repeatable Read,
Phantoms , Lost Updates
REPEATABLE READ
3
Phantoms
SNAPSHOT
5
None (though Causal consistency concerns, lost update prevention and other behaviours)
*1
*1 Politely elevated (mapped to SNAPSHOT) through MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON
*2 But is supported for auto-commit transactions
*2
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Querying data
• Interop for:
• Cross container queries (but introduce synchronisation concerns)
• Best support
• But uses legacy engine and incurs unnecessary overhead
• Native Compilation for:
• Best Performance (but…)
• Is the most restrictive (and cannot query non in-memory tables)
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Cross-Container Transactions
• Cross container transactions therefore are really two internal transactions that are
synchronized together.
• Cross container (disk/ in-memory) table transactions are supported but only for:
• READCOMMITTED + in-memory SNAPSHOT
• READCOMMITTED + in-memory REPEATABLEREAD/ SERIALIZABLE
• REPEATABLEREAD/ SERIALIZABLE + in-memory SNAPSHOT
• Are synchronization issues for:
• SNAPSHOT + ANY In-Memory isolation (so cant do it!)
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Demo
Isolation
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Gotchas
• Not enough memory to load table causes IMOLTP database stuck in recovery *1
• Running out of memory no transactions
• Combined size of ACTIVE Checkpoint File Pairs on disk equates to approximately 2x the
size of table that’s in Memory (depending upon frequency of updates)
• In-memory row versions and maintenance operations can require in excess of 2-3x size
of table in Memory
• Long running transactions consume more memory for in-memory versions
• No data overwritten on disk. Sequential IO is KEY so locate containers on drives
optimized for this
• Disk is even more important because:
• Transaction log is still king for transaction speed
• Log truncation dependant on data persistence!
*1 Think about database restores
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
In-Memory OLTP Limitations
List based from original post http://bit.ly/2euFIxz at SQLPerformance.com written by Aaron Bertrand
Addresses Feature/Limit SQL Server 2014 SQL Server 2016
Performance Parallelism Not supported Supported
Performance Maximum combined size of durable tables 256 GB 2 TB Physical bounds
Performance Offline Checkpoint Threads 1 1 per container
Performance/ Management ALTER PROCEDURE / sp_recompile Not supported Supported (fully online)
Performance/ Management ALTER TABLE Not supported, (DROP / re-CREATE) Partially supported, (offline operation)
Performance/ Compatibility Nested native procedure calls Not supported Supported
Performance/ Compatibility Natively-compiled scalar UDFs Not supported Supported
Performance/ Compatibility Indexes on NULLable columns Not supported Supported
Compatibility LOB (varbinary(max), [n]varchar(max)) Not supported Supported
Compatibility DML triggers Not supported Partially supported (AFTER, natively compiled)
Compatibility Non-BIN2 collations in index key columns Not supported Supported
Compatibility Non-Latin codepages for [var]char columns Not supported Supported
Compatibility Non-BIN2 comparison / sorting in native modules Not supported Supported
Integrity/ Compatibility Foreign Keys Not supported Supported
Integrity/ Compatibility Check/Unique Constraints Not supported Supported
Compatibility
OUTER JOIN, OR, NOT, UNION [ALL], DISTINCT,
EXISTS, IN
Not supported Supported
Compatibility Multiple Active Result Sets Not supported Supported
Management SSMS Table Designer Not supported Supported
Security Transparent Data Encryption (TDE) Not supported Supported
2014 Unsupported features https://msdn.microsoft.com/en-us/library/dn246937(v=sql.120).aspx
2016 Unsupported features https://msdn.microsoft.com/en-us/library/dn246937(v=sql.130).aspx
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Further reading (research papers and books)
• In-Memory OLTP (In-Memory Optimization) https://msdn.microsoft.com/en-us/library/dn133186.aspx
• High-Performance Concurrency Control Mechanisms for Main-Memory Databases - Per-
Åke Larson, Spyros Blanas, Cristian Diaconu, Craig Freedman, Jignesh M. Patel, Mike Zwilling
• The Hekaton Memory-Optimized OLTP Engine- Per-Ake Larson, Mike Zwilling, Kevin Farlee
• Concurrent Programming Without Locks – Keir Fraser, Tim Harris
• The Bw-Tree: A B-tree for New Hardware Platforms – Justin J. Levandoski, David B. Lomet, Sudipta
Sengupta
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
In Summary (what we have learnt today)…
• Rise in CPU cores, abundance of memory and out of date concurrency model is the
reason why in-memory OLTP is the future
• Interleaving and concurrent execution is why we hit severe bottlenecks in pessimistic
workloads i.e. Blocking is almost assured
• Snapshot Isolation has no bad dependencies, so is a good fit for our new model (as the
new default)
• Adoption will be slow due to some of the complexities (or differences) and restrictions
(which are being removed). It is both a development and administrative concern
• Microsoft are 110% committed to this technology
Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk
Thank you for listening!
Email: mark.broadbent@sqlcambs.org.uk
Twitter: retracement
Blog: http://tenbulls.co.uk
Slideshare: http://www.slideshare.net/retracement

More Related Content

What's hot

Etcd- Mission Critical Key-Value Store
Etcd- Mission Critical Key-Value StoreEtcd- Mission Critical Key-Value Store
Etcd- Mission Critical Key-Value StoreCoreOS
 
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5Tim Mackey
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingColdFusionConference
 
VMware compute driver for OpenStack
VMware compute driver for OpenStackVMware compute driver for OpenStack
VMware compute driver for OpenStackopenstackindia
 
Oracle database on Docker Container
Oracle database on Docker ContainerOracle database on Docker Container
Oracle database on Docker ContainerJesus Guzman
 
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per SecondAmazon Web Services
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10Kenny Gryp
 
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMark Swarbrick
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAndrew Khoury
 
Turn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly SwarmTurn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly SwarmDimitris Andreadis
 
MySQL Oslayer performace optimization
MySQL  Oslayer performace optimizationMySQL  Oslayer performace optimization
MySQL Oslayer performace optimizationLouis liu
 
DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack buildacloud
 
Building and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonBuilding and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonJulia Mateo
 
Container Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup HamburgContainer Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup HamburgTimo Derstappen
 
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutSander Temme
 
Cloud stack troubleshooting
Cloud stack troubleshooting Cloud stack troubleshooting
Cloud stack troubleshooting AlexTian
 
Azure File Share and File Sync guide (Beginners Edition)
Azure File Share and File Sync guide (Beginners Edition)Azure File Share and File Sync guide (Beginners Edition)
Azure File Share and File Sync guide (Beginners Edition)Naseem Khoodoruth
 

What's hot (20)

Etcd- Mission Critical Key-Value Store
Etcd- Mission Critical Key-Value StoreEtcd- Mission Critical Key-Value Store
Etcd- Mission Critical Key-Value Store
 
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
CloudStack Day Japan 2015 - Hypervisor Selection in CloudStack 4.5
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using Caching
 
VMware compute driver for OpenStack
VMware compute driver for OpenStackVMware compute driver for OpenStack
VMware compute driver for OpenStack
 
Oracle database on Docker Container
Oracle database on Docker ContainerOracle database on Docker Container
Oracle database on Docker Container
 
Dev cloud
Dev cloudDev cloud
Dev cloud
 
Mastering VMware Datacenter Part-1
Mastering VMware Datacenter Part-1Mastering VMware Datacenter Part-1
Mastering VMware Datacenter Part-1
 
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office Hours
 
Turn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly SwarmTurn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly Swarm
 
MySQL Oslayer performace optimization
MySQL  Oslayer performace optimizationMySQL  Oslayer performace optimization
MySQL Oslayer performace optimization
 
DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack
 
Building and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and MarathonBuilding and deploying a distributed application with Docker, Mesos and Marathon
Building and deploying a distributed application with Docker, Mesos and Marathon
 
Container Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup HamburgContainer Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup Hamburg
 
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
 
Cloud stack troubleshooting
Cloud stack troubleshooting Cloud stack troubleshooting
Cloud stack troubleshooting
 
Azure File Share and File Sync guide (Beginners Edition)
Azure File Share and File Sync guide (Beginners Edition)Azure File Share and File Sync guide (Beginners Edition)
Azure File Share and File Sync guide (Beginners Edition)
 
Docker Swarm scheduling in 1.12
Docker Swarm scheduling in 1.12Docker Swarm scheduling in 1.12
Docker Swarm scheduling in 1.12
 

Viewers also liked

Aplikasi pengolah kata
Aplikasi pengolah kataAplikasi pengolah kata
Aplikasi pengolah kataHilmi Halim
 
Urban Aquatic Ecosystems
Urban Aquatic EcosystemsUrban Aquatic Ecosystems
Urban Aquatic Ecosystemscmwilk
 
415. reciclaje de pet
415. reciclaje de pet415. reciclaje de pet
415. reciclaje de petdec-admin
 
TAC/Babaeski-GNO
TAC/Babaeski-GNOTAC/Babaeski-GNO
TAC/Babaeski-GNO1962laura
 
Cohort report uploaded to my LinkedIn profile 1Nov2016
Cohort report uploaded to my LinkedIn profile 1Nov2016Cohort report uploaded to my LinkedIn profile 1Nov2016
Cohort report uploaded to my LinkedIn profile 1Nov2016Roshan Chitrakar
 
ASPIRE: The Amundsen Sea Polynya International Research Expedition
ASPIRE: The Amundsen Sea Polynya International Research ExpeditionASPIRE: The Amundsen Sea Polynya International Research Expedition
ASPIRE: The Amundsen Sea Polynya International Research Expeditioncmwilk
 
Mercury isotopes: Probing global and regional cycling and transformation of m...
Mercury isotopes: Probing global and regional cycling and transformation of m...Mercury isotopes: Probing global and regional cycling and transformation of m...
Mercury isotopes: Probing global and regional cycling and transformation of m...cmwilk
 
PaperHive Conversations_ Ines Hasselberg - PaperHive Magazine
PaperHive Conversations_ Ines Hasselberg - PaperHive MagazinePaperHive Conversations_ Ines Hasselberg - PaperHive Magazine
PaperHive Conversations_ Ines Hasselberg - PaperHive MagazineManuel Sierra Alonso
 

Viewers also liked (14)

Funzione Energia
Funzione EnergiaFunzione Energia
Funzione Energia
 
Cinesprint Magazine November 2016
Cinesprint Magazine November 2016Cinesprint Magazine November 2016
Cinesprint Magazine November 2016
 
Aplikasi pengolah kata
Aplikasi pengolah kataAplikasi pengolah kata
Aplikasi pengolah kata
 
Slide share
Slide shareSlide share
Slide share
 
Urban Aquatic Ecosystems
Urban Aquatic EcosystemsUrban Aquatic Ecosystems
Urban Aquatic Ecosystems
 
415. reciclaje de pet
415. reciclaje de pet415. reciclaje de pet
415. reciclaje de pet
 
Canhquankientruc
CanhquankientrucCanhquankientruc
Canhquankientruc
 
TAC/Babaeski-GNO
TAC/Babaeski-GNOTAC/Babaeski-GNO
TAC/Babaeski-GNO
 
Cohort report uploaded to my LinkedIn profile 1Nov2016
Cohort report uploaded to my LinkedIn profile 1Nov2016Cohort report uploaded to my LinkedIn profile 1Nov2016
Cohort report uploaded to my LinkedIn profile 1Nov2016
 
ASPIRE: The Amundsen Sea Polynya International Research Expedition
ASPIRE: The Amundsen Sea Polynya International Research ExpeditionASPIRE: The Amundsen Sea Polynya International Research Expedition
ASPIRE: The Amundsen Sea Polynya International Research Expedition
 
Mercury isotopes: Probing global and regional cycling and transformation of m...
Mercury isotopes: Probing global and regional cycling and transformation of m...Mercury isotopes: Probing global and regional cycling and transformation of m...
Mercury isotopes: Probing global and regional cycling and transformation of m...
 
Ca. de-mama
Ca. de-mamaCa. de-mama
Ca. de-mama
 
PaperHive Conversations_ Ines Hasselberg - PaperHive Magazine
PaperHive Conversations_ Ines Hasselberg - PaperHive MagazinePaperHive Conversations_ Ines Hasselberg - PaperHive Magazine
PaperHive Conversations_ Ines Hasselberg - PaperHive Magazine
 
Testino
Testino Testino
Testino
 

Similar to Lockless in Seattle - Using In-Memory OLTP for Transaction Processing

SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...
SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...
SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...Mark Broadbent
 
MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014) MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014) Frazer Clement
 
How Oracle Single/Multitenant will change a DBA's life
How Oracle Single/Multitenant will change a DBA's lifeHow Oracle Single/Multitenant will change a DBA's life
How Oracle Single/Multitenant will change a DBA's lifeGuatemala User Group
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMario Beck
 
MySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDBMySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDBMark Swarbrick
 
MySQL For Linux Sysadmins
MySQL For Linux SysadminsMySQL For Linux Sysadmins
MySQL For Linux SysadminsMorgan Tocker
 
Using Snap Clone with Enterprise Manager 12c
Using Snap Clone with Enterprise Manager 12cUsing Snap Clone with Enterprise Manager 12c
Using Snap Clone with Enterprise Manager 12cPete Sharman
 
Long and winding road - 2014
Long and winding road  - 2014Long and winding road  - 2014
Long and winding road - 2014Connor McDonald
 
[db tech showcase Tokyo 2015] D25:The difference between logical and physical...
[db tech showcase Tokyo 2015] D25:The difference between logical and physical...[db tech showcase Tokyo 2015] D25:The difference between logical and physical...
[db tech showcase Tokyo 2015] D25:The difference between logical and physical...Insight Technology, Inc.
 
All About Storeconfigs
All About StoreconfigsAll About Storeconfigs
All About StoreconfigsBrice Figureau
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document StoreTed Wennmark
 
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...Insight Technology, Inc.
 
Provisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerProvisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerSimon Haslam
 
Large Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint DeploymentsLarge Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint DeploymentsJoel Oleson
 

Similar to Lockless in Seattle - Using In-Memory OLTP for Transaction Processing (20)

SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...
SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...
SharePoint is from Mars, SQL Server is from Venus (SQL Server for SharePoint ...
 
Developer day v2
Developer day v2Developer day v2
Developer day v2
 
MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014) MySQL Cluster Asynchronous replication (2014)
MySQL Cluster Asynchronous replication (2014)
 
How Oracle Single/Multitenant will change a DBA's life
How Oracle Single/Multitenant will change a DBA's lifeHow Oracle Single/Multitenant will change a DBA's life
How Oracle Single/Multitenant will change a DBA's life
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDB
 
Apouc 2014-enterprise-manager-12c
Apouc 2014-enterprise-manager-12cApouc 2014-enterprise-manager-12c
Apouc 2014-enterprise-manager-12c
 
MySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDBMySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDB
 
MySQL For Linux Sysadmins
MySQL For Linux SysadminsMySQL For Linux Sysadmins
MySQL For Linux Sysadmins
 
dbaas-clone
dbaas-clonedbaas-clone
dbaas-clone
 
Using Snap Clone with Enterprise Manager 12c
Using Snap Clone with Enterprise Manager 12cUsing Snap Clone with Enterprise Manager 12c
Using Snap Clone with Enterprise Manager 12c
 
Why_Oracle_Hardware.ppt
Why_Oracle_Hardware.pptWhy_Oracle_Hardware.ppt
Why_Oracle_Hardware.ppt
 
Long and winding road - 2014
Long and winding road  - 2014Long and winding road  - 2014
Long and winding road - 2014
 
[db tech showcase Tokyo 2015] D25:The difference between logical and physical...
[db tech showcase Tokyo 2015] D25:The difference between logical and physical...[db tech showcase Tokyo 2015] D25:The difference between logical and physical...
[db tech showcase Tokyo 2015] D25:The difference between logical and physical...
 
All About Storeconfigs
All About StoreconfigsAll About Storeconfigs
All About Storeconfigs
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
 
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
 
Provisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerProvisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack Manager
 
Large Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint DeploymentsLarge Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint Deployments
 
Stackato
StackatoStackato
Stackato
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 

More from Mark Broadbent

Being Buck Woody - PASS Summit 2014 Edition
Being Buck Woody - PASS Summit 2014 EditionBeing Buck Woody - PASS Summit 2014 Edition
Being Buck Woody - PASS Summit 2014 EditionMark Broadbent
 
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto EditionEnter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto EditionMark Broadbent
 
SQL Server AlwaysOn for Dummies SQLSaturday #202 Edition
SQL Server AlwaysOn for Dummies SQLSaturday #202 EditionSQL Server AlwaysOn for Dummies SQLSaturday #202 Edition
SQL Server AlwaysOn for Dummies SQLSaturday #202 EditionMark Broadbent
 
Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)
Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)
Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)Mark Broadbent
 
SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...
SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...
SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...Mark Broadbent
 
READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...
READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...
READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...Mark Broadbent
 
PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012
PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012
PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012Mark Broadbent
 
READPAST & Furious: Locking
READPAST & Furious: Locking READPAST & Furious: Locking
READPAST & Furious: Locking Mark Broadbent
 
SQL Server Clustering for Dummies
SQL Server Clustering for DummiesSQL Server Clustering for Dummies
SQL Server Clustering for DummiesMark Broadbent
 
Orders of-magnitude-scale-out-your-sql-server-data-slideshare
Orders of-magnitude-scale-out-your-sql-server-data-slideshareOrders of-magnitude-scale-out-your-sql-server-data-slideshare
Orders of-magnitude-scale-out-your-sql-server-data-slideshareMark Broadbent
 
Thinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lotThinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lotMark Broadbent
 

More from Mark Broadbent (11)

Being Buck Woody - PASS Summit 2014 Edition
Being Buck Woody - PASS Summit 2014 EditionBeing Buck Woody - PASS Summit 2014 Edition
Being Buck Woody - PASS Summit 2014 Edition
 
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto EditionEnter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition
Enter The Dragon - SQL 2014 on Server Core - SQLSaturday #341 Porto Edition
 
SQL Server AlwaysOn for Dummies SQLSaturday #202 Edition
SQL Server AlwaysOn for Dummies SQLSaturday #202 EditionSQL Server AlwaysOn for Dummies SQLSaturday #202 Edition
SQL Server AlwaysOn for Dummies SQLSaturday #202 Edition
 
Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)
Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)
Moves Like Jagger - Upgrading to SQL Server 2012 (SQLBits XI Edition)
 
SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...
SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...
SQLSaturday #188 Lisbon - READPAST & Furious: Transactions, Locking and Isola...
 
READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...
READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...
READPAST & Furious - Transactions, Locking and Isolation. PASS Summit 2012 Ed...
 
PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012
PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012
PASS 2012 "Moves Like Jagger" - Upgrading to SQL Server 2012
 
READPAST & Furious: Locking
READPAST & Furious: Locking READPAST & Furious: Locking
READPAST & Furious: Locking
 
SQL Server Clustering for Dummies
SQL Server Clustering for DummiesSQL Server Clustering for Dummies
SQL Server Clustering for Dummies
 
Orders of-magnitude-scale-out-your-sql-server-data-slideshare
Orders of-magnitude-scale-out-your-sql-server-data-slideshareOrders of-magnitude-scale-out-your-sql-server-data-slideshare
Orders of-magnitude-scale-out-your-sql-server-data-slideshare
 
Thinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lotThinking outside the box, learning a little about a lot
Thinking outside the box, learning a little about a lot
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Lockless in Seattle - Using In-Memory OLTP for Transaction Processing

  • 1. LOCKLESS MARK BROADBENTMARK BROADBENT I N S E A T T L EI N S E A T T L EI N S E A T T L E LOCKLESSLOCKLESS Using In-Memory OLTP for Transaction Processing Using In-Memory OLTP for Transaction Processing
  • 2. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk @retracement mark.broadbent@sqlcambs.org.uk Likes… Community… Badges… Contact… tenbulls.co.uk Guilty pleasures…
  • 3. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Agenda Why IMOLTP? 1 Limitations 4 The best part of the presentation… Gin O‘Clock 5 Isolation & TP Control 4 Implementation Architecture 2 3
  • 4. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Serial Processing • Theoretically at least, serial execution time (should) = our slowest throughout speed. (This is the 2nd law of Concurrency Control) • Our aim then is to execute workloads in parallel right?! • But when we do, our typical resource bottlenecks are: • Memory • CPU • Disk IO Read R1 Read R2 Write R3 T1 Read R1 Read R2 Write R3 T2 Read R4 Write R4 T4 Read R4 Write R4 T3
  • 5. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Parallel Processing requires Transaction Interleaving T1 Read R1 T2 Write R1 T2 Read R2 T1 Write R3 T2 Write R3 T3 Read R4 T3 Write R4 T4 Read R4 T4 Write R3 T2 (write) waits for T1 to release Xlock on R3 Xlock is released when? T2 (write) waits for T1 to release Slock on R1 Slock is released when? Pessimistic Disk based Optimistic T2 (write) is not blocked by T1 (read) Why no blocking? T2 (write) waits for T1 (write) to release Xlock on R3 Why is there blocking? Lock wait Lock wait Lock wait
  • 6. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk IMOLTP (Optimistic) Parallel Processing requires Transaction Interleaving T1 Read R1 T2 Write R1 T2 Read R2 T1 Write R3 T2 Write R3 T3 Read R4 T3 Write R4 T4 Read R4 T4 Write R3 T2 (write) will not be blocked by T1 (write) Why are writes not blocked? T2 (write) will not be blocked by T1 (read) (same behaviour on-disk)
  • 7. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Concurrency Models in SQL 2014 and beyond • Pessimistic Isolation • Readers do not block readers • Writers block readers • Readers block writers • Writers block writers • (disk based) Optimistic Isolation • Readers do not block readers • Writers do not block readers • Readers do not block writers • Writers block writers • (In-Memory) Optimistic Isolation • Readers do not block readers • Writers do not block readers • Readers do not block writers • Writers do not block writers Governed by lock compatibility and implemented through lock hierarchy and escalation Governed by write conflict detection orders Object Page Row Sch-M, or object level X can kill concurrency. Intent locks and escalation have overhead!
  • 8. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk 1 100 10000 1000000 1990 1991 1992 1993 1994 1994 1995 1996 1997 1998 1999 2000 2000 2001 2002 2004 2005 2007 2008 2009 2011 US$/GB $ per GB of PC Class Memory Hardware Trends • Hardware trend is for scale not speed • CPU Core count increases, clock speed static • Memory sizes increase/ costs fall • (As disk speeds also increase) • Concurrency is clearly a software problem Graphics from BRK3576, In-Memory – The Road Ahead by Kevin Farlee – Ignite Conference 2015
  • 9. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk In-Memory OLTP to the rescue… • In-Memory data structures (optimised for memory) • Persistence through Transaction Log and checkpoint file pair/s • Logging optimizations and improvements • No TempDB overhead – all versioning In-Memory • Lockless and latchless operation • No fragmentation concerns • Baked into product Hash Index/es BW Tree Index/es Transaction Log Checkpoint file pair/s In-Memory constructs Physical persistence
  • 10. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk A solution to a problem that doesn’t exist? • Before Internet we were in db-centric world. We are now in a message centric world • A defined platform tends to define a solution, when in fact it should be the problem driving the solution... • Micro-services, stateless data queues, smaller data repositories, no locking • Application Caching Fabrics reduce latencies ***Newsflash*** so does SQL Server Caching/ Buffering • Are monolithic OLTP environments about to become extinct? Host 1 Container x Container y Host 2 Container y Container x Host 3 Container x Container z
  • 11. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk In-Memory Data Structures (Tables and Indexes) • Tables • On create - C file generated, Compiled to DLL and Linked to SQL process • Structure of the row is optimized for memory residency and access • Recreated, compiled, linked on database startup • Indexes (rebuilt at startup) • Hash indexes for point lookups • Memory-optimized non-clustered index for range and ordered scans • Do not duplicate data, just pointers on rows • Warning! Statistics not auto-updated. CREATE TABLE… WITH (MEMORY_OPTIMIZED=ON) C file generated Compiled Linked to process
  • 12. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk In-Memory Data Structures (Natively Compiled Stored Procedures) • On create - Optimized, C file generated, Compiled to DLL and Linked to SQL process • Warning, optimised once and Plan based on statistics! • Not part of plan cache (so not visible in sys.dm_exec_cached_plans) • Recreated on database startup and compiled on first execution • They can only access In-Memory Tables Query Optimization C file generated Compiled Linked to process CREATE PROCEDURE… WITH NATIVE COMPILATION
  • 13. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Demo Creating in memory tables
  • 14. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk MemOpt Table: Row Format Row header Row data “Payload” Begin Ts End Ts StmtId IdxLinkCount 8 bytes 8 bytes 4 bytes 2 bytes 8 bytes * (IdxLinkCount – 1) (or) one 8 byte pointer per index Row valid start time (creation time) Row valid end time (deletion time) Number of indexes referencing row Padding 2 bytes Index pointers (pointer/s to the next bucket rows) Statement ID for Halloween Protection 8060 bytes
  • 15. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Hash Indexes Hash fx 0 1 Hash Bucket (BUCKET_COUNT=8) 2 3 4 5 6 7 Hash Bucket (BUCKET_COUNT=16) Dave Buck Bob Martin Alan Niko Karla 0 1 2 3 4 5 6 ... ... 15 Dave BallyntyneT1 ∞ Schoombe Woody Ballyntyne Mitchell Landrum Neugebauer Duffy Hash fx Buck WoodyT1 ∞ Bob DuffyT1 ∞ Martin SchoombeT1 ∞ Alan MitchellT1 ∞ Niko NeugebauerT1 ∞ Karla LandrumT1 ∞
  • 16. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk BW-Trees LPID 1 Intermediate Pages Leaf Pages Page mapping table LPID PMA 0 0x00008862 1 0x00009862 2 0x00008AA2 3 0x000077C6 4 0x00005B62 5 0x000088BC Niko Rodders Wendy Alan Bob Buck Dave Dave Niko Paul Rodders LPID 2 LPID 0 LPID 4 Karla Martin Niko LPID 5 LPID 3 Robert Delete Buck… Insert Bill… Page Delta Records RPID T1 ∞ Alan Mitchell DoffyT1 T2 Bob T2 ∞ Bob Duffy
  • 17. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Data Persistence Log file (.ldf) Logfile Log Buffer 1 Log Buffer n Log Writer Signal to flush async IMOLTP Datafile 1 (container) a b c d IMOLTP Datafile 2 (container) e f Martin Schoombe Bob Duffy Alan Mitchell Niko Neugebauer Bob Doffy T1 ∞ T1 ∞ T1 ∞ T1 ∞ T1 T2 Delta File c Data File a Checkpoint threads • Checkpoint file pairs, minimum of 8 (in various states) • Log file primary persistence source • Database recovery from CFP and Log • INS to data file, DEL to delta file, Update is INS and DEL g h
  • 18. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Log Performance improvements • Indexes not persisted, rebuilt on start-up • So NO index maintenance logging • Log records ordering by Transaction End Timestamps (On disk ordered by LSN) • Removes requirement for single log stream to disk per DB (implemented in SQL 2016) • Transaction consolidation into reduced number of log records • Because only committed transactions • So NO undo overhead! • NVDIMM support in Windows 2016! • See Accelerating SQL Server 2016 peformance with Persistent Memory in Windows Server 2016
  • 19. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Demo Logging and improvements
  • 20. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk SERIALIZABLE 4 None Supported Isolation Levels when accessing IMOLTP tables READ UNCOMMITTED 1 “Bad Dependencies”Isolation Level Dirty Read, Non-Repeatable Read, Phantoms, Lost Updates READ COMMITTED 2 Non-Repeatable Read, Phantoms , Lost Updates REPEATABLE READ 3 Phantoms SNAPSHOT 5 None (though Causal consistency concerns, lost update prevention and other behaviours) *1 *1 Politely elevated (mapped to SNAPSHOT) through MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON *2 But is supported for auto-commit transactions *2
  • 21. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Querying data • Interop for: • Cross container queries (but introduce synchronisation concerns) • Best support • But uses legacy engine and incurs unnecessary overhead • Native Compilation for: • Best Performance (but…) • Is the most restrictive (and cannot query non in-memory tables)
  • 22. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Cross-Container Transactions • Cross container transactions therefore are really two internal transactions that are synchronized together. • Cross container (disk/ in-memory) table transactions are supported but only for: • READCOMMITTED + in-memory SNAPSHOT • READCOMMITTED + in-memory REPEATABLEREAD/ SERIALIZABLE • REPEATABLEREAD/ SERIALIZABLE + in-memory SNAPSHOT • Are synchronization issues for: • SNAPSHOT + ANY In-Memory isolation (so cant do it!)
  • 23. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Demo Isolation
  • 24. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Gotchas • Not enough memory to load table causes IMOLTP database stuck in recovery *1 • Running out of memory no transactions • Combined size of ACTIVE Checkpoint File Pairs on disk equates to approximately 2x the size of table that’s in Memory (depending upon frequency of updates) • In-memory row versions and maintenance operations can require in excess of 2-3x size of table in Memory • Long running transactions consume more memory for in-memory versions • No data overwritten on disk. Sequential IO is KEY so locate containers on drives optimized for this • Disk is even more important because: • Transaction log is still king for transaction speed • Log truncation dependant on data persistence! *1 Think about database restores
  • 25. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk In-Memory OLTP Limitations List based from original post http://bit.ly/2euFIxz at SQLPerformance.com written by Aaron Bertrand Addresses Feature/Limit SQL Server 2014 SQL Server 2016 Performance Parallelism Not supported Supported Performance Maximum combined size of durable tables 256 GB 2 TB Physical bounds Performance Offline Checkpoint Threads 1 1 per container Performance/ Management ALTER PROCEDURE / sp_recompile Not supported Supported (fully online) Performance/ Management ALTER TABLE Not supported, (DROP / re-CREATE) Partially supported, (offline operation) Performance/ Compatibility Nested native procedure calls Not supported Supported Performance/ Compatibility Natively-compiled scalar UDFs Not supported Supported Performance/ Compatibility Indexes on NULLable columns Not supported Supported Compatibility LOB (varbinary(max), [n]varchar(max)) Not supported Supported Compatibility DML triggers Not supported Partially supported (AFTER, natively compiled) Compatibility Non-BIN2 collations in index key columns Not supported Supported Compatibility Non-Latin codepages for [var]char columns Not supported Supported Compatibility Non-BIN2 comparison / sorting in native modules Not supported Supported Integrity/ Compatibility Foreign Keys Not supported Supported Integrity/ Compatibility Check/Unique Constraints Not supported Supported Compatibility OUTER JOIN, OR, NOT, UNION [ALL], DISTINCT, EXISTS, IN Not supported Supported Compatibility Multiple Active Result Sets Not supported Supported Management SSMS Table Designer Not supported Supported Security Transparent Data Encryption (TDE) Not supported Supported 2014 Unsupported features https://msdn.microsoft.com/en-us/library/dn246937(v=sql.120).aspx 2016 Unsupported features https://msdn.microsoft.com/en-us/library/dn246937(v=sql.130).aspx
  • 26. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Further reading (research papers and books) • In-Memory OLTP (In-Memory Optimization) https://msdn.microsoft.com/en-us/library/dn133186.aspx • High-Performance Concurrency Control Mechanisms for Main-Memory Databases - Per- Åke Larson, Spyros Blanas, Cristian Diaconu, Craig Freedman, Jignesh M. Patel, Mike Zwilling • The Hekaton Memory-Optimized OLTP Engine- Per-Ake Larson, Mike Zwilling, Kevin Farlee • Concurrent Programming Without Locks – Keir Fraser, Tim Harris • The Bw-Tree: A B-tree for New Hardware Platforms – Justin J. Levandoski, David B. Lomet, Sudipta Sengupta
  • 27. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk In Summary (what we have learnt today)… • Rise in CPU cores, abundance of memory and out of date concurrency model is the reason why in-memory OLTP is the future • Interleaving and concurrent execution is why we hit severe bottlenecks in pessimistic workloads i.e. Blocking is almost assured • Snapshot Isolation has no bad dependencies, so is a good fit for our new model (as the new default) • Adoption will be slow due to some of the complexities (or differences) and restrictions (which are being removed). It is both a development and administrative concern • Microsoft are 110% committed to this technology
  • 28. Copyright © 2014, SQLCloud Limited. Please do not redistribute, republish in whole or in part without prior permission of content owner. www.sqlcloud.co.uk Thank you for listening! Email: mark.broadbent@sqlcambs.org.uk Twitter: retracement Blog: http://tenbulls.co.uk Slideshare: http://www.slideshare.net/retracement