caching

package
v0.6.5 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FederationEventCacheName       = "federation_event"
	FederationEventCacheMaxEntries = 256
	FederationEventCacheMutable    = true // to allow use of Unset only
	FederationEventCacheMaxAge     = CacheNoMaxAge
)
View Source
const (
	RoomInfoCacheName       = "roominfo"
	RoomInfoCacheMaxEntries = 1024
	RoomInfoCacheMutable    = true
	RoomInfoCacheMaxAge     = time.Minute * 5
)
View Source
const (
	RoomServerRoomIDsCacheName       = "roomserver_room_ids"
	RoomServerRoomIDsCacheMaxEntries = 1024
	RoomServerRoomIDsCacheMutable    = false
	RoomServerRoomIDsCacheMaxAge     = CacheNoMaxAge
)
View Source
const (
	RoomVersionCacheName       = "room_versions"
	RoomVersionCacheMaxEntries = 1024
	RoomVersionCacheMutable    = false
	RoomVersionCacheMaxAge     = CacheNoMaxAge
)
View Source
const (
	ServerKeyCacheName       = "server_key"
	ServerKeyCacheMaxEntries = 4096
	ServerKeyCacheMutable    = true
	ServerKeyCacheMaxAge     = CacheNoMaxAge
)
View Source
const (
	SpaceSummaryRoomsCacheName       = "space_summary_rooms"
	SpaceSummaryRoomsCacheMaxEntries = 100
	SpaceSummaryRoomsCacheMutable    = true
	SpaceSummaryRoomsCacheMaxAge     = time.Minute * 5
)
View Source
const CacheNoMaxAge = time.Duration(0)

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache interface {
	Get(key string) (value interface{}, ok bool)
	Set(key string, value interface{})
	Unset(key string)
}

Cache is the interface that an implementation must satisfy.

type Caches

type Caches struct {
	RoomVersions       Cache // RoomVersionCache
	ServerKeys         Cache // ServerKeyCache
	RoomServerRoomNIDs Cache // RoomServerNIDsCache
	RoomServerRoomIDs  Cache // RoomServerNIDsCache
	RoomInfos          Cache // RoomInfoCache
	FederationEvents   Cache // FederationEventsCache
	SpaceSummaryRooms  Cache // SpaceSummaryRoomsCache
}

Caches contains a set of references to caches. They may be different implementations as long as they satisfy the Cache interface.

func NewInMemoryLRUCache

func NewInMemoryLRUCache(enablePrometheus bool) (*Caches, error)

func (Caches) EvictFederationQueuedEDU added in v0.6.0

func (c Caches) EvictFederationQueuedEDU(eventNID int64)

func (Caches) EvictFederationQueuedPDU added in v0.6.0

func (c Caches) EvictFederationQueuedPDU(eventNID int64)

func (Caches) GetFederationQueuedEDU added in v0.6.0

func (c Caches) GetFederationQueuedEDU(eventNID int64) (*gomatrixserverlib.EDU, bool)

func (Caches) GetFederationQueuedPDU added in v0.6.0

func (c Caches) GetFederationQueuedPDU(eventNID int64) (*gomatrixserverlib.HeaderedEvent, bool)

func (Caches) GetRoomInfo added in v0.3.4

func (c Caches) GetRoomInfo(roomID string) (types.RoomInfo, bool)

GetRoomInfo must only be called from the roomserver only. It is not safe for use from other components.

func (Caches) GetRoomServerRoomID

func (c Caches) GetRoomServerRoomID(roomNID types.RoomNID) (string, bool)

func (Caches) GetRoomVersion

func (c Caches) GetRoomVersion(roomID string) (gomatrixserverlib.RoomVersion, bool)

func (Caches) GetSpaceSummary added in v0.6.5

func (c Caches) GetSpaceSummary(roomID string) (r gomatrixserverlib.MSC2946SpacesResponse, ok bool)

func (Caches) StoreFederationQueuedEDU added in v0.6.0

func (c Caches) StoreFederationQueuedEDU(eventNID int64, event *gomatrixserverlib.EDU)

func (Caches) StoreFederationQueuedPDU added in v0.6.0

func (c Caches) StoreFederationQueuedPDU(eventNID int64, event *gomatrixserverlib.HeaderedEvent)

func (Caches) StoreRoomInfo added in v0.3.4

func (c Caches) StoreRoomInfo(roomID string, roomInfo types.RoomInfo)

StoreRoomInfo must only be called from the roomserver only. It is not safe for use from other components.

func (Caches) StoreRoomServerRoomID

func (c Caches) StoreRoomServerRoomID(roomNID types.RoomNID, roomID string)

func (Caches) StoreRoomVersion

func (c Caches) StoreRoomVersion(roomID string, roomVersion gomatrixserverlib.RoomVersion)

func (Caches) StoreServerKey

func (Caches) StoreSpaceSummary added in v0.6.5

func (c Caches) StoreSpaceSummary(roomID string, r gomatrixserverlib.MSC2946SpacesResponse)

type FederationCache added in v0.6.0

type FederationCache interface {
	GetFederationQueuedPDU(eventNID int64) (event *gomatrixserverlib.HeaderedEvent, ok bool)
	StoreFederationQueuedPDU(eventNID int64, event *gomatrixserverlib.HeaderedEvent)
	EvictFederationQueuedPDU(eventNID int64)

	GetFederationQueuedEDU(eventNID int64) (event *gomatrixserverlib.EDU, ok bool)
	StoreFederationQueuedEDU(eventNID int64, event *gomatrixserverlib.EDU)
	EvictFederationQueuedEDU(eventNID int64)
}

FederationCache contains the subset of functions needed for a federation event cache.

type InMemoryLRUCachePartition

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

func NewInMemoryLRUCachePartition

func NewInMemoryLRUCachePartition(name string, mutable bool, maxEntries int, maxAge time.Duration, enablePrometheus bool) (*InMemoryLRUCachePartition, error)

func (*InMemoryLRUCachePartition) Get

func (c *InMemoryLRUCachePartition) Get(key string) (value interface{}, ok bool)

func (*InMemoryLRUCachePartition) Set

func (c *InMemoryLRUCachePartition) Set(key string, value interface{})

func (*InMemoryLRUCachePartition) Unset

func (c *InMemoryLRUCachePartition) Unset(key string)

type RoomInfoCache added in v0.3.4

type RoomInfoCache interface {
	GetRoomInfo(roomID string) (roomInfo types.RoomInfo, ok bool)
	StoreRoomInfo(roomID string, roomInfo types.RoomInfo)
}

RoomInfosCache contains the subset of functions needed for a room Info cache. It must only be used from the roomserver only It is not safe for use from other components.

type RoomServerCaches

type RoomServerCaches interface {
	RoomServerNIDsCache
	RoomVersionCache
	RoomInfoCache
}

type RoomServerNIDsCache

type RoomServerNIDsCache interface {
	GetRoomServerRoomID(roomNID types.RoomNID) (string, bool)
	StoreRoomServerRoomID(roomNID types.RoomNID, roomID string)
}

RoomServerNIDsCache contains the subset of functions needed for a roomserver NID cache.

type RoomVersionCache

type RoomVersionCache interface {
	GetRoomVersion(roomID string) (roomVersion gomatrixserverlib.RoomVersion, ok bool)
	StoreRoomVersion(roomID string, roomVersion gomatrixserverlib.RoomVersion)
}

RoomVersionsCache contains the subset of functions needed for a room version cache.

type ServerKeyCache

type ServerKeyCache interface {
	// request -> timestamp is emulating gomatrixserverlib.FetchKeys:
	// https://github.com/matrix-org/gomatrixserverlib/blob/f69539c86ea55d1e2cc76fd8e944e2d82d30397c/keyring.go#L95
	// The timestamp should be the timestamp of the event that is being
	// verified. We will not return keys from the cache that are not valid
	// at this timestamp.
	GetServerKey(request gomatrixserverlib.PublicKeyLookupRequest, timestamp gomatrixserverlib.Timestamp) (response gomatrixserverlib.PublicKeyLookupResult, ok bool)

	// request -> result is emulating gomatrixserverlib.StoreKeys:
	// https://github.com/matrix-org/gomatrixserverlib/blob/f69539c86ea55d1e2cc76fd8e944e2d82d30397c/keyring.go#L112
	StoreServerKey(request gomatrixserverlib.PublicKeyLookupRequest, response gomatrixserverlib.PublicKeyLookupResult)
}

ServerKeyCache contains the subset of functions needed for a server key cache.

type SpaceSummaryRoomsCache added in v0.6.5

type SpaceSummaryRoomsCache interface {
	GetSpaceSummary(roomID string) (r gomatrixserverlib.MSC2946SpacesResponse, ok bool)
	StoreSpaceSummary(roomID string, r gomatrixserverlib.MSC2946SpacesResponse)
}

Jump to

Keyboard shortcuts

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