Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-69626

FLE2 Compact - delete from ESC not in a transaction

    • Type: Icon: Task Task
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Queryable Encryption
    • None
    • Server Security
    • Security 2022-10-17
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      If the ESC table has N rows, the N-1 rows should be deleted with a delete that is not in a MongoDB user transaction. Normally, all of the ESC operations run in SyncTransactionWithRetries::runNoThrow` which means they run in a TXN. Due to the large number of ESC rows that must be deleted this could create a very large txn, the deletes should instead happen with a delete that does not run as part of the transaction.

      1. Extend FLEQueryInterfaceImpl with a new delete method
      See FLEQueryInterfaceImpl::countDocuments for example of how this can be done with DBDirectClient
      2. Change ESC deletes to use this new method for all but the highest ESC record.

      Note: ECC deletes remain under the txn. Also, the ESC null document update remains under the TXN.

            Assignee:
            backlog-server-security [DO NOT USE] Backlog - Security Team
            Reporter:
            mark.benvenuto@mongodb.com Mark Benvenuto
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: