-
Type:
Investigation
-
Resolution: Won't Fix
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Tools and Replicator
When using replicated truncates for deleting expired change streams pre-images, a special sampling strategy is used to sample the pre-image documents in the config.system.preimages collection. This sampling strategy cannot rely on the local or replicated size/count information for the collection, because at least on disaggregated storage, this size/count information is not available right now, and it will likely not be provided via replicated fast counts in the future, as config.system.preimages is an implicitly replicated collection.
As there is no usable size/count information for the collection available, the sampling makes up the size/count information. This made-up size/count information can be very inaccurate, which can affect the estimates for the number of documents contained in the collection truncate markers for config.system.preimages.
This potential inaccuracy will affect how much documents are reported as removed by the periodic change stream pre-images remover thread.
As a consequence, log messages have been adjusted to indicate that the reported numbers are estimates and be inaccurate.
The log messages with ids 11423705 and 5869104 have been adjusted accordingly.
The periodic pre-images removal job also reports the size/count of the removed pre-images to serverStatus metrics, in the following metrics:
- changeStreamPreImages.purgingJob.docsDeleted
- changeStreamPreImages.purgingJob.bytesDeleted
The values reported in these metrics can also be inaccurate when using replicated truncates. Users should treat these values as estimates, which can be off.
Also, the following serverStatus metrics can be off when using replicated truncates, as they also rely on size/count information being present for the config.system.preimages collection:
- changeStreamPreImages.numDocs
- changeStreamPreImages.totalBytes
- changeStreamPreImages.avgDocSize
- changeStreamPreImages.storageSize
- changeStreamPreImages.freeStorageSize
Again, users should treat these values as estimates.
Note: replicated truncates will be used on disaggregated storage clusters (DSC), and can also be used on aggregated storage clusters (ASC) if the feature flag featureFlagUseReplicatedTruncatesForDeletions is enabled. This feature flag may flip from currently "disabled" to "enabled" eventually.
Description of Linked Ticket
When using replicated truncates, a special sampling strategy is used to sample the pre-image documents in the `config.system.preimages` collection. This sampling strategy cannot rely on the local or replicated size/count information for the collection, because at least on disaggregated storage, this size/count information is not available right now, and it will likely not be provided via replicated fast counts in the future, as `config.system.preimages` is an implicitly replicated collection.
As there is no usable size/count information for the collection available, the sampling makes up the size/count information. This made-up size/count information can be very inaccurate, which can affect the estimates for the number of documents contained in the collection truncate markers for `config.system.preimages`.
This potential inaccuracy will affect how much documents are reported as removed by the periodic change stream pre-images remover thread.
This change adjusts the log messages that report the number of documents removed, so that the log messages now indicate that the numbers are estimates and be inaccurate.
- depends on
-
SERVER-122242 Adjust wording for size/count estimates
-
- Closed
-