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

Switch to Thrift in SimpleOpStore #700

Merged
merged 2 commits into from
Nov 13, 2022

Commits on Nov 13, 2022

  1. op_store: extract current Protobuf-based implementation to separate file

    In order to allow building jj inside of Google, our Protobuf team
    doesn't want to us to use a Google-unsupported implementation. Since
    there is no supported implementation in Rust, we have to migrate off
    of Protobufs. I'm starting with the operation store. This commit moves
    the current implementation to a separate file so it can easily be
    disabled by a Caargo feature.
    martinvonz committed Nov 13, 2022
    Configuration menu
    Copy the full SHA
    d490e2d View commit details
    Browse the repository at this point in the history
  2. simple_op_store: replace Protobuf by Thrift

    As mentioned in the previous commit, we need to remove the Protobuf
    dependency in order to be allowed to import jj into Google's
    repo. This commit makes `SimpleOpStore` store its data using Thrift
    instead of Protobufs. It also adds automatic upgrade of existing
    repos. The upgrade process took 18 s in my repo, which has 22k
    operations. The upgraded storage uses practically the same amount of
    space. `jj op log` (the full outut) in my repo slowed down from 1.2 s
    to 3.4 s. Luckily that's an uncommon operation. I couldn't measure any
    difference in `jj status` (loading a single operation).
    martinvonz committed Nov 13, 2022
    Configuration menu
    Copy the full SHA
    f74387c View commit details
    Browse the repository at this point in the history