btcd/database/ffldb
Olaoluwa Osuntokun 7ef081edeb ffldb: batch Delete operations in commitTx for pool recycling
In this commit, we update commitTx to collect deletion keys into slices
and issue single batched Delete calls rather than calling Delete
individually inside the ForEach loop. This allows the treap's
inter-step node recycling to reclaim intermediate clones that were
previously leaked back to the GC.

We also fix the pendingRemove path to pass nil as the value in KVPairs
rather than the actual value from the mutable treap. The remove treap
only tracks keys for deletion and never uses the stored values, so
retaining references to them was unnecessary.
2026-03-25 16:37:34 -07:00
..
bench_test.go multi: Run gofmt on the entire repository 2023-06-21 22:31:09 +09:00
blockio.go database: shut the program down immediately if we run out of disk space 2025-05-06 08:43:01 +09:00
db.go ffldb: close block files before deleting them 2024-07-01 22:13:22 +09:00
dbcache.go ffldb: batch Delete operations in commitTx for pool recycling 2026-03-25 16:37:34 -07:00
doc.go multi: Run gofmt on the entire repository 2023-06-21 22:31:09 +09:00
driver.go fix typos (#2100) 2024-03-25 09:44:25 -04:00
driver_test.go multi:use t.TempDir replace os.MkdirTemp 2025-03-07 16:54:47 +08:00
export.go ffldb: change export_test.go to export.go 2023-12-16 16:53:17 +09:00
interface_test.go fix typos (#2100) 2024-03-25 09:44:25 -04:00
ldbtreapiter.go Replace github.com/btcsuite/goleveldb with github.com/syndtr/goleveldb 2022-03-08 10:07:52 -08:00
mockfile_test.go database: Replace with new version. 2016-04-12 14:55:15 -05:00
README.md docs: update shields 2021-03-05 07:45:19 -05:00
reconcile.go all: Remove seelog logger. 2017-06-19 16:46:50 -04:00
whitebox_test.go multi:use t.TempDir replace os.MkdirTemp 2025-03-07 16:54:47 +08:00

ffldb

Build Status ISC License GoDoc

Package ffldb implements a driver for the database package that uses leveldb for the backing metadata and flat files for block storage.

This driver is the recommended driver for use with btcd. It makes use leveldb for the metadata, flat files for block storage, and checksums in key areas to ensure data integrity.

Package ffldb is licensed under the copyfree ISC license.

Usage

This package is a driver to the database package and provides the database type of "ffldb". The parameters the Open and Create functions take are the database path as a string and the block network.

db, err := database.Open("ffldb", "path/to/database", wire.MainNet)
if err != nil {
	// Handle error
}
db, err := database.Create("ffldb", "path/to/database", wire.MainNet)
if err != nil {
	// Handle error
}

License

Package ffldb is licensed under the copyfree ISC License.