DB-08: A Day in the Life of a Type II Record Richard Banville Progress Fellow.

Slides:



Advertisements
Similar presentations
The Architecture of Oracle
Advertisements

Intercontinental Database Development Mike Furgal September 18 th, 2007.
Accessing data Transactions. Agenda Questions from last class? Transactions concurrency Locking rollback.
DB-03: A Tour of the OpenEdge™ RDBMS Storage Architecture Richard Banville Technical Fellow.
CS4432: Database Systems II Buffer Manager 1. 2 Covered in week 1.
Some More Database Performance Knobs North American PUG Challenge
T OP N P ERFORMANCE T IPS Adam Backman Partner, White Star Software.
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
OPS-28: A New Spin on Some Old Latches Richard Banville Fellow.
Hashing and Indexing John Ortiz.
DB-13: Database Health Checks How to tell if you’re heading for The Wall Richard Shulman Principal Support Engineer.
File Systems Examples.
File Management Chapter 12. File Management A file is a named entity used to save results from a program or provide data to a program. Access control.
A HEAP OF CLUSTERS A look into heaps vs. clustered tables Ami Levin CTO, DBSophic X.
1 Lecture 8: Data structures for databases II Jose M. Peña
Efficient Storage and Retrieval of Data
Physical design. Stage 6 - Physical Design Retrieve the target physical environment Create physical data design Create function component implementation.
File Organizations and Indexing Lecture 4 R&G Chapter 8 "If you don't find it in the index, look very carefully through the entire catalogue." -- Sears,
Virtual Memory BY JEMINI ISLAM. What is Virtual Memory Virtual memory is a memory management system that gives a computer the appearance of having more.
Crash recovery All-or-nothing atomicity & logging.
1.1 CAS CS 460/660 Introduction to Database Systems File Organization Slides from UC Berkeley.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Database I/O Mechanisms
New Generation of OpenEdge ® RDBMS Advanced Storage Architecture II Tomáš Kučera Principal Solution Engineer / EMEA Power Team.
Memory Management ◦ Operating Systems ◦ CS550. Paging and Segmentation  Non-contiguous memory allocation  Fragmentation is a serious problem with contiguous.
Administration etc.. What is this ? This section is devoted to those bits that I could not find another home for… Again these may be useless, but humour.
Birth, Death, Infinity Gus Björklund. ???. Dan Foreman. BravePoint. PUG Challenge Dusseldorf 2014.
Birth, Death, Infinity Gus Björklund. Progress. Dan Foreman. BravePoint. PUG Challenge Americas, 9-12 June 2013.
Database Management 8. course. Query types Equality query – Each field has to be equal to a constant Range query – Not all the fields have to be equal.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
Chapter pages1 File Management Chapter 12.
Files CS Spring Overview Example: FAT File System File Organization File System Organization –File Directories and File Sharing –Record Blocking.
A first look at table partitioning PUG Challenge Americas Richard Banville & Havard Danielsen OpenEdge Development June 9, 2014.
Chapter 4. INTERNAL REPRESENTATION OF FILES
DB-02 What’s New in the OpenEdge ® RDBMS Angelo Tracanna, Sr Manager, OpenEdge Data Management Products Tom Harris, Director, RDBMS Development Brian Werne,
1 Concurrency Control II: Locking and Isolation Levels.
1 File Management Chapter File Management n File management system consists of system utility programs that run as privileged applications n Concerned.
IN-MEMORY OLTP By Manohar Punna SQL Server Geeks – Regional Mentor, Hyderabad Blogger, Speaker.
CS 405G: Introduction to Database Systems 21 Storage Chen Qian University of Kentucky.
Database structure and space Management. Segments The level of logical database storage above an extent is called a segment. A segment is a set of extents.
Chapter 4. INTERNAL REPRESENTATION OF FILES
CS 153 Design of Operating Systems Spring 2015 Lecture 21: File Systems.
DB-15: Inside The Recovery Subsystem Plan to commit; Be prepared to rollback. Richard Banville Fellow, Technology and Product Architecture Progress OpenEdge.
1 Logical I/O Julian Dyke Independent Consultant Web Version juliandyke.com © 2005 Julian Dyke.
St. Petersburg 1703 Philadelphia 1682 George Potemkin Russia Dmitri Levin alphabroder DBAnalys To The Rescue! Disclaimer: The presentation is highly technical.
OPS-12: A New Spin on Some Old Latches Richard Banville Fellow.
Physical Database Design Purpose- translate the logical description of data into the technical specifications for storing and retrieving data Goal - create.
Preface 1Performance Tuning Methodology: A Review Course Structure 1-2 Lesson Objective 1-3 Concepts 1-4 Determining the Worst Bottleneck 1-5 Understanding.
CSCI 156: Lab 11 Paging. Our Simple Architecture Logical memory space for a process consists of 16 pages of 4k bytes each. Your program thinks it has.
CS 540 Database Management Systems
3 Copyright © 2004, Oracle. All rights reserved. Database Architecture Comparison.
What Should a DBMS Do? Store large amounts of data Process queries efficiently Allow multiple users to access the database concurrently and safely. Provide.
1 CS122A: Introduction to Data Management Lecture #14: Indexing Instructor: Chen Li.
Storage Tuning for Relational Databases Philippe Bonnet – Spring 2015.
Select Operation Strategies And Indexing (Chapter 8)
Oracle Database Architectural Components

Module 11: File Structure
Behind The Scenes: Updating A Record
CS222/CS122C: Principles of Data Management Lecture #3 Heap Files, Page Formats, Buffer Manager Instructor: Chen Li.
Database Management Systems (CS 564)
Lecture 10: Buffer Manager and File Organization
Transaction Management
Introduction to Database Systems File Organization and Indexing
Database Internals: How Indexes Work
Chapter 13: Data Storage Structures
CS703 - Advanced Operating Systems
Internal Representation of Files
The File Manager Implementation issues
Presentation transcript:

DB-08: A Day in the Life of a Type II Record Richard Banville Progress Fellow

2© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Agenda n Update a record n Details

3© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Major Shared-Memory Structures Buffer pool (-B) Lock Table (-L) BI Buffers (-bibufs)AI Buffers (-aibufs) Transaction Table (-n) Usrctl (-n) Srvctl (-Mn) Object Cache (-omcache)

4© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record DO TRANSACTION: FIND customer WHERE cust.name = “Dopey”. cust.name = “Smarty” cust.city = “Orlando” cust.state = “FL”. END. A Simple Program Begin Transaction. Find Index Entry via chosen index Lock & Retrieve record

5© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record DO TRANSACTION: FIND customer WHERE cust.name = “Dopey”. cust.name = “Smarty” cust.city = “Orlando” cust.state = “FL”. END. A Simple Program Update record buffer w/changed fields Make any index changes Save record changes

6© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record DO TRANSACTION: FIND customer WHERE cust.name = “Dopey”. cust.name = “Smarty” cust.city = “Orlando” cust.state = “FL”. END. A Simple Program Commit the updates Release or downgrade locks

7© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Details Part I Getting the Record Begin Transaction. Find Index Entry via chosen index Lock & Retrieve record

8© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Start Transaction n Acquire a transaction entry n Begin note deferred Transaction Table (-n) Usrctl (-n) User Id 9Trans Id

9© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Finding the Record n Lookup record by area/rowid n Rowid stored in index –Associates known value with rowid –Know values are ordered within index n Language picks index –Choice based on statement n For fast access –have index that matches predicate

10© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Index Entry n An index entry consists of two parts: –key (one or more components) –rowid of the record containing the key Key Component(s) Name Rec-Id Bashful 256 Doc 3341 Dopey 9794 Grumpy 9806 Happy 9876 Sleepy 7776 Sneezy 512 Key Component(s) Cust-Num Rec-Id

11© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... B-tree Layout Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... root internal leaf Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... records Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Need Area & Root Block to start traversal (Name Index)

12© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Disk Storage Files Storage Areas Schema AreaArea 7Area 8 Extent Table A Table BCust TblTable D Index A-1 Index B-1Name Idx Cust# IdxSRep IdxIndex D-1Index D-2 Logical Physical Languages Storage Engine

13© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Disk Storage Files Storage Areas and Object Mapping Schema AreaArea 7Area 8 Extent Table A Table B Cust Tbl Table D Index A-1 Index B-1 Name IdxCust# IdxSRep IdxIndex D-1Index D-2 Logical Physical Mapping Languages Storage Engine

14© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Object Mapping Cache replacing Hash Table LRU Chain “oldest” “newest” aging Area 6Area 7Area 8Area 9 T1I1T3I3T2I2T4I4 Array of cache entries (unordered) Each entry contains area info & root block

15© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Performance (omlru simplified) replacing Hash Table LRU Chain “oldest” “newest” aging Omlru avoidance when –omsize proper Area 6Area 7Area 8Area 9 T1I1T3I3T2I2T4I4 Find I2/T2 Find I1/T1 Find I3/T3 Find I2 …Find I1/T1

16© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record We know the Index’s area We know the rowid of the index root block Let’s find it so we can traverse the index

17© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Find Buffer in Buffer Pool replacing Hash Table (-hash) LRU Chain “oldest” “newest” aging MMMM MMMM Checkpoint Queue MMMM Page Writer Queue database Array of (–B) buffer pool entries (unordered) May need to flush data on page-in (if APW peak performance)

18© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Effect of -Bp replacing Hash Table (-hash) LRU Chain “oldest” “newest” aging MMMM User 1 –Bp LRU Chain User 2 –Bp LRU Chain

19© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Find the “Dopey” Entry Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... root internal leaf Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... records Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Compression effects number of blocks traversed

20© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Free List Active & Queued (Waiting) Lock Entries Hash Table (-lkhash) The Lock Table (-L) X X SQ Row-id Table-id Owner Lock State Next Pointer Lock Table Entry S S X X Need to share lock the record (even though the record wasn’t located yet!) (9794) (1) (Shared) (User Id 9)

21© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record We know the Record’s rowid In the interest of time, assume we’ve done the object mapping and attempted the lookup in the buffer pool Let’s go get the record

22© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Reading a Record from Disk * Block numbers 1 to 8,388,608 Row numbers 0 to 255 ROWID prostrct list : d “Customer":8,64 x_7.d1 f 384 d “Customer":8,64 x_7.d2 f 3200 d “Customer":8,64 x_7.d3 Looking for ROWID 9794, Table 1, Area 8 Find _Area where _Area-number = 8. Display _Area-recbits _Area-Blocksize

23© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Reading a Record from Disk Find _Area where _Area-number = 8. Display _Area-recbits _Area-Blocksize. prostrct list : d “Customer":8,64 x_7.d1 f 384 d “Customer":8,64 x_7.d2 f 3200 d “Customer":8,64 x_7.d3 Looking for ROWID 9794, Table 1, Area * Block numbers 1 to 33,554,432 Row numbers 0 to 63 ROWID 9794 * Block: 153 Row: 2

24© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Get the Record Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 1 Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 1 Language Record Buffer Find the record and assemble all the pieces. Rowid 9794 Rowid 2828 Row 2 in Block 153 of area 8

25© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Details Part II Perform Updates Update record buffer w/changed fields Make any index changes Save record changes

26© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Update Fields in Record Buffer n New row is larger than original –Field values stored variable size n Need more space –We can handle it new original Language Record Buffer State Name

27© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Free List (-L) Active & Queued (Waiting) Lock Entries Hash Table (-lkhash) Upgrade the Lock to EX X X SQ Row-id Table-id Owner Lock State Next Pointer Lock Table Entry S S X X (9794) (1) S S

28© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Free List (-L) Active & Queued (Waiting) Lock Entries Hash Table (-lkhash) Lock Conflict! X X SQ S S X X XQ Queued entry - We must wait (Watch out for deadlock!) (-lkwtmo)

29© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Free List (-L) Active & Queued (Waiting) Lock Entries Hash Table (-lkhash) Now We Got It X X SQ S S X X XQ X X

30© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Key Component(s) Name Rec-Id Bashful 256 Doc 3341 Dopey 9794 Grumpy 9806 Happy 9876 Sleepy 7776 Sneezy 512 Non-unique Key Updating an Index Entry Key Component(s) Name Rec-Id Bashful 256 Doc 3341 Dopey 9794 Grumpy 9806 Happy 9876 Sleepy 7776 Smarty 9794 Sneezy 512 Non-unique Key “Dopey” goes “Smarty” Key Component(s) Name Rec-Id Bashful 256 Doc 3341 Dopey Grumpy 9806 Happy 9876 Sleepy 7776 Smarty 9794 Sneezy 512 Unique Key

31© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Update the Record Blocks Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 1 Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 1 Language Record Buffer All buffer pool actions replayed Rowid 9794 Rowid 2828 Reallocate space fragment by fragment OOPs, out of space!

32© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Need Space? Record block free chain for Customer table Cust Object Block Cust Object Block 4K 2K 8K Record block free chain for Order table Order Object Block Order Object Block Objects are selfish with their space allocation chains

33© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Need Space? Record block free chain for Customer table Cust Object Block Cust Object Block Blocks on RM free chain governed by Record Packing Factor Records/Block, Create Limit (75/150), Toss Limit (150/300) Blocks checked, recycled or tossed is limited (internal boundaries) Example: Need 200 bytes Toss RecycleTake/ Toss

34© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Need Space? Record block free chain for Customer table Cust Object Block Cust Object Block Blocks on RM free chain governed by Record Packing Factor Records/Block, Create Limit (75/150), Toss Limit (150/300) Blocks checked, recycled or tossed is limited (internal boundaries) Example: Need 300 bytes Toss Recycle

35© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Cluster Size Matters Record block free chain for Customer Table Cust Object Block Cust Object Block 8K Area Control Object Area Control Object 8K Area Cluster Free Chain

36© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Cluster Size Matters Record block free chain for Customer Table Cust Object Block Cust Object Block 8K Area Control Object Area Control Object 8K Area Cluster Free Chain Cluster free chain empty? Raise area HWM or extend area.

37© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Connect All Fragments Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 1 Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 1 Language Record Buffer Rowid 9794 Rowid 2828 Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 1 Rowid 10240

38© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Details Part III Make it real Commit the updates Release or downgrade locks

39© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record End Transaction Transaction Table (-n) Usrctl (-n) User Id 9 Trans Id Release Transaction Entry Write Commit Note/do commit processing

40© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record S S S S EQ Free List Active & Queued (Waiting) Lock Entries Hash Table (-lkhash) Release/Downgrade Locks X X SQ X X Awaken users waiting on lock Release exclusive lock SQ EQ SQ X X EQ

41© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record In Summary n YOU: Simple Update n WE: Lots of work n You can Enhance the Process

42© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Questions?

43© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record Thank you for your time!

44© 2005 Progress Software Corporation DB-08: A Day in the Life of a Type II Record