- Update from 1.20 to 1.23 - Update of rootfile not required - Changelog Version 1.23, 2022-02-04 * Bucket cache switched from balanced tree to hash table Change suggested by Terence Kelly. * Speed up flushing the changed buckets on disk * New option codes for gdbm_setopt ** GDBM_GETDBFORMAT Return the database format. ** GDBM_GETDIRDEPTH Return the directory depth, i.e. the number of initial (most significant) bits in hash value that are interpreted as index to the directory. ** GDBM_GETBUCKETSIZE Return maximum number of keys per bucket. ** GDBM_GETCACHEAUTO Return the status of the automatic cache adjustment. ** GDBM_SETCACHEAUTO Enable or disable automatic cache adjustment. Version 1.22, 2021-10-19 * Fix file header validation * Fix key verification in sequential access * Fix testing with DejaGNU 1.6.3 * Fix stack overflow in print_usage * Fix a leak of avail entry on pushing a new avail block The leak would occur if the original avail table had odd number of entries. * New gdbmtool variables: errorexit, errormask, trace, timing "Errorexit" and "errormask" control which GDBM errors would cause the program termination and emitting a diagnostic message, correspondingly. Both variables are comma-delimited lists of error codes. The "trace" variable enables tracing of the gdbmtool commands. The "timing" variable, when set, instructs gdbmtool to print time spent in each command it runs. * New gdbmtool options: -t (--trace), and -T (--timing) Version 1.21, 2021-09-02 * Crash tolerance By default it is possible for an abrupt crash (e.g., power failure, OS kernel panic, or application process crash) to corrupt the gdbm database file. A new Linux-only mechanism enables applications to recover the database state corresponding to the most recent successful gdbm_sync() call before the crash. See the chapter 17 "Crash Tolerance" in the GDBM manual. * New database file format: numsync The new "numsync" database format is designed to better support crash tolerance. To create a database in numsync format, the gdbm_open (or gdbm_fd_open) function must be given the GDBM_NEWDB|GDBM_NUMSYNC flags. The GDBM_NUMSYNC flag also takes effect when used together with GDBM_WRCREAT, provided that the new file is created. New function gdbm_convert() is provided for converting the databases from standard GDBM format to numsync and vice versa. The gdbmtool tool can also be used for converting databases between these two formats. * Changes in gdbmtool ** Fix string output in non-ASCII encodings Printable multi-byte sequences are correctly represented on output. This also fixes octal representation of unprintable characters. ** The filename variable This variable supplies the name of database file for use in "open" command, if the latter is called without arguments. If "open" is called with the file name argument, the "filename" variable is initialized to this value. ** The fd variable If set, its value must be an open file descriptor referring to a GDBM database file. The "open" command will use gdbm_fd_open function to use this file. Upon closing the database, this descriptor will be closed and the variable will be unset. The file descriptor to use can also be supplied using the -d (--db-descriptor) command line option. ** The format variable Defines the format in which new databases will be created. Allowed values are: "standard" (default) and "numsync". ** New commands: upgrade and downgrade The "upgrade" command converts current database to the numsync (extended) format. The "downgrade" command converts current database to the standard format. ** New command: snapshot The "snapshot" command is part of the new crash tolerance support. Given the names of two snapshot files, it analyzes them and selects the one to be used for database recovery. See the GDBM manual, section 17.5 "Manual crash recovery" for a detailed discussion of its use.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- lfs/gdbm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lfs/gdbm b/lfs/gdbm index 6f96d2f3c..fa1b2d860 100644 --- a/lfs/gdbm +++ b/lfs/gdbm @@ -24,7 +24,7 @@
include Config
-VER = 1.20 +VER = 1.23
THISAPP = gdbm-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 006c19b8b60828fd6916a16f3496bd3c +$(DL_FILE)_MD5 = 8551961e36bf8c70b7500d255d3658ec
install : $(TARGET)
Reviewed-by: Peter Müller peter.mueller@ipfire.org
- Update from 1.20 to 1.23
- Update of rootfile not required
- Changelog Version 1.23, 2022-02-04
Change suggested by Terence Kelly.
- Bucket cache switched from balanced tree to hash table
** GDBM_GETDBFORMAT Return the database format. ** GDBM_GETDIRDEPTH Return the directory depth, i.e. the number of initial (most significant) bits in hash value that are interpreted as index to the directory. ** GDBM_GETBUCKETSIZE Return maximum number of keys per bucket. ** GDBM_GETCACHEAUTO Return the status of the automatic cache adjustment. ** GDBM_SETCACHEAUTO Enable or disable automatic cache adjustment. Version 1.22, 2021-10-19
- Speed up flushing the changed buckets on disk
- New option codes for gdbm_setopt
The leak would occur if the original avail table had odd number of entries.
- Fix file header validation
- Fix key verification in sequential access
- Fix testing with DejaGNU 1.6.3
- Fix stack overflow in print_usage
- Fix a leak of avail entry on pushing a new avail block
"Errorexit" and "errormask" control which GDBM errors would cause the program termination and emitting a diagnostic message, correspondingly. Both variables are comma-delimited lists of error codes. The "trace" variable enables tracing of the gdbmtool commands. The "timing" variable, when set, instructs gdbmtool to print time spent in each command it runs.
- New gdbmtool variables: errorexit, errormask, trace, timing
Version 1.21, 2021-09-02
- New gdbmtool options: -t (--trace), and -T (--timing)
By default it is possible for an abrupt crash (e.g., power failure, OS kernel panic, or application process crash) to corrupt the gdbm database file. A new Linux-only mechanism enables applications to recover the database state corresponding to the most recent successful gdbm_sync() call before the crash. See the chapter 17 "Crash Tolerance" in the GDBM manual.
- Crash tolerance
The new "numsync" database format is designed to better support crash tolerance. To create a database in numsync format, the gdbm_open (or gdbm_fd_open) function must be given the GDBM_NEWDB|GDBM_NUMSYNC flags. The GDBM_NUMSYNC flag also takes effect when used together with GDBM_WRCREAT, provided that the new file is created. New function gdbm_convert() is provided for converting the databases from standard GDBM format to numsync and vice versa. The gdbmtool tool can also be used for converting databases between these two formats.
- New database file format: numsync
** Fix string output in non-ASCII encodings Printable multi-byte sequences are correctly represented on output. This also fixes octal representation of unprintable characters. ** The filename variable This variable supplies the name of database file for use in "open" command, if the latter is called without arguments. If "open" is called with the file name argument, the "filename" variable is initialized to this value. ** The fd variable If set, its value must be an open file descriptor referring to a GDBM database file. The "open" command will use gdbm_fd_open function to use this file. Upon closing the database, this descriptor will be closed and the variable will be unset. The file descriptor to use can also be supplied using the -d (--db-descriptor) command line option. ** The format variable Defines the format in which new databases will be created. Allowed values are: "standard" (default) and "numsync". ** New commands: upgrade and downgrade The "upgrade" command converts current database to the numsync (extended) format. The "downgrade" command converts current database to the standard format. ** New command: snapshot The "snapshot" command is part of the new crash tolerance support. Given the names of two snapshot files, it analyzes them and selects the one to be used for database recovery. See the GDBM manual, section 17.5 "Manual crash recovery" for a detailed discussion of its use.
- Changes in gdbmtool
Signed-off-by: Adolf Belka adolf.belka@ipfire.org
lfs/gdbm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lfs/gdbm b/lfs/gdbm index 6f96d2f3c..fa1b2d860 100644 --- a/lfs/gdbm +++ b/lfs/gdbm @@ -24,7 +24,7 @@
include Config
-VER = 1.20 +VER = 1.23
THISAPP = gdbm-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 006c19b8b60828fd6916a16f3496bd3c +$(DL_FILE)_MD5 = 8551961e36bf8c70b7500d255d3658ec
install : $(TARGET)