Skip to content

Tracking Issue: Stateful Schemes #8434

Open

Description

@connortsui20

This is a tracking issue for making stateful Schemes in the compressor easier to utilize and work with.

Motivation

There are cases where we can define better Schemes at runtime with more information. For example, we might want to pre-train an FSST compressor and then use that table for all of the arrays we want to compress (instead of training them every single time).

Design

TODO not super clear yet.

Steps

  • Initial implementation
  • Documentation
  • Public API stabilization

Unresolved questions

  • What is the best way to do this???
  • For Stateful Schemes, do we need to accept Arc<Scheme>? And should we update Scheme to look more like our VTables? Is that even better?

Implementation history

  • Nothing yet.

Activity

  1. changed the title [-]Stateful Schemes (what's the best way to do this?)[/-] [+]Tracking Issue: Stateful `Scheme`s[/+] on Jun 15, 2026
  2. connortsui20 commented on Jun 15, 2026

    @connortsui20
    MemberAuthor

    @tomsanbear I'm moving this to a dedicated tracking issue:

    Discussed on Slack

    I have a working branch exploring the Arc<dyn Scheme> approach for stateful schemes, with a pretrained FSST variant as the first use case: develop...tomsanbear:vortex:feat/fsst-pretrained-compressor

    Saw ~10x on the isolated FSST compression path and ~21% end-to-end on a streaming insert workload. Using the Box::leak workaround for now per Connor's suggestion. Happy to help when the design for stateful schemes is ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions