hashtreedb

package
v0.0.0-...-03c569e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PathExists

func PathExists(path string) (bool, error)

func ReverseHashOrder

func ReverseHashOrder(hash []byte) []byte

Types

type HashTreeDB

type HashTreeDB struct {

	// db in memory
	MemoryStorageDB *MemoryStorageDB

	// db in memory
	LevelDB *leveldb.DB
	// contains filtered or unexported fields
}

func NewHashTreeDB

func NewHashTreeDB(config *HashTreeDBConfig) *HashTreeDB

create DataBase

func (*HashTreeDB) Close

func (db *HashTreeDB) Close() error

fresh size config

func (db *HashTreeDB) freshRecordDataSize() {
	if int(db.config.KeyPrefixSupplement)+int(db.config.KeySize) > 32 {
		panic("KeyPrefixSupplement + KeySize not more than 32.")
	}
	db.config.hashSize = db.config.KeyPrefixSupplement + db.config.KeySize
	// markSize? + KeySize + SupplementalMaxValueSize
	db.config.segmentValueSize = 0
	if db.config.SaveMarkBeforeValue {
		db.config.segmentValueSize += uint32(1)
	}
	db.config.segmentValueSize += uint32(db.config.KeySize) + db.config.SupplementalMaxValueSize
}

close

func (*HashTreeDB) CreateNewQueryInstance

func (db *HashTreeDB) CreateNewQueryInstance(key []byte) (*QueryInstance, error)

Create execution unit

func (*HashTreeDB) GetOrCreateLevelDBwithPanic

func (db *HashTreeDB) GetOrCreateLevelDBwithPanic() *leveldb.DB

Get or create a level dB object

func (*HashTreeDB) TraversalCopy

func (this *HashTreeDB) TraversalCopy(target *HashTreeDB) error

type HashTreeDBConfig

type HashTreeDBConfig struct {
	// MemoryStorage
	MemoryStorage bool // Save data in memory
	// LevelDB
	LevelDB bool // Save data using level dB
	// size
	KeySize                  uint8  // Key value length < = 32
	SupplementalMaxValueSize uint32 // Data content length

	// file config
	//FileDividePartitionLevel uint8  // 文件分区层级 0为不分区
	FileAbsPath string // File storage path

}

func NewHashTreeDBConfig

func NewHashTreeDBConfig(
	fileAbsPath string,
	mustMinValueSize uint32,
	keySize uint8,
) *HashTreeDBConfig

type MemoryStorageDB

type MemoryStorageDB struct {
	Datas map[string]*MemoryStorageItem
	// contains filtered or unexported fields
}

func NewMemoryStorageDB

func NewMemoryStorageDB() *MemoryStorageDB

func (*MemoryStorageDB) Clean

func (ms *MemoryStorageDB) Clean()

clean

func (*MemoryStorageDB) Delete

func (ms *MemoryStorageDB) Delete(realkey []byte)

delete

func (*MemoryStorageDB) Exist

func (ms *MemoryStorageDB) Exist(realkey []byte) bool

exist

func (*MemoryStorageDB) Len

func (ms *MemoryStorageDB) Len() int

len

func (*MemoryStorageDB) Read

func (ms *MemoryStorageDB) Read(realkey []byte) ([]byte, bool)

read

func (*MemoryStorageDB) Save

func (ms *MemoryStorageDB) Save(realkey []byte, value []byte)

save

type MemoryStorageItem

type MemoryStorageItem struct {
	IsDelete bool   // Tag deleted
	Value    []byte // data
}

type QueryInstance

type QueryInstance struct {
	// contains filtered or unexported fields
}

func (*QueryInstance) Delete

func (ins *QueryInstance) Delete() error

*

  • clear search index cache

func (*QueryInstance) Destroy

func (ins *QueryInstance) Destroy()

close

func (*QueryInstance) Exist

func (ins *QueryInstance) Exist() (bool, error)

*

  • search index exist

func (*QueryInstance) Find

func (ins *QueryInstance) Find() ([]byte, error)

*

  • search index file and get the item part

func (*QueryInstance) Save

func (ins *QueryInstance) Save(valuedatas []byte) error

*

  • Save Value

func (ins *QueryInstance) Save(valuedatas []byte) (ValueSegmentOffset uint32, err error) {

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL