-
Type:
Task
-
Resolution: Won't Do
-
Priority:
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.