- File Size: 4966 KB
- Print Length: 218 pages
- Publisher: Red Gate Books (December 4, 2014)
- Publication Date: December 4, 2014
- Sold by: Amazon Digital Services LLC
- Language: English
- ASIN: B00QMWX8PO
- Text-to-Speech: Enabled
- Word Wise: Not Enabled
- Lending: Enabled
- Amazon Best Sellers Rank: #351,946 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
|Print List Price:||$29.99|
Save $20.00 (67%)
SQL Server Internals: In-Memory OLTP: Inside the SQL Server 2014 Hekaton Engine Kindle Edition
|New from||Used from|
|Length: 218 pages||Enhanced Typesetting: Enabled||Page Flip: Enabled|
Matchbook Price: $0.00
For thousands of qualifying books, your past, present, and future print-edition purchases now lets you buy the Kindle edition for $2.99 or less. (Textbooks available for $9.99 or less.)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Customers who bought this item also bought
Would you like to tell us about a lower price?
Top Customer Reviews
In-Memory OLTP introduces a fundamental shift in how the database engine stores and accesses data. This book walks you through each of these topics with almost perfect precision. I would suggest reading this book from beginning to end. This way, when needed, you can refer back to a chapter and have an understanding of its context in the larger system.
The first three chapters are the preliminaries of In-Memory OLTP. Chapter 2 introduces the basics and some of the limitations of the technology and in chapter 3 the reasons behind those limitations become clear with the discussion of row structure. These chapters bring into light that we’re dealing with something new and unique. A traditional in-memory data structure that respects the ACID properties of a transactional relational database system
I felt than the second half of Chapter 4 on range indexes struggled to eloquently describe the technical nuances of the bw-tree data structure. I read this chapter several times and still struggled. Also, it is not entirely clear what the benefit of the mapping table is, I had to refer to the research paper for clarity here
Chapter 5 describes transactions and the opportunistic locking design that In-Memory OLTP uses. In contrast to pessimistic locking which requires latches and locks, opportunistic locking uses a validation technique at the time a transaction attempts to commit it’s data. Even thought it’s covered in detail in other texts, I would have liked deeper coverage on read phenomena here.
The best chapter in the book is Chapter 6 logging and recovery. Logging and recovery are completely re-engineered in In-Memory OLTP. This chapter walks you through the entire process culminating with an exceptional discussion on the recovery process. This chapter is so smooth it feels like a conversation.
Chapter 7 describes native compilation of tables and stored procedures, it’s interesting that after the bottlenecks of disk, latching and locking are removed we’re left with compilation as a potential bottleneck. This chapter presents the techniques used by In-Memory OLTP’s native compilation feature and it’s limitations.
The book concludes with a chapter on configuration best practices and where In-Memory OLTP fit in the database world. This part of the book is key for those that have to evaluate a technology for it’s architectural fit into their data-tier.
There are few shortcomings with this book, the bw-tree could have been more clearly explained. Parts of the book may be hard to approach for some, but it is covering a bleeding-edge topic that is still being actively researched. The book toes the line between IT topic and graduate level computer science. I’m surprised I didn’t see some complexity analysis in some of the chapters :)
This is the book that you will reach for when you have a question about how it works. I really look forward to when In-Memory OLTP matures enough that some it current limitations are relaxed.
Thank you to Kalen and the folks at RedGate for this release!
A more detailed review is available here:
I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.
In-Memory OLTP is the major new feature in SQL Server 2014. In this slim volume a notable internals expert endeavours to explain it all.
Historically, memory has been expensive, so SQL Server was built with a consideration for disk-based storage. However things have changed, memory is increasingly cheap and systems with multiple CPUs are commonplace. In-Memory OLTP takes advantage of this technology shift.
SQL Server 2014 can be defined primarily as a performance-based release, with its main feature being In-Memory OLTP, so this book should be of great interest to DBAs and keen SQL developers. Specifically the book is “...focusing on details of memory-optimized tables and indexes, how the in-memory engine delivers transactional consistency (ACID compliance) without locking or latching, and the mechanics of its checkpointing, logging and garbage collection mechanisms.”
The author is a well-known SQL Server internals expert, widely known as the author/editor of the SQL Server Internals series of books and . my review of SQL Server 2012 Internals is also on I Programmer, here.
Below is a chapter-by-chapter exploration of the topics covered.
Chapter 1 What's Special About In-Memory OLTP?
In-Memory OLTP centres on in-memory tables and indexes, the lock and latch free concurrency model, and natively compiled stored procedures. These features are implemented transparently, and can improve performance significantly. The chapter expands on these central topics.
In-Memory tables and their indexes are held entirely in memory. The tables do not have pages or extents, instead they are sequential rows held together by indexes - you must define at least one index.
Natively compiled stored procedures contain fewer CPU instructions, and need no further compilation/interpretation to run, potentially making them significantly faster than the traditional interpreted stored procedures. Natively compiled stored procedures can only run against In-Memory tables, whereas traditional interpreted stored procedures can run against both disk-based tables and In-Memory tables via interop, during cross–container transactions.
In-Memory OLTP further improves performance by implementing a new Multi-Version Concurrency Control (MVCC) mechanism to facilitate optimistic concurrency. Here there are no locks or latches, instead multiple versions of rows can be created, and the correct rows chosen based on the timestamps/statuses contained within each row.
Indexes on In-Memory tables have a different structure compared with disk-based indexes. There must be at least one index present to give the table structure, and only one unique index can be created (a primary key can do this). Changes to indexes are never logged, since during recovery the indexes are recreated from the underlying In-Memory table. There are 2 types of indexes: Hash (best for looking up specific values) and Range (best for looking up a range of values).
The chapter ends with a look at comparable products from competitors. The main impression is only the Microsoft product provides the advantage of partial implementation (i.e. you can move only your critical tables/stored procedures to In-Memory OLTP). This area is rapidly changing so expect frequent developments.
This chapter provides an overview of what In-Memory OLTP is, its components and structures, and why it is important. To put In-Memory OLTP into context, comparisons are made with disk-based tables, and related products from competitors. This chapter provides a good overview of what to expect in the rest of the book, it already feels narrow in scope but with significant depth.
Throughout the book there are useful diagrams to support the discussions, good links with related chapters, and links to websites for further information.
This book covers a well-defined topic in-depth, with the central aim of showing you how In-Memory technology is implemented internally, together with some best practices for its usage. The book is both cohesive and coherent, probably due to having been written by a single author. The whole book contains useful links between the chapters, helpful diagrams to support the discussions, useful website links for further information, and code to help cement your own understanding.
Although the book's introduction says you don't need to be a SQL Server expert to read it, it quickly becomes apparent you are going to go deep into the subject matter.
If you want to get up to speed with the new In-Memory OLTO technology, the major reason for moving to SQL Server 2014, I cannot recommend this book highly enough – in my opinion this is how a technology book should be written, concise and with depth.
A free PDF version of this book is expected to be available from the Red Gate website in December.