BC TechDays 2023 - Locking in AL: Runtime and explicit AL control

preview_player
Показать описание
Recording of presentation at the BC TechDays 2023 conference of 22 & 23 June 2023 in Antwerp (Belgium)

Title: Locking in AL: Runtime and explicit AL control

Presenters: Mads Gram, Nikola Kukrika

Presented on Friday 23 June 2023, 13:30 - 15:00

Replaced video, as the previous recording was quite dark. Previous view counter was 502.

Contents (Thx to Marcus Nordlund):

00:23 Goals
03:06 Quiz
03:44 - Question 1. LockTable
04:48 - Question 2. Lock on a different variable
05:40 - Question 3. Read after write
06:13 - Question 4. Count after write
06:45 - Question 5. Findset
07:32 - Question 6: Conditional Insert
08:05 - Question 7: FlowFields
08:46 - Question 8: FlowFields
09:18 - Quiz Summary
10:02 Fundamentals
10:02 - AL´s interplay with the DB
11:54 - Transactions
12:34 -- Example: Post Sales Order
14:12 - Locks explained
16:55 -- SQL Server Lock compatibility matrix
18:58 -- SQL Lock escalation
20:01 -- Runtime determined locking
22:17 - Locks in VS Code debugger
23:09 - Advanced analysis SQL query (script to see current locks)
23:49 - Telemetry (find locker/victim via telemetry)
24:31 - Flowfields
25:11 Explicit control (ReadIsolation)
25:11 - Controlling reads explicitly
26:37 - ReadIsolation values - Used By default
28:17 - Question 2: Improved - Control example
29:19 - Pattern - Temporary heightening (Example: GetNextEntryNo)
32:09 - Pattern - Temporary lowering (Example: OnBerforeInsertEvent)
33:30 - ReadIsolationwith FlowFields
35:10 - Question 5: Avoid locking the entire table
36:30 - Pattern - Range Lock
36:50 - Think smart
39:23 Q&A
39:23 "Is it a good approach to always specify readisoloation for each read?"
41:35 "Are you going to switch to readcommitted?"
42:28 "Are all this on a session context? Not affecting other sessions"
42:28 "Possible to set standard ReadIsolation on NST?"
Рекомендации по теме
Комментарии
Автор

If you wonder what re-entrant is at 36:50 I looked it up for you ;)
"In computing, a computer program or subroutine is called reentrant if multiple invocations can safely run concurrently on multiple processors, or on a single-processor system, where a reentrant procedure can be interrupted in the middle of its execution and then safely be called again ("re-entered") before its previous invocations complete execution. The interruption could be caused by an internal action such as a jump or call, or by an external action such as an interrupt or signal, unlike recursion, where new invocations can only be caused by internal call."

marcusnordlund
Автор

is abnywhere the example of the Isolation for Modify and Insert?

ДенисГапонов-иэ