filecache

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache interface {
	// Get is called when the runtime is trying to get the cached compiled functions.
	// Implementations are supposed to return compiled function in io.Reader with ok=true
	// if the key exists on the cache. In the case of not-found, this should return
	// ok=false with err=nil. content.Close() is automatically called by
	// the caller of this Get.
	//
	// Note: the returned content won't go through the validation pass of Wasm binary
	// which is applied when the binary is compiled from scratch without cache hit.
	Get(key Key) (content io.ReadCloser, ok bool, err error)
	//
	// Add is called when the runtime is trying to add the new cache entry.
	// The given `content` must be un-modified, and returned as-is in Get method.
	//
	// Note: the `content` is ensured to be safe through the validation phase applied on the Wasm binary.
	Add(key Key, content io.Reader) (err error)
	//
	// Delete is called when the cache on the `key` returned by Get is no longer usable, and
	// must be purged. Specifically, this is called happens when the wazero's version has been changed.
	// For example, that is when there's a difference between the version of compiling wazero and the
	// version of the currently used wazero.
	Delete(key Key) (err error)
}

Cache allows the compiler engine to skip compilation of wasm to machine code where doing so is redundant for the same wasm binary and version of wazero.

This augments the default in-memory cache of compiled functions, by decoupling it from a wazero.Runtime instance. Concretely, a runtime loses its cache once closed. This cache allows the runtime to rebuild its in-memory cache quicker, significantly reducing first-hit penalty on a hit.

See New for the example implementation.

func New

func New(dir string) Cache

New returns a new Cache implemented by fileCache.

type Key

type Key = [sha256.Size]byte

Key represents the 256-bit unique identifier assigned to each cache entry.

Jump to

Keyboard shortcuts

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