[DRIVERS-2669] Add performance benchmarks for FLE/QE Created: 05/Jul/23  Updated: 21/Dec/23

Status: Backlog
Project: Drivers
Component/s: Client Side Encryption, Performance Benchmarking
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Daria Pardue Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: leads-triage
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Driver Changes: Needed - No Spec Changes
Quarter: FY25Q2

 Description   

Summary

There are currently no benchmarks for FLE/QE performance. We should add some benchmarks analogous to the existing non-encryption ones so that we can have a uniform way of assessing the impact of encryption on driver operations and also guard against regression in the FLE/QE APIs.

Motivation

Who is the affected end user?

FLE/QE users.

How does this affect the end user?

We haven't gotten any complaints yet, but it's better to start collecting performance data sooner rather than later.

How likely is it that this problem or use case will occur?

N/A

If the problem does occur, what are the consequences and how severe are they?

N/A

Is this issue urgent?

No, but it aligns with the Q3 performance emphasis from the product side.

Is this ticket required by a downstream team?

No

Is this ticket only for tests?

Yes

Acceptance Criteria

To provide a comparison between drivers, specify benchmarks for all drivers to implement:

  • Benchmark explicit encryption using the CSFLE algorithm: AEAD_AES_256_CBC_HMAC_SHA_512-Random
  • Benchmark explicit encryption using the QE algorithm: Indexed

To guard against regression in the CSFLE/QE APIs, test with one driver in the libmongocrypt project:

  • Benchmark explicit encryption with each supported algorithm.
  • Benchmark explicit decryption with each supported algorithm.
  • Benchmark automatic encryption with each supported algorithm.
  • Benchmark automatic decryption with each supported algorithm.

Benchmark only with the local KMS provider. libmongocrypt caches the decrypted Data Encryption Key (DEK). There is no expected benefit to testing other KMS providers.

Consider specifying these benchmarks alongside the benchmark defined in DRIVERS-2581. DRIVERS-2581 adds a benchmark for automatic decrypting of decrypting documents with many (e.g. 1500) encrypted fields using the algorithm AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic.


Generated at Thu Feb 08 08:26:09 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.