10000 `LoadedPrograms` · Issue #29803 · solana-labs/solana · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.
This repository was archived by the owner on Jan 22, 2025. It is now read-only.
LoadedPrograms #29803
Closed as not planned
Closed as not planned
@Lichtso

Description

@Lichtso

Develop and Implement LoadedPrograms, replacement for the executor cache

  • One global loaded programs cache per validator with two index levels: Program address and effective slot
  • One local loaded programs cache per transaction batch
  • Each entry has a deployment slot (making this a bitemporal model)
  • And an effective slot, which does not refer to a specific block but all future blocks beyond that slot, which are descendants of the deployment slot
  • Entries can hold the following types of programs:
    • LegacyV0: Programs of the legacy loader(-v1) or loader(-v2)
    • LegacyV1: Programs of the upgradeable loader(-v3)
    • Typed: Programs of loader-v4
    • Built-in
    • Tombstone: To remember that a program failed verification or was closed
    • Unloaded: To remember that a program was verified before and what usage statistics it had
    • Loading: To coordinate cooperative loading across transaction batches
  • Recompilation phase before RBPF-affecting features activate to amortize workload on epoch boundary
  • Delay visibility: Avoids pipeline stalls as the very next instruction in a transaction could depend on a redeployment
  • Redeployment cool down: Prevents multiple (un-/re-)deployments of the same program in a slot
  • Usage statistics: Kept in atomic counters in the program which itself lives in an Arc
  • Simplify the transaction loader to deduplicate all accounts and not keep duplicate program accounts
  • Does not care about the dependency graph in between programs, all transitive dependencies need to be specified in a message

Metadata

Metadata

Assignees

Labels

runtimeIssues related to runtime, BPF, and LLVMstale[bot only] Added to stale content; results in auto-close after a week.

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0