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

RCORE-2152 Don't emit transaction log instructions for mutations on newly-created objects #7734

Merged
merged 5 commits into from
Jun 4, 2024

Commits on Jun 4, 2024

  1. Disable replication when writing to the pending bootstrap store

    Nothing observes this table for notifications, so we don't need CT history.
    This is a pretty minor optimization unless we get a very large number of very
    small changests from the server.
    tgoyne committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    afe0e0f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    553d059 View commit details
    Browse the repository at this point in the history
  3. Don't emit transaction log instructions for mutations on newly-create…

    …d objects
    
    The non-sync transaction logs are only used to drive notifications and
    notifications don't care about mutations on objects in the same commit as the
    objects were created it, so we don't need to emit the instructions at all. This
    significantly cuts the size of the transaction log for commits which are
    primarily inserting objects.
    
    This does a very basic check for "newly-created" which tracks the most recently
    created object for each table and skips mutation instructions for that object.
    This handles recursively creating an object and all of its embedded objects
    without the overhead of tracking every single object created within a
    transaction, and insertion workflows will typically not return to an object
    after creating another object in the same table.
    
    This requires adding an additional small amount of tracking for embedded
    objects, as Replication previously didn't know when new embedded objects were
    created.
    tgoyne committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    50e48e0 View commit details
    Browse the repository at this point in the history
  4. Delete some now-unused functions

    These were used for converting to the file format where ObjKeys were derived
    from primary keys.
    tgoyne committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    9affcbc View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    5d5e26d View commit details
    Browse the repository at this point in the history