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