MCPcopy Index your code
hub / github.com/cedana/cedana

github.com/cedana/cedana @v0.9.295

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.295 ↗ · + Follow
1,003 symbols 3,944 edges 261 files 360 documented · 36%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Cedana

GitHub Release Push

output-onlinepngtools

Welcome to Cedana! This repository is the home of the Cedana daemon and the low-level orchestration of our save/migrate/resume (SMR) functionality, and is the entry-point into the larger cedana ecosystem.

We build on top of and leverage CRIU to provide userspace checkpoint/restore of processes and the many different abstraction levels that lie above. We also provide the ability to checkpoint/restore rootfs in both containerd and CRIO interfaces for full container checkpoint/restores.

For a list of supported container runtimes, see features.

We can monitor, migrate and automate checkpoints across a real-time network and compute configuration enabling ephemeral and hardware agnostic compute. See our website for more information about our managed product.

Some problems Cedana can help solve include:

  • Cold-starts for containers & processes
  • Keeping a process or container running independent of hardware/network failure
  • Managing multiprocess/multinode systems (independent of Kubernetes/SLURM or any orchestration)
  • Kubernetes checkpoint/restore
  • GPU checkpoint/restore
  • And more!

Documentation

To get started using Cedana locally, check out the documentation.

Contributing

See CONTRIBUTING.md and developer guides in the documentation.

Extension points exported contracts — how you extend this code

Notify (Interface)
Notify interface [3 implementers]
pkg/criu/notify.go
RuntimeClient (Interface)
RuntimeClient is the interface that K8s runtime clients must implement [2 implementers]
plugins/k8s/pkg/kube/runtime.go
Storage (Interface)
(no doc) [3 implementers]
pkg/io/storage.go
Host (Interface)
(no doc) [3 implementers]
internal/db/db.go
Handler (FuncType)
RunVM = Handler[daemon.RunVMReq, daemon.RunVMResp]
pkg/types/handler.go
Manager (Interface)
Defines the plugin manager interface
pkg/plugins/manager.go
Snapshotter (Interface)
(no doc) [1 implementers]
plugins/cloud-hypervisor/pkg/vm/snapshotter.go
Manager (Interface)
(no doc)
internal/cedana/gpu/manager.go

Core symbols most depended-on inside this repo

String
called by 88
plugins/k8s/pkg/kube/runtime.go
GetState
called by 68
internal/cedana/job/job.go
GetDetails
called by 64
internal/cedana/job/job.go
With
called by 62
pkg/types/adapter.go
Close
called by 56
internal/cedana/streamer/file.go
IfAvailable
called by 46
pkg/plugins/feature.go
Done
called by 39
internal/cedana/job/manager.go
New
called by 37
internal/cedana/job/manager.go

Shape

Method 444
Function 428
Struct 103
Interface 12
FuncType 9
TypeAlias 7

Languages

Go100%

Modules by API surface

pkg/criu/notify.go36 symbols
internal/db/db.go26 symbols
pkg/criu/notify_callback.go25 symbols
pkg/client/client.go23 symbols
internal/cedana/streamer/fs.go23 symbols
internal/cedana/job/manager_lazy.go23 symbols
internal/cedana/job/job.go22 symbols
pkg/profiling/io.go21 symbols
internal/cedana/streamer/file.go21 symbols
pkg/criu/notify_callback_multi.go20 symbols
internal/cedana/gpu/manager.go20 symbols
internal/cedana/gpu/controller.go19 symbols

For agents

$ claude mcp add cedana \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page