Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cyclotron Megaissue #24424

Open
19 of 25 tasks
oliverb123 opened this issue Aug 16, 2024 · 0 comments
Open
19 of 25 tasks

Cyclotron Megaissue #24424

oliverb123 opened this issue Aug 16, 2024 · 0 comments
Assignees

Comments

@oliverb123
Copy link
Contributor

oliverb123 commented Aug 16, 2024

Cyclotron Megaissue

MVP: #24228


TODOs

MVP

Data/schema

  • Cyclotron needs to remove unicode nulls from passed strings The only String left is queue name, which isn't a user provided / dynamic field
  • Swap metadata, params, vm_state and the new "blob" column to Bytes. metadata and params will ~always be serialised objects in json format, but there's not need to force that to be the case (protobufs? capnproto? who knows what the future holds) chore(cyclotron): change columns to bytes, add blob column #24563
  • Expose "vm_state" and "blob" as byte arrays that are optionally returned during dequeue, and retrievable later chore(cyclotron): change columns to bytes, add blob column #24563
  • Impose (generous) size limits on vm_state and blob (1MB? 10MB? vm_state will generally include event data, and so will the body passed to fetch as part of a request. we impose a 1MB size limit on the body returned from fetch, but no size limit on what we send to external APIs). chore(cyclotron): change columns to bytes, add blob column #24563
  • Expose a bulk createJob API

Safety/fetch

Safety/shards

Monitoring

  • Janitor gauges to report queue depth (# of available jobs waiting on a worker), as well as completed/failed/reset/poisoned jobs
  • Fetch worker reporting job dequeue and processing time, as well as saturation
  • Some grafana dashboards based on the above
  • Workers, janitors and maybe managers should expose PgPool utilisation (fetch and janitor should tie this into their metrics)

Infra

  • Container images for fetch/janitor
  • helm charts for fetch/janitor
  • RDS clusters in dev/eu/us

CDP/node consumer

  • Get CDP consumer using cyclotron to queue jobs
  • Get function callbacks dequeuing returned fetch jobs

Later

  • Transparently de/compress vm_state and blob on read/write (maybe)
  • Node library should support multiple worker/manager instances, eventually.
  • Control commands
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants