Documentation
¶
Overview ¶
Package order groups related blocks for physical packfile locality.
Index ¶
- Variables
- func BlockRefs(ctx context.Context, graph RefGraph, refs []*block.BlockRef) ([]*block.BlockRef, error)
- func EncodeAccessOrderRecord(w io.Writer, record *AccessOrderRecord) error
- func WriteAccessOrderRecordFile(path string, record *AccessOrderRecord) error
- type AccessOrderEntry
- func (m *AccessOrderEntry) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *AccessOrderEntry) CloneVT() *AccessOrderEntry
- func (this *AccessOrderEntry) EqualMessageVT(thatMsg any) bool
- func (this *AccessOrderEntry) EqualVT(that *AccessOrderEntry) bool
- func (x *AccessOrderEntry) GetAccessCount() uint64
- func (x *AccessOrderEntry) GetFilesystem() AccessOrderFilesystem
- func (x *AccessOrderEntry) GetOrdinal() uint64
- func (x *AccessOrderEntry) GetPath() string
- func (x *AccessOrderEntry) GetReason() AccessOrderReason
- func (x *AccessOrderEntry) GetReasonDetail() string
- func (x *AccessOrderEntry) GetResolvedRefs() []*block.BlockRef
- func (x *AccessOrderEntry) MarshalJSON() ([]byte, error)
- func (x *AccessOrderEntry) MarshalProtoJSON(s *json.MarshalState)
- func (x *AccessOrderEntry) MarshalProtoText() string
- func (m *AccessOrderEntry) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *AccessOrderEntry) MarshalToVT(dAtA []byte) (int, error)
- func (m *AccessOrderEntry) MarshalVT() (dAtA []byte, err error)
- func (*AccessOrderEntry) ProtoMessage()
- func (x *AccessOrderEntry) Reset()
- func (m *AccessOrderEntry) SizeVT() (n int)
- func (x *AccessOrderEntry) String() string
- func (x *AccessOrderEntry) UnmarshalJSON(b []byte) error
- func (x *AccessOrderEntry) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *AccessOrderEntry) UnmarshalVT(dAtA []byte) error
- type AccessOrderFilesystem
- func (x AccessOrderFilesystem) Enum() *AccessOrderFilesystem
- func (x AccessOrderFilesystem) MarshalJSON() ([]byte, error)
- func (x AccessOrderFilesystem) MarshalProtoJSON(s *json.MarshalState)
- func (x AccessOrderFilesystem) MarshalProtoText() string
- func (x AccessOrderFilesystem) MarshalText() ([]byte, error)
- func (x AccessOrderFilesystem) String() string
- func (x *AccessOrderFilesystem) UnmarshalJSON(b []byte) error
- func (x *AccessOrderFilesystem) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (x *AccessOrderFilesystem) UnmarshalText(b []byte) error
- type AccessOrderManifestIdentity
- type AccessOrderMetadata
- func (m *AccessOrderMetadata) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *AccessOrderMetadata) CloneVT() *AccessOrderMetadata
- func (this *AccessOrderMetadata) EqualMessageVT(thatMsg any) bool
- func (this *AccessOrderMetadata) EqualVT(that *AccessOrderMetadata) bool
- func (x *AccessOrderMetadata) GetKey() string
- func (x *AccessOrderMetadata) GetValue() string
- func (x *AccessOrderMetadata) MarshalJSON() ([]byte, error)
- func (x *AccessOrderMetadata) MarshalProtoJSON(s *json.MarshalState)
- func (x *AccessOrderMetadata) MarshalProtoText() string
- func (m *AccessOrderMetadata) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *AccessOrderMetadata) MarshalToVT(dAtA []byte) (int, error)
- func (m *AccessOrderMetadata) MarshalVT() (dAtA []byte, err error)
- func (*AccessOrderMetadata) ProtoMessage()
- func (x *AccessOrderMetadata) Reset()
- func (m *AccessOrderMetadata) SizeVT() (n int)
- func (x *AccessOrderMetadata) String() string
- func (x *AccessOrderMetadata) UnmarshalJSON(b []byte) error
- func (x *AccessOrderMetadata) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *AccessOrderMetadata) UnmarshalVT(dAtA []byte) error
- type AccessOrderPathResolver
- type AccessOrderPathResolverFunc
- type AccessOrderReason
- func (x AccessOrderReason) Enum() *AccessOrderReason
- func (x AccessOrderReason) MarshalJSON() ([]byte, error)
- func (x AccessOrderReason) MarshalProtoJSON(s *json.MarshalState)
- func (x AccessOrderReason) MarshalProtoText() string
- func (x AccessOrderReason) MarshalText() ([]byte, error)
- func (x AccessOrderReason) String() string
- func (x *AccessOrderReason) UnmarshalJSON(b []byte) error
- func (x *AccessOrderReason) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (x *AccessOrderReason) UnmarshalText(b []byte) error
- type AccessOrderRecord
- func (m *AccessOrderRecord) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *AccessOrderRecord) CloneVT() *AccessOrderRecord
- func (this *AccessOrderRecord) EqualMessageVT(thatMsg any) bool
- func (this *AccessOrderRecord) EqualVT(that *AccessOrderRecord) bool
- func (x *AccessOrderRecord) GetBuildMetadata() []*AccessOrderMetadata
- func (x *AccessOrderRecord) GetBuildType() string
- func (x *AccessOrderRecord) GetEntries() []*AccessOrderEntry
- func (x *AccessOrderRecord) GetGeneratedAt() *timestamppb.Timestamp
- func (x *AccessOrderRecord) GetGenerationId() string
- func (x *AccessOrderRecord) GetManifestId() string
- func (x *AccessOrderRecord) GetManifestRev() uint64
- func (x *AccessOrderRecord) GetManifestRootRef() *block.BlockRef
- func (x *AccessOrderRecord) GetPlatformId() string
- func (x *AccessOrderRecord) MarshalJSON() ([]byte, error)
- func (x *AccessOrderRecord) MarshalProtoJSON(s *json.MarshalState)
- func (x *AccessOrderRecord) MarshalProtoText() string
- func (m *AccessOrderRecord) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *AccessOrderRecord) MarshalToVT(dAtA []byte) (int, error)
- func (m *AccessOrderRecord) MarshalVT() (dAtA []byte, err error)
- func (*AccessOrderRecord) ProtoMessage()
- func (x *AccessOrderRecord) Reset()
- func (m *AccessOrderRecord) SizeVT() (n int)
- func (x *AccessOrderRecord) String() string
- func (x *AccessOrderRecord) UnmarshalJSON(b []byte) error
- func (x *AccessOrderRecord) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *AccessOrderRecord) UnmarshalVT(dAtA []byte) error
- type AccessOrderReplayResult
- type Graph
- type RefGraph
Constants ¶
This section is empty.
Variables ¶
var ( AccessOrderFilesystem_name = map[int32]string{ 0: "ACCESS_ORDER_FILESYSTEM_UNKNOWN", 1: "ACCESS_ORDER_FILESYSTEM_DIST", 2: "ACCESS_ORDER_FILESYSTEM_ASSETS", } AccessOrderFilesystem_value = map[string]int32{ "ACCESS_ORDER_FILESYSTEM_UNKNOWN": 0, "ACCESS_ORDER_FILESYSTEM_DIST": 1, "ACCESS_ORDER_FILESYSTEM_ASSETS": 2, } )
Enum value maps for AccessOrderFilesystem.
var ( AccessOrderReason_name = map[int32]string{ 0: "ACCESS_ORDER_REASON_UNKNOWN", 1: "ACCESS_ORDER_REASON_ENTRYPOINT", 2: "ACCESS_ORDER_REASON_DYNAMIC_IMPORT", 3: "ACCESS_ORDER_REASON_ASSET", } AccessOrderReason_value = map[string]int32{ "ACCESS_ORDER_REASON_UNKNOWN": 0, "ACCESS_ORDER_REASON_ENTRYPOINT": 1, "ACCESS_ORDER_REASON_DYNAMIC_IMPORT": 2, "ACCESS_ORDER_REASON_ASSET": 3, } )
Enum value maps for AccessOrderReason.
Functions ¶
func BlockRefs ¶
func BlockRefs(ctx context.Context, graph RefGraph, refs []*block.BlockRef) ([]*block.BlockRef, error)
BlockRefs groups refs by available subtrees, preferring named GC object roots. GC edges have no intrinsic order, so siblings use stable hash order. With no graph, all refs use stable hash order. Only candidate blocks are queried.
func EncodeAccessOrderRecord ¶
func EncodeAccessOrderRecord(w io.Writer, record *AccessOrderRecord) error
EncodeAccessOrderRecord writes record as protobuf binary data.
func WriteAccessOrderRecordFile ¶
func WriteAccessOrderRecordFile(path string, record *AccessOrderRecord) error
WriteAccessOrderRecordFile writes record to path as protobuf binary data.
Types ¶
type AccessOrderEntry ¶
type AccessOrderEntry struct {
// Ordinal is the first observed access index for this entry.
Ordinal uint64 `protobuf:"varint,1,opt,name=ordinal,proto3" json:"ordinal,omitempty"`
// Filesystem is the manifest filesystem containing path.
Filesystem AccessOrderFilesystem `protobuf:"varint,2,opt,name=filesystem,proto3" json:"filesystem,omitempty"`
// Path is the slash-separated path inside the manifest filesystem.
Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
// Reason identifies why the access was recorded.
Reason AccessOrderReason `protobuf:"varint,4,opt,name=reason,proto3" json:"reason,omitempty"`
// ReasonDetail stores an entrypoint path, import specifier, or other label.
ReasonDetail string `protobuf:"bytes,5,opt,name=reason_detail,json=reasonDetail,proto3" json:"reasonDetail,omitempty"`
// AccessCount is the number of times this path was observed.
AccessCount uint64 `protobuf:"varint,6,opt,name=access_count,json=accessCount,proto3" json:"accessCount,omitempty"`
// ResolvedRefs are optional block refs resolved when the record was written.
ResolvedRefs []*block.BlockRef `protobuf:"bytes,7,rep,name=resolved_refs,json=resolvedRefs,proto3" json:"resolvedRefs,omitempty"`
// contains filtered or unexported fields
}
AccessOrderEntry stores one observed file access.
func (*AccessOrderEntry) CloneMessageVT ¶
func (m *AccessOrderEntry) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*AccessOrderEntry) CloneVT ¶
func (m *AccessOrderEntry) CloneVT() *AccessOrderEntry
func (*AccessOrderEntry) EqualMessageVT ¶
func (this *AccessOrderEntry) EqualMessageVT(thatMsg any) bool
func (*AccessOrderEntry) EqualVT ¶
func (this *AccessOrderEntry) EqualVT(that *AccessOrderEntry) bool
func (*AccessOrderEntry) GetAccessCount ¶
func (x *AccessOrderEntry) GetAccessCount() uint64
func (*AccessOrderEntry) GetFilesystem ¶
func (x *AccessOrderEntry) GetFilesystem() AccessOrderFilesystem
func (*AccessOrderEntry) GetOrdinal ¶
func (x *AccessOrderEntry) GetOrdinal() uint64
func (*AccessOrderEntry) GetPath ¶
func (x *AccessOrderEntry) GetPath() string
func (*AccessOrderEntry) GetReason ¶
func (x *AccessOrderEntry) GetReason() AccessOrderReason
func (*AccessOrderEntry) GetReasonDetail ¶
func (x *AccessOrderEntry) GetReasonDetail() string
func (*AccessOrderEntry) GetResolvedRefs ¶
func (x *AccessOrderEntry) GetResolvedRefs() []*block.BlockRef
func (*AccessOrderEntry) MarshalJSON ¶
func (x *AccessOrderEntry) MarshalJSON() ([]byte, error)
MarshalJSON marshals the AccessOrderEntry to JSON.
func (*AccessOrderEntry) MarshalProtoJSON ¶
func (x *AccessOrderEntry) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the AccessOrderEntry message to JSON.
func (*AccessOrderEntry) MarshalProtoText ¶
func (x *AccessOrderEntry) MarshalProtoText() string
func (*AccessOrderEntry) MarshalToSizedBufferVT ¶
func (m *AccessOrderEntry) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*AccessOrderEntry) MarshalToVT ¶
func (m *AccessOrderEntry) MarshalToVT(dAtA []byte) (int, error)
func (*AccessOrderEntry) MarshalVT ¶
func (m *AccessOrderEntry) MarshalVT() (dAtA []byte, err error)
func (*AccessOrderEntry) ProtoMessage ¶
func (*AccessOrderEntry) ProtoMessage()
func (*AccessOrderEntry) Reset ¶
func (x *AccessOrderEntry) Reset()
func (*AccessOrderEntry) SizeVT ¶
func (m *AccessOrderEntry) SizeVT() (n int)
func (*AccessOrderEntry) String ¶
func (x *AccessOrderEntry) String() string
func (*AccessOrderEntry) UnmarshalJSON ¶
func (x *AccessOrderEntry) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the AccessOrderEntry from JSON.
func (*AccessOrderEntry) UnmarshalProtoJSON ¶
func (x *AccessOrderEntry) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the AccessOrderEntry message from JSON.
func (*AccessOrderEntry) UnmarshalVT ¶
func (m *AccessOrderEntry) UnmarshalVT(dAtA []byte) error
type AccessOrderFilesystem ¶
type AccessOrderFilesystem int32
AccessOrderFilesystem identifies which manifest filesystem a path came from.
const ( // ACCESS_ORDER_FILESYSTEM_UNKNOWN indicates the filesystem was not recorded. AccessOrderFilesystem_ACCESS_ORDER_FILESYSTEM_UNKNOWN AccessOrderFilesystem = 0 // ACCESS_ORDER_FILESYSTEM_DIST identifies the manifest distribution filesystem. AccessOrderFilesystem_ACCESS_ORDER_FILESYSTEM_DIST AccessOrderFilesystem = 1 // ACCESS_ORDER_FILESYSTEM_ASSETS identifies the manifest assets filesystem. AccessOrderFilesystem_ACCESS_ORDER_FILESYSTEM_ASSETS AccessOrderFilesystem = 2 )
func (AccessOrderFilesystem) Enum ¶
func (x AccessOrderFilesystem) Enum() *AccessOrderFilesystem
func (AccessOrderFilesystem) MarshalJSON ¶
func (x AccessOrderFilesystem) MarshalJSON() ([]byte, error)
MarshalJSON marshals the AccessOrderFilesystem to JSON.
func (AccessOrderFilesystem) MarshalProtoJSON ¶
func (x AccessOrderFilesystem) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the AccessOrderFilesystem to JSON.
func (AccessOrderFilesystem) MarshalProtoText ¶
func (x AccessOrderFilesystem) MarshalProtoText() string
func (AccessOrderFilesystem) MarshalText ¶
func (x AccessOrderFilesystem) MarshalText() ([]byte, error)
MarshalText marshals the AccessOrderFilesystem to text.
func (AccessOrderFilesystem) String ¶
func (x AccessOrderFilesystem) String() string
func (*AccessOrderFilesystem) UnmarshalJSON ¶
func (x *AccessOrderFilesystem) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the AccessOrderFilesystem from JSON.
func (*AccessOrderFilesystem) UnmarshalProtoJSON ¶
func (x *AccessOrderFilesystem) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the AccessOrderFilesystem from JSON.
func (*AccessOrderFilesystem) UnmarshalText ¶
func (x *AccessOrderFilesystem) UnmarshalText(b []byte) error
UnmarshalText unmarshals the AccessOrderFilesystem from text.
type AccessOrderManifestIdentity ¶
type AccessOrderManifestIdentity struct {
ManifestID string
PlatformID string
BuildType string
ManifestRootRef *block.BlockRef
ManifestRev uint64
}
AccessOrderManifestIdentity identifies the manifest a profile was recorded against.
func AccessOrderManifestIdentityFromRecord ¶
func AccessOrderManifestIdentityFromRecord(record *AccessOrderRecord) AccessOrderManifestIdentity
AccessOrderManifestIdentityFromRecord returns the manifest identity stored in record.
func (AccessOrderManifestIdentity) MatchesRecord ¶
func (i AccessOrderManifestIdentity) MatchesRecord(record *AccessOrderRecord) bool
MatchesRecord returns true when record was captured for the same manifest.
type AccessOrderMetadata ¶
type AccessOrderMetadata struct {
// Key is the metadata key.
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// Value is the metadata value.
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
// contains filtered or unexported fields
}
AccessOrderMetadata stores one build metadata key/value pair.
func (*AccessOrderMetadata) CloneMessageVT ¶
func (m *AccessOrderMetadata) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*AccessOrderMetadata) CloneVT ¶
func (m *AccessOrderMetadata) CloneVT() *AccessOrderMetadata
func (*AccessOrderMetadata) EqualMessageVT ¶
func (this *AccessOrderMetadata) EqualMessageVT(thatMsg any) bool
func (*AccessOrderMetadata) EqualVT ¶
func (this *AccessOrderMetadata) EqualVT(that *AccessOrderMetadata) bool
func (*AccessOrderMetadata) GetKey ¶
func (x *AccessOrderMetadata) GetKey() string
func (*AccessOrderMetadata) GetValue ¶
func (x *AccessOrderMetadata) GetValue() string
func (*AccessOrderMetadata) MarshalJSON ¶
func (x *AccessOrderMetadata) MarshalJSON() ([]byte, error)
MarshalJSON marshals the AccessOrderMetadata to JSON.
func (*AccessOrderMetadata) MarshalProtoJSON ¶
func (x *AccessOrderMetadata) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the AccessOrderMetadata message to JSON.
func (*AccessOrderMetadata) MarshalProtoText ¶
func (x *AccessOrderMetadata) MarshalProtoText() string
func (*AccessOrderMetadata) MarshalToSizedBufferVT ¶
func (m *AccessOrderMetadata) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*AccessOrderMetadata) MarshalToVT ¶
func (m *AccessOrderMetadata) MarshalToVT(dAtA []byte) (int, error)
func (*AccessOrderMetadata) MarshalVT ¶
func (m *AccessOrderMetadata) MarshalVT() (dAtA []byte, err error)
func (*AccessOrderMetadata) ProtoMessage ¶
func (*AccessOrderMetadata) ProtoMessage()
func (*AccessOrderMetadata) Reset ¶
func (x *AccessOrderMetadata) Reset()
func (*AccessOrderMetadata) SizeVT ¶
func (m *AccessOrderMetadata) SizeVT() (n int)
func (*AccessOrderMetadata) String ¶
func (x *AccessOrderMetadata) String() string
func (*AccessOrderMetadata) UnmarshalJSON ¶
func (x *AccessOrderMetadata) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the AccessOrderMetadata from JSON.
func (*AccessOrderMetadata) UnmarshalProtoJSON ¶
func (x *AccessOrderMetadata) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the AccessOrderMetadata message from JSON.
func (*AccessOrderMetadata) UnmarshalVT ¶
func (m *AccessOrderMetadata) UnmarshalVT(dAtA []byte) error
type AccessOrderPathResolver ¶
type AccessOrderPathResolver interface {
ResolveAccessOrderPath(ctx context.Context, filesystem AccessOrderFilesystem, path string) ([]*block.BlockRef, bool, error)
}
AccessOrderPathResolver resolves a manifest file path to current block refs.
type AccessOrderPathResolverFunc ¶
type AccessOrderPathResolverFunc func(ctx context.Context, filesystem AccessOrderFilesystem, path string) ([]*block.BlockRef, bool, error)
AccessOrderPathResolverFunc adapts a function into an AccessOrderPathResolver.
func (AccessOrderPathResolverFunc) ResolveAccessOrderPath ¶
func (f AccessOrderPathResolverFunc) ResolveAccessOrderPath(ctx context.Context, filesystem AccessOrderFilesystem, path string) ([]*block.BlockRef, bool, error)
ResolveAccessOrderPath resolves a manifest file path to current block refs.
type AccessOrderReason ¶
type AccessOrderReason int32
AccessOrderReason identifies why a path was recorded.
const ( // ACCESS_ORDER_REASON_UNKNOWN indicates no reason was recorded. AccessOrderReason_ACCESS_ORDER_REASON_UNKNOWN AccessOrderReason = 0 // ACCESS_ORDER_REASON_ENTRYPOINT identifies the startup entrypoint file. AccessOrderReason_ACCESS_ORDER_REASON_ENTRYPOINT AccessOrderReason = 1 // ACCESS_ORDER_REASON_DYNAMIC_IMPORT identifies a dynamic import edge. AccessOrderReason_ACCESS_ORDER_REASON_DYNAMIC_IMPORT AccessOrderReason = 2 // ACCESS_ORDER_REASON_ASSET identifies an asset file access. AccessOrderReason_ACCESS_ORDER_REASON_ASSET AccessOrderReason = 3 )
func (AccessOrderReason) Enum ¶
func (x AccessOrderReason) Enum() *AccessOrderReason
func (AccessOrderReason) MarshalJSON ¶
func (x AccessOrderReason) MarshalJSON() ([]byte, error)
MarshalJSON marshals the AccessOrderReason to JSON.
func (AccessOrderReason) MarshalProtoJSON ¶
func (x AccessOrderReason) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the AccessOrderReason to JSON.
func (AccessOrderReason) MarshalProtoText ¶
func (x AccessOrderReason) MarshalProtoText() string
func (AccessOrderReason) MarshalText ¶
func (x AccessOrderReason) MarshalText() ([]byte, error)
MarshalText marshals the AccessOrderReason to text.
func (AccessOrderReason) String ¶
func (x AccessOrderReason) String() string
func (*AccessOrderReason) UnmarshalJSON ¶
func (x *AccessOrderReason) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the AccessOrderReason from JSON.
func (*AccessOrderReason) UnmarshalProtoJSON ¶
func (x *AccessOrderReason) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the AccessOrderReason from JSON.
func (*AccessOrderReason) UnmarshalText ¶
func (x *AccessOrderReason) UnmarshalText(b []byte) error
UnmarshalText unmarshals the AccessOrderReason from text.
type AccessOrderRecord ¶
type AccessOrderRecord struct {
// ManifestId is the manifest id the profile was recorded for.
ManifestId string `protobuf:"bytes,1,opt,name=manifest_id,json=manifestId,proto3" json:"manifestId,omitempty"`
// PlatformId is the manifest platform id the profile was recorded for.
PlatformId string `protobuf:"bytes,2,opt,name=platform_id,json=platformId,proto3" json:"platformId,omitempty"`
// BuildType is the manifest build type the profile was recorded for.
BuildType string `protobuf:"bytes,3,opt,name=build_type,json=buildType,proto3" json:"buildType,omitempty"`
// ManifestRootRef is the manifest root ref the profile was recorded against.
ManifestRootRef *block.BlockRef `protobuf:"bytes,4,opt,name=manifest_root_ref,json=manifestRootRef,proto3" json:"manifestRootRef,omitempty"`
// ManifestRev is the manifest revision the profile was recorded against.
ManifestRev uint64 `protobuf:"varint,5,opt,name=manifest_rev,json=manifestRev,proto3" json:"manifestRev,omitempty"`
// GenerationId identifies the profiling run or build input that wrote this record.
GenerationId string `protobuf:"bytes,6,opt,name=generation_id,json=generationId,proto3" json:"generationId,omitempty"`
// GeneratedAt is when this record was written.
GeneratedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=generated_at,json=generatedAt,proto3" json:"generatedAt,omitempty"`
// Entries are ordered file accesses observed during startup profiling.
Entries []*AccessOrderEntry `protobuf:"bytes,8,rep,name=entries,proto3" json:"entries,omitempty"`
// BuildMetadata stores optional build metadata attached by the profiling run.
BuildMetadata []*AccessOrderMetadata `protobuf:"bytes,9,rep,name=build_metadata,json=buildMetadata,proto3" json:"buildMetadata,omitempty"`
// contains filtered or unexported fields
}
AccessOrderRecord stores profile-guided manifest startup file access order.
func DecodeAccessOrderRecord ¶
func DecodeAccessOrderRecord(r io.Reader) (*AccessOrderRecord, error)
DecodeAccessOrderRecord reads protobuf binary data into a record.
func ReadAccessOrderRecordFile ¶
func ReadAccessOrderRecordFile(path string) (*AccessOrderRecord, error)
ReadAccessOrderRecordFile reads path as protobuf binary data.
func (*AccessOrderRecord) CloneMessageVT ¶
func (m *AccessOrderRecord) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*AccessOrderRecord) CloneVT ¶
func (m *AccessOrderRecord) CloneVT() *AccessOrderRecord
func (*AccessOrderRecord) EqualMessageVT ¶
func (this *AccessOrderRecord) EqualMessageVT(thatMsg any) bool
func (*AccessOrderRecord) EqualVT ¶
func (this *AccessOrderRecord) EqualVT(that *AccessOrderRecord) bool
func (*AccessOrderRecord) GetBuildMetadata ¶
func (x *AccessOrderRecord) GetBuildMetadata() []*AccessOrderMetadata
func (*AccessOrderRecord) GetBuildType ¶
func (x *AccessOrderRecord) GetBuildType() string
func (*AccessOrderRecord) GetEntries ¶
func (x *AccessOrderRecord) GetEntries() []*AccessOrderEntry
func (*AccessOrderRecord) GetGeneratedAt ¶
func (x *AccessOrderRecord) GetGeneratedAt() *timestamppb.Timestamp
func (*AccessOrderRecord) GetGenerationId ¶
func (x *AccessOrderRecord) GetGenerationId() string
func (*AccessOrderRecord) GetManifestId ¶
func (x *AccessOrderRecord) GetManifestId() string
func (*AccessOrderRecord) GetManifestRev ¶
func (x *AccessOrderRecord) GetManifestRev() uint64
func (*AccessOrderRecord) GetManifestRootRef ¶
func (x *AccessOrderRecord) GetManifestRootRef() *block.BlockRef
func (*AccessOrderRecord) GetPlatformId ¶
func (x *AccessOrderRecord) GetPlatformId() string
func (*AccessOrderRecord) MarshalJSON ¶
func (x *AccessOrderRecord) MarshalJSON() ([]byte, error)
MarshalJSON marshals the AccessOrderRecord to JSON.
func (*AccessOrderRecord) MarshalProtoJSON ¶
func (x *AccessOrderRecord) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the AccessOrderRecord message to JSON.
func (*AccessOrderRecord) MarshalProtoText ¶
func (x *AccessOrderRecord) MarshalProtoText() string
func (*AccessOrderRecord) MarshalToSizedBufferVT ¶
func (m *AccessOrderRecord) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*AccessOrderRecord) MarshalToVT ¶
func (m *AccessOrderRecord) MarshalToVT(dAtA []byte) (int, error)
func (*AccessOrderRecord) MarshalVT ¶
func (m *AccessOrderRecord) MarshalVT() (dAtA []byte, err error)
func (*AccessOrderRecord) ProtoMessage ¶
func (*AccessOrderRecord) ProtoMessage()
func (*AccessOrderRecord) Reset ¶
func (x *AccessOrderRecord) Reset()
func (*AccessOrderRecord) SizeVT ¶
func (m *AccessOrderRecord) SizeVT() (n int)
func (*AccessOrderRecord) String ¶
func (x *AccessOrderRecord) String() string
func (*AccessOrderRecord) UnmarshalJSON ¶
func (x *AccessOrderRecord) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the AccessOrderRecord from JSON.
func (*AccessOrderRecord) UnmarshalProtoJSON ¶
func (x *AccessOrderRecord) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the AccessOrderRecord message from JSON.
func (*AccessOrderRecord) UnmarshalVT ¶
func (m *AccessOrderRecord) UnmarshalVT(dAtA []byte) error
type AccessOrderReplayResult ¶
type AccessOrderReplayResult struct {
// Refs is the final ordered ref list.
Refs []*block.BlockRef
// StaleRecord indicates manifest metadata or profiled paths did not match.
StaleRecord bool
// UsedEntries is the number of record entries that contributed at least one ref.
UsedEntries int
// MissingPaths are record paths that could not be resolved in the current manifest.
MissingPaths []string
// MissingRefs are resolved refs that were not present in the candidate set.
MissingRefs []*block.BlockRef
}
AccessOrderReplayResult describes profile-guided replay output.
func ReplayAccessOrderRecord ¶
func ReplayAccessOrderRecord( ctx context.Context, graph RefGraph, identity AccessOrderManifestIdentity, record *AccessOrderRecord, refs []*block.BlockRef, resolver AccessOrderPathResolver, ) (*AccessOrderReplayResult, error)
ReplayAccessOrderRecord orders refs by record file access, then graph fallback.
func ReplayAccessOrderRecordWithFallback ¶
func ReplayAccessOrderRecordWithFallback( ctx context.Context, identity AccessOrderManifestIdentity, record *AccessOrderRecord, refs []*block.BlockRef, resolver AccessOrderPathResolver, ) (*AccessOrderReplayResult, error)
ReplayAccessOrderRecordWithFallback puts recorded reads first and retains the caller's structural order for all other blocks. Each nonempty identity is emitted once; the input order is also used when the record is stale.
type Graph ¶
type Graph struct {
// contains filtered or unexported fields
}
Graph orders a pack's available blocks by their structural relationships. Child order is supplied by the producer; unavailable children are ignored. It holds references, not block data, and is not concurrency safe.
func (*Graph) Add ¶
Add records a block and replaces its outgoing edges with the supplied order. Empty references are ignored. The graph owns copies of retained references.
func (*Graph) Order ¶
Order emits each available block once in depth-first child order. Explicit roots take precedence, followed by roots in the available graph. Unconnected roots and remaining cycles use stable hash order. Missing external parents do not prevent their available subtrees from being grouped.
type RefGraph ¶
type RefGraph interface {
// GetOutgoingRefs returns all gc/ref targets from a node.
GetOutgoingRefs(ctx context.Context, node string) ([]string, error)
// GetIncomingRefs returns all gc/ref sources for a node.
GetIncomingRefs(ctx context.Context, node string) ([]string, error)
}
RefGraph is the GC graph surface required for pack locality ordering.