cache

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewPendingIndexItem

func NewPendingIndexItem(columns []string, key string, limit int64) *pendingIndexItem

Types

type CacheStats

type CacheStats struct {
	// keep count of hits and misses
	Hits   int
	Misses int
}

type IndexBucket

type IndexBucket struct {
	Items []*IndexItem
}

IndexBucket contains index items for all cache results for a given table and qual set

func (*IndexBucket) Append

func (b *IndexBucket) Append(item *IndexItem) *IndexBucket

func (*IndexBucket) Get

func (b *IndexBucket) Get(columns []string, limit int64) *IndexItem

Get finds an index item which satisfies all columns

type IndexItem

type IndexItem struct {
	Columns []string
	Key     string
	Limit   int64
}

IndexItem stores the columns and cached index for a single cached query result note - this index item it tied to a specific table and set of quals

func NewIndexItem

func NewIndexItem(columns []string, key string, limit int64) *IndexItem

func (IndexItem) SatisfiesColumns

func (i IndexItem) SatisfiesColumns(columns []string) bool

func (IndexItem) SatisfiesLimit

func (i IndexItem) SatisfiesLimit(limit int64) bool

type QueryCache

type QueryCache struct {
	Stats *CacheStats

	PluginSchema map[string]*proto.TableSchema
	// contains filtered or unexported fields
}

func NewQueryCache

func NewQueryCache(connectionName string, pluginSchema map[string]*proto.TableSchema) (*QueryCache, error)

func (*QueryCache) CancelPendingItem

func (c *QueryCache) CancelPendingItem(table string, qualMap map[string]*proto.Quals, columns []string, limit int64)

CancelPendingItem cancels a pending item - called when an execute call fails for any reason

func (*QueryCache) Clear

func (c *QueryCache) Clear()

func (*QueryCache) Get

func (c *QueryCache) Get(table string, qualMap map[string]*proto.Quals, columns []string, limit, ttlSeconds int64) *QueryCacheResult

func (*QueryCache) Set

func (c *QueryCache) Set(table string, qualMap map[string]*proto.Quals, columns []string, limit int64, result *QueryCacheResult) (res bool)

type QueryCacheResult

type QueryCacheResult struct {
	Rows          []*proto.Row
	InsertionTime time.Time
}

func (*QueryCacheResult) Append

func (q *QueryCacheResult) Append(row *proto.Row)

Jump to

Keyboard shortcuts

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