package freelist
import "go.etcd.io/bbolt/internal/freelist"
Index ¶
Types ¶
type Interface ¶
type Interface interface { ReadWriter // Init initializes this freelist with the given list of pages. Init(ids common.Pgids) // Allocate tries to allocate the given number of contiguous pages // from the free list pages. It returns the starting page ID if // available; otherwise, it returns 0. Allocate(txid common.Txid, numPages int) common.Pgid // Count returns the number of free and pending pages. Count() int // FreeCount returns the number of free pages. FreeCount() int // PendingCount returns the number of pending pages. PendingCount() int // AddReadonlyTXID adds a given read-only transaction id for pending page tracking. AddReadonlyTXID(txid common.Txid) // RemoveReadonlyTXID removes a given read-only transaction id for pending page tracking. RemoveReadonlyTXID(txid common.Txid) // ReleasePendingPages releases any pages associated with closed read-only transactions. ReleasePendingPages() // Free releases a page and its overflow for a given transaction id. // If the page is already free or is one of the meta pages, then a panic will occur. Free(txId common.Txid, p *common.Page) // Freed returns whether a given page is in the free list. Freed(pgId common.Pgid) bool // Rollback removes the pages from a given pending tx. Rollback(txId common.Txid) // Copyall copies a list of all free ids and all pending ids in one sorted list. // f.count returns the minimum length required for dst. Copyall(dst []common.Pgid) // Reload reads the freelist from a page and filters out pending items. Reload(p *common.Page) // NoSyncReload reads the freelist from Pgids and filters out pending items. NoSyncReload(pgIds common.Pgids) // contains filtered or unexported methods }
func NewArrayFreelist ¶
func NewArrayFreelist() Interface
func NewHashMapFreelist ¶
func NewHashMapFreelist() Interface
type ReadWriter ¶
type ReadWriter interface { // Read calls Init with the page ids stored in the given page. Read(page *common.Page) // Write writes the freelist into the given page. Write(page *common.Page) // EstimatedWritePageSize returns the size in bytes of the freelist after serialization in Write. // This should never underestimate the size. EstimatedWritePageSize() int }
Source Files ¶
array.go freelist.go hashmap.go shared.go
- Version
- v1.4.0 (latest)
- Published
- Feb 5, 2025
- Platform
- linux/amd64
- Imports
- 6 packages
- Last checked
- 3 hours ago –
Tools for package owners.