• Mike Kozono's avatar
    Add worker to maintain Geo primary checksum tables · aee40a34
    Mike Kozono authored
    Geo replicates data from primary to secondaries. It verifies data
    integrity by checksumming the data on the primary, then
    checksumming the data on secondaries and comparing the result.
    
    For performance reasons, on the primary, we need to store the
    checksums and other metadata in a separate table from the
    source table. For example, the primary checksum data for
    `merge_request_diffs` is stored in
    `merge_request_diff_details`. The verification logic already
    mostly exists. But it depends on the checksum table having a
    record when the source table has a record.
    
    This commit adds a worker which inserts and deletes
    checksum table records without requiring triggers or the
    like on the source table. It is acceptable for this process to
    be slow.
    
    This worker is behind a feature flag verification_state_backfill_worker
    
    EE: true
    aee40a34
verifiable_replicator.rb 9.63 KB