From 7195372cafb3a502f5e541b45d2e32c3c6e81b52 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 7 Sep 2015 15:23:04 -0400 Subject: [PATCH] release note for new locking --- documentation/RELEASE_NOTES.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 43838dcf6..8ae4e76d3 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -20,6 +20,23 @@ --> +

Database Multi-locking

+ +

dbLock.c is re-written with an expanded API, and the removal of global mutex locks.

+ +

The new API functions center around dbScanLockMany(), which behaves like dbScanLock() +applied to an arbitrary group of records. dbLockerAlloc() is used to prepare a list +or record pointers, then dbScanLockMany() is called. When it returns, all of the records +listed may be accessed (in any order) until dbScanUnlockMany() is called.

+ +

The Application Developer's Guide has been updated to describe the API and implementation +is more detail.

+ +

Previously a global mutex 'lockSetModifyLock' was locked and unlocked +during dbScanLock(), acting as a sequencing point for otherwise unrelated calls. +The new dbLock.c implementation does not include any global mutex in dbScanLock() or dbScanLockMany(). +Locking/unlocking of unrelated lock sets is now completely concurrent.

+

Generate Version Header

A Perl script and Makefile rules have been added to allow modules to generate