Documentation ¶
Index ¶
- Variables
- func NewStatsCacheImpl(statsHandle types.StatsHandle) (types.StatsCache, error)
- func NewStatsCacheImplForTest() (types.StatsCache, error)
- type StatsCache
- func (sc *StatsCache) Close()
- func (sc *StatsCache) CopyAndUpdate(tables []*statistics.Table, deletedIDs []int64) *StatsCache
- func (sc *StatsCache) Cost() int64
- func (sc *StatsCache) Get(id int64) (*statistics.Table, bool)
- func (sc *StatsCache) Len() int
- func (sc *StatsCache) Put(id int64, t *statistics.Table)
- func (sc *StatsCache) SetCapacity(c int64)
- func (sc *StatsCache) TriggerEvict()
- func (sc *StatsCache) Update(tables []*statistics.Table, deletedIDs []int64, skipMoveForwardStatsCache bool)
- func (sc *StatsCache) Values() []*statistics.Table
- func (sc *StatsCache) Version() uint64
- type StatsCacheImpl
- func (s *StatsCacheImpl) Clear()
- func (s *StatsCacheImpl) Close()
- func (s *StatsCacheImpl) Get(tableID int64) (*statistics.Table, bool)
- func (s *StatsCacheImpl) GetNextCheckVersionWithOffset() uint64
- func (s *StatsCacheImpl) Len() int
- func (s *StatsCacheImpl) MaxTableStatsVersion() uint64
- func (s *StatsCacheImpl) MemConsumed() (size int64)
- func (s *StatsCacheImpl) Put(id int64, t *statistics.Table)
- func (s *StatsCacheImpl) Replace(cache types.StatsCache)
- func (s *StatsCacheImpl) SetStatsCacheCapacity(c int64)
- func (s *StatsCacheImpl) TriggerEvict()
- func (s *StatsCacheImpl) Update(ctx context.Context, is infoschema.InfoSchema, tableAndPartitionIDs ...int64) error
- func (s *StatsCacheImpl) UpdateStatsCache(cacheUpdate types.CacheUpdate)
- func (s *StatsCacheImpl) UpdateStatsHealthyMetrics()
- func (s *StatsCacheImpl) Values() []*statistics.Table
- type StatsTableRowCache
- func (c *StatsTableRowCache) EstimateDataLength(table *model.TableInfo) (rowCount uint64, avgRowLength uint64, dataLength uint64, indexLength uint64)
- func (c *StatsTableRowCache) GetColLength(id tableHistID) uint64
- func (c *StatsTableRowCache) GetDataAndIndexLength(info *model.TableInfo, physicalID int64, rowCount uint64) (dataLength, indexLength uint64)
- func (c *StatsTableRowCache) GetTableRows(id int64) uint64
- func (c *StatsTableRowCache) Invalidate(tblID int64)
- func (c *StatsTableRowCache) Update(sctx sessionctx.Context) error
- func (c *StatsTableRowCache) UpdateByID(sctx sessionctx.Context, id int64) error
Constants ¶
This section is empty.
Variables ¶
var TableRowStatsCache = &StatsTableRowCache{ tableRows: make(map[int64]uint64), colLength: make(map[tableHistID]uint64), }
TableRowStatsCache is the cache of table row count.
Functions ¶
func NewStatsCacheImpl ¶
func NewStatsCacheImpl(statsHandle types.StatsHandle) (types.StatsCache, error)
NewStatsCacheImpl creates a new StatsCache.
func NewStatsCacheImplForTest ¶
func NewStatsCacheImplForTest() (types.StatsCache, error)
NewStatsCacheImplForTest creates a new StatsCache for test.
Types ¶
type StatsCache ¶
type StatsCache struct {
// contains filtered or unexported fields
}
StatsCache caches the tables in memory for Handle. TODO: hide this structure or merge it into StatsCacheImpl.
func NewStatsCache ¶
func NewStatsCache() (*StatsCache, error)
NewStatsCache creates a new StatsCacheWrapper.
func (*StatsCache) CopyAndUpdate ¶
func (sc *StatsCache) CopyAndUpdate(tables []*statistics.Table, deletedIDs []int64) *StatsCache
CopyAndUpdate copies a new cache and updates the new statistics table cache. It is only used in the COW mode.
func (*StatsCache) Cost ¶
func (sc *StatsCache) Cost() int64
Cost returns the memory usage of the cache.
func (*StatsCache) Get ¶
func (sc *StatsCache) Get(id int64) (*statistics.Table, bool)
Get returns the statistics of the specified Table ID. The returned value should be read-only, if you update it, don't forget to use Put to put it back again, otherwise the memory trace can be inaccurate.
e.g. v := sc.Get(id); /* update the value */ v.Version = 123; sc.Put(id, v);
func (*StatsCache) Len ¶
func (sc *StatsCache) Len() int
Len returns the number of tables in the cache.
func (*StatsCache) Put ¶
func (sc *StatsCache) Put(id int64, t *statistics.Table)
Put puts the table statistics to the cache from query.
func (*StatsCache) SetCapacity ¶
func (sc *StatsCache) SetCapacity(c int64)
SetCapacity sets the memory capacity of the cache.
func (*StatsCache) TriggerEvict ¶
func (sc *StatsCache) TriggerEvict()
TriggerEvict triggers the cache to evict some items.
func (*StatsCache) Update ¶
func (sc *StatsCache) Update(tables []*statistics.Table, deletedIDs []int64, skipMoveForwardStatsCache bool)
Update updates the new statistics table cache.
func (*StatsCache) Values ¶
func (sc *StatsCache) Values() []*statistics.Table
Values returns all the cached statistics tables.
func (*StatsCache) Version ¶
func (sc *StatsCache) Version() uint64
Version returns the version of the current cache, which is defined as the max table stats version the cache has in its lifecycle.
type StatsCacheImpl ¶
type StatsCacheImpl struct { atomic.Pointer[StatsCache] // contains filtered or unexported fields }
StatsCacheImpl implements util.StatsCache.
func (*StatsCacheImpl) Clear ¶
func (s *StatsCacheImpl) Clear()
Clear clears this cache. Create a empty cache and replace the old one.
func (*StatsCacheImpl) Get ¶
func (s *StatsCacheImpl) Get(tableID int64) (*statistics.Table, bool)
Get returns the specified table's stats.
func (*StatsCacheImpl) GetNextCheckVersionWithOffset ¶
func (s *StatsCacheImpl) GetNextCheckVersionWithOffset() uint64
GetNextCheckVersionWithOffset gets the last version with offset.
func (*StatsCacheImpl) Len ¶
func (s *StatsCacheImpl) Len() int
Len returns the length of this cache.
func (*StatsCacheImpl) MaxTableStatsVersion ¶
func (s *StatsCacheImpl) MaxTableStatsVersion() uint64
MaxTableStatsVersion returns the version of the current cache, which is defined as the max table stats version the cache has in its lifecycle.
func (*StatsCacheImpl) MemConsumed ¶
func (s *StatsCacheImpl) MemConsumed() (size int64)
MemConsumed returns its memory usage.
func (*StatsCacheImpl) Put ¶
func (s *StatsCacheImpl) Put(id int64, t *statistics.Table)
Put puts this table stats into the cache.
func (*StatsCacheImpl) Replace ¶
func (s *StatsCacheImpl) Replace(cache types.StatsCache)
Replace replaces this cache.
func (*StatsCacheImpl) SetStatsCacheCapacity ¶
func (s *StatsCacheImpl) SetStatsCacheCapacity(c int64)
SetStatsCacheCapacity sets the cache's capacity.
func (*StatsCacheImpl) TriggerEvict ¶
func (s *StatsCacheImpl) TriggerEvict()
TriggerEvict triggers the cache to evict some items.
func (*StatsCacheImpl) Update ¶
func (s *StatsCacheImpl) Update(ctx context.Context, is infoschema.InfoSchema, tableAndPartitionIDs ...int64) error
Update reads stats meta from store and updates the stats map.
func (*StatsCacheImpl) UpdateStatsCache ¶
func (s *StatsCacheImpl) UpdateStatsCache(cacheUpdate types.CacheUpdate)
UpdateStatsCache updates the cache with the new cache.
func (*StatsCacheImpl) UpdateStatsHealthyMetrics ¶
func (s *StatsCacheImpl) UpdateStatsHealthyMetrics()
UpdateStatsHealthyMetrics updates stats healthy distribution metrics according to stats cache.
func (*StatsCacheImpl) Values ¶
func (s *StatsCacheImpl) Values() []*statistics.Table
Values returns all values in this cache.
type StatsTableRowCache ¶
type StatsTableRowCache struct {
// contains filtered or unexported fields
}
StatsTableRowCache is used to cache the count of table rows.
func (*StatsTableRowCache) EstimateDataLength ¶
func (c *StatsTableRowCache) EstimateDataLength(table *model.TableInfo) ( rowCount uint64, avgRowLength uint64, dataLength uint64, indexLength uint64)
EstimateDataLength returns the estimated data length in bytes of a given table info. Returns row count, average row length, total data length, and all indexed column length.
func (*StatsTableRowCache) GetColLength ¶
func (c *StatsTableRowCache) GetColLength(id tableHistID) uint64
GetColLength gets the length of the column.
func (*StatsTableRowCache) GetDataAndIndexLength ¶
func (c *StatsTableRowCache) GetDataAndIndexLength(info *model.TableInfo, physicalID int64, rowCount uint64) (dataLength, indexLength uint64)
GetDataAndIndexLength gets the data and index length of the table.
func (*StatsTableRowCache) GetTableRows ¶
func (c *StatsTableRowCache) GetTableRows(id int64) uint64
GetTableRows gets the count of table rows.
func (*StatsTableRowCache) Invalidate ¶
func (c *StatsTableRowCache) Invalidate(tblID int64)
Invalidate invalidates the cache of the table with id.
func (*StatsTableRowCache) Update ¶
func (c *StatsTableRowCache) Update(sctx sessionctx.Context) error
Update tries to update the cache.
func (*StatsTableRowCache) UpdateByID ¶
func (c *StatsTableRowCache) UpdateByID(sctx sessionctx.Context, id int64) error
UpdateByID tries to update the cache by table ID.