Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetDataBlocksCacheSize ¶ added in v1.73.1
func SetDataBlocksCacheSize(size int)
SetDataBlocksCacheSize overrides the default size of indexdb/dataBlocks cache
func SetDataFlushInterval ¶ added in v1.85.0
SetDataFlushInterval sets the interval for guaranteed flush of recently ingested data from memory to disk.
The data can be flushed from memory to disk more frequently if it doesn't fit the memory limit.
This function must be called before initializing the indexdb.
func SetFinalMergeDelay ¶ added in v1.85.0
SetFinalMergeDelay sets the delay before doing final merge for Table without newly ingested data.
This function may be called only before Table initialization.
func SetIndexBlocksCacheSize ¶ added in v1.73.1
func SetIndexBlocksCacheSize(size int)
SetIndexBlocksCacheSize overrides the default size of indexdb/indexBlock cache
Types ¶
type Item ¶ added in v1.55.0
type Item struct { // Start is start offset for the item in data. Start uint32 // End is end offset for the item in data. End uint32 }
Item represents a single item for storing in a mergeset.
type PrepareBlockCallback ¶ added in v1.28.0
PrepareBlockCallback can transform the passed items allocated at the given data.
The callback is called during merge before flushing full block of the given items to persistent storage.
The callback must return sorted items. The first and the last item must be unchanged. The callback can re-use data and items for storing the result.
type Table ¶
type Table struct {
// contains filtered or unexported fields
}
Table represents mergeset table.
func OpenTable ¶
func OpenTable(path string, flushCallback func(), prepareBlock PrepareBlockCallback, isReadOnly *uint32) (*Table, error)
OpenTable opens a table on the given path.
Optional flushCallback is called every time new data batch is flushed to the underlying storage and becomes visible to search.
Optional prepareBlock is called during merge before flushing the prepared block to persistent storage.
The table is created if it doesn't exist yet.
func (*Table) AddItems ¶
AddItems adds the given items to the tb.
The function panics when items contains an item with length exceeding maxInmemoryBlockSize. It is caller's responsibility to make sure there are no too long items.
func (*Table) CreateSnapshotAt ¶
CreateSnapshotAt creates tb snapshot in the given dstDir.
Snapshot is created using linux hard links, so it is usually created very quickly.
func (*Table) DebugFlush ¶
func (tb *Table) DebugFlush()
DebugFlush flushes all the added items to the storage, so they become visible to search.
This function is only for debugging and testing.
func (*Table) UpdateMetrics ¶
func (tb *Table) UpdateMetrics(m *TableMetrics)
UpdateMetrics updates m with metrics from tb.
type TableMetrics ¶
type TableMetrics struct { ActiveInmemoryMerges uint64 ActiveFileMerges uint64 InmemoryMergesCount uint64 FileMergesCount uint64 InmemoryItemsMerged uint64 FileItemsMerged uint64 InmemoryAssistedMerges uint64 FileAssistedMerges uint64 ItemsAdded uint64 ItemsAddedSizeBytes uint64 PendingItems uint64 InmemoryPartsCount uint64 FilePartsCount uint64 InmemoryBlocksCount uint64 FileBlocksCount uint64 InmemoryItemsCount uint64 FileItemsCount uint64 InmemorySizeBytes uint64 FileSizeBytes uint64 DataBlocksCacheSize uint64 DataBlocksCacheSizeBytes uint64 DataBlocksCacheSizeMaxBytes uint64 DataBlocksCacheRequests uint64 DataBlocksCacheMisses uint64 IndexBlocksCacheSize uint64 IndexBlocksCacheSizeBytes uint64 IndexBlocksCacheSizeMaxBytes uint64 IndexBlocksCacheRequests uint64 IndexBlocksCacheMisses uint64 PartsRefCount uint64 }
TableMetrics contains essential metrics for the Table.
func (*TableMetrics) TotalItemsCount ¶ added in v1.85.0
func (tm *TableMetrics) TotalItemsCount() uint64
TotalItemsCount returns the total number of items in the table.
type TableSearch ¶
type TableSearch struct { // Item contains the next item after successful NextItem // or FirstItemWithPrefix call. // // Item contents breaks after the next call to NextItem. Item []byte // contains filtered or unexported fields }
TableSearch is a reusable cursor used for searching in the Table.
func (*TableSearch) Error ¶
func (ts *TableSearch) Error() error
Error returns the last error in ts.
func (*TableSearch) FirstItemWithPrefix ¶
func (ts *TableSearch) FirstItemWithPrefix(prefix []byte) error
FirstItemWithPrefix seeks for the first item with the given prefix in the ts.
It returns io.EOF if such an item doesn't exist.
func (*TableSearch) Init ¶
func (ts *TableSearch) Init(tb *Table)
Init initializes ts for searching in the tb.
MustClose must be called when the ts is no longer needed.
func (*TableSearch) NextItem ¶
func (ts *TableSearch) NextItem() bool
NextItem advances to the next item.
func (*TableSearch) Seek ¶
func (ts *TableSearch) Seek(k []byte)
Seek seeks for the first item greater or equal to k in the ts.