11/12/2013

Firebird Tour 2013: detailed schedule for seminar “All About Transactions”

Firebird Tour 2013: seminar “All About Transactions”

Overview

#
Topic
Speaker
Time
1
Overview of Firebird development
Vlad Khorsun
30
2
Overview of transactions concept and its parameters.  Examples of transactions parameters and their usage.
Alexey Kovyazin/Pavel Cizar
45
3
Transaction in Firebird: peculiarities and special parameters.  Transaction inventory page, versions and how transactions work in multi-generation database.
Dmitry Kuzmenko
60

Coffee-Break

15
4
Inside Firebird transactions: what happen inside engine during transactions’ start, commit, rollback. What is retaining, autocommit, how transactions work with GTT. Memory consumption for transactions processing.
Vlad Khorsun
60
5
Transactions interaction and best practices for application development. Conflicts between transactions.
Dmitry Kuzmenko
60

Lunch

60
6
Garbage collection mechanism and sweep in details
Vlad Khorsun
45
7
Transactions management in various drivers (Delphi, .NET, Java, etc): parameters and approaches.
Dmitry Kuzmenko/Jiri Cincura
45

Coffee-Break

15
8
Diagnosing transaction management problems: most prevalent problems, how to catch and fix them.
Alexey Kovyazin
60
9
Round table

45

Detailed plan

   1.       Overview of Firebird development
a.       New features and details of Firebird development,
b.      Plan for next releases
   2.       Overview of transactions concept and its parameters.  Examples of transactions parameters and their usage.
a.       Historical overview of transactions: locking engines, dirty read, why Firebird has only snapshot и read_committed
b.      Transaction as logical operation: bridge between business logic and database implementation
c.       What is ACID
d.      Isolation levels: standard levels and Firebird levels
e.      read only\write
f.        wait and nowait
g.       Examples of transactions with various isolation levels, read-only/write and wait/nowait, from the client point of view
   3.       Transaction in Firebird: peculiarities and special parameters.  Transaction inventory page, versions and how transactions work in multi-generation database.
a.       Full syntax of SET TRANSACTION and TPB parameters
b.      Some undocumented parameters
c.       Who create transactions
                                                               i.      Application
                                                             ii.      System transaction (tx #0)
                                                            iii.      Garbage collector
                                                           iv.      Autonomous transactions
                                                             v.      Triggers ON CONNECT\ON DISCONNECT
d.      Versioning basics
e.      How versions are being created
f.        States of transaction in Firebird (active, committed, rolled back, limbo)
g.       Visibility of record versions in transactions
h.      Key differences between Read Committed and Snapshot
i.         Triggers for transactions start and stop
j.        Context variables at transaction’s level
k.       GTT and read-only transactions

   4.    Inside Firebird transactions: what happen inside engine during transactions’ start, commit, rollback.
a.       What happens at transactions’ start
                                                               i.      Global transaction markers (OAT, OST, OIT) and their meaning
                                                             ii.      Autosweep
b.      What happens at transaction commit
                                                               i.      How DWF works
                                                             ii.      DDL queries
                                                            iii.      Dispatching events
                                                           iv.      Flush of dirty pages
                                                             v.      TIP processing
c.       What happens at rollback
                                                               i.      Standard rollback with cache flush
                                                             ii.      Forces rollback without cache flush
                                                            iii.      Rollback transactions with undo-log
                                                           iv.      Rollback without undo-log
d.      What is retaining
e.      Auto-commit (does anybody know about it?)
f.        Managing memory for transactions
                                                               i.      Temporary BLOBs
                                                             ii.      Undo-log
g.       Local TIP and related issues
   5.       Transactions interaction and best practices for application development. Conflicts between transactions.
a.       Transactions interactions types
b.      Templates for transaction usage in application development
c.       Scenarios breakdown: Readers and Readers, Readers and Writers, Writers and Writers
d.      Best practices
                                                               i.      Dictionaries
                                                             ii.      Splitting read and write transactions
                                                            iii.      Locking record with empty Update
                                                           iv.      Locking with SELECT WITH LOCK
                                                             v.      Reports
                                                           vi.      Serialization: how to build effective queues

   6.    Garbage collection mechanism and sweep in details       
a.       Why we need sweep?
b.      How sweep works
c.       Types of the sweep: cooperative, background, background
d.      Differences between sweep and garbage collection
e.      Autosweep: pro and contras
f.        Examples of application design mistakes which lead to excessive garbage

   7.   Transactions management in various drivers (Delphi, .NET, Java, etc): parameters and approaches.
a.       What are direct and non-direct client drivers?
b.      BDE, dbExpress, ODBC, .Net
c.       IBX, FIBPlus, FireDAC
d.      Transactions management in applications: examples
e.      How to manage transactions lifetime in various drivers
f.        How to implement edit dialogs in the effective and safe way
g.       Commit retaining

   8.   Diagnosing transaction management problems: most prevalent problems, how to catch and fix them.
a.       What we can see at gstat -h
b.      OIT, OST, OAT, NEXT  - their combinations and what they mean
c.       When garbage collection does not work?
d.      Transaction markers dynamics analysis with IBTM. Catching sweep moments.
e.      How to determine quantity of garbage versions
f.        How to find long transactions with MON$ tables
g.       Transactions monitoring with MON$ and TraceAPI.
h.      Legacy applications: workarounds for error in transactions management

   9.   Round table: questions and answers