[SERVER-78801] Ensure cluster-wide parameters mechanism correctness (when working with query settings parameter) Created: 10/Jul/23  Updated: 26/Jan/24  Resolved: 06/Jan/24

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.3.0-rc0

Type: Task Priority: Major - P3
Reporter: Denis Grebennicov Assignee: Romans Kasperovics
Resolution: Fixed Votes: 0
Labels: M2
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Depends
Related
related to SERVER-85233 Remove query settings from getCluster... In Progress
related to SERVER-81062 Update cluster parameter cache on set... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
SERVER-78802 Introduce maxPreviousTime parameter t... Sub-task Closed Romans Kasperovics  
SERVER-78803 Introduce maxPreviousTime parameter t... Sub-task Closed Romans Kasperovics  
SERVER-78804 Prevent setClusterParameters being ca... Sub-task Closed Serhii Lysenko  
SERVER-80534 Remove SetClusterParameterInvocation:... Sub-task Closed Romans Kasperovics  
SERVER-81099 Prevent set-/removeQuerySettings bein... Sub-task Closed Romans Kasperovics  
Backwards Compatibility: Fully Compatible
Sprint: QE 2023-07-24, QE 2023-08-21, QE 2023-09-04, QE 2023-09-18, QE 2023-10-02, QE 2023-10-16, QE 2023-10-30, QE 2023-11-13, QE 2023-11-27, QE 2023-12-11, QE 2023-12-25, QE 2024-01-08
Participants:
Linked BF Score: 4

 Description   

querySettings cluster parameter is a special cluster parameter, that suffers from lost update problem.

Corresponding design doc describes how to mitigate this issue.

This ticket tracks all the work required to ensure no correctness issues may occur.



 Comments   
Comment by Githook User [ 26/Jan/24 ]

Author:

{'name': 'romanskas', 'email': '30618745+romanskas@users.noreply.github.com', 'username': 'romanskas'}

Message: SERVER-85789 Update server parameter docs (#17465)

SERVER-85789 Update server parameter docs

Persistent query settings (PM-412) use cluster server parameters
internally. In SERVER-78801, we added checks prohibiting running
concurrent cluster server parameter updates. The intention of this
change is to reflect these checks in the available technical
documentation. Additional changes result from updating to the most
recent state of the code, adding details, formatting,
restructuring, and running a spell checker.

GitOrigin-RevId: 55aeaddd624a9657c69a10f77b0e7efb2a4463df
Branch: master
https://github.com/mongodb/mongo/commit/a4d5d9dadba7f94889792f4832aad3bb334b9dba

Comment by Githook User [ 06/Jan/24 ]

Author:

{'name': 'romanskas', 'email': '30618745+romanskas@users.noreply.github.com', 'username': 'romanskas'}

Message: SERVER-81099 Ban setQuerySettings on standalone (#17559)

SERVER-81099 Ban setQuerySettings on standalone

SERVER-78801 introduced checks for lost updates prohibiting concurrent
modification of query settings. These checks rely on a vector clock,
which is
not functioning correctly in standalone deployment resulting in an
internal
error. Therefore, we prohibit query settings modification on standalone.

GitOrigin-RevId: 873c971a9b8c384943ac89c43a73c7da8b4a0fb1
Branch: master
https://github.com/mongodb/mongo/commit/8934a112bed8d98cc80a4b4934d9606e734eb9ac

Comment by Githook User [ 21/Dec/23 ]

Author:

{'name': 'romanskas', 'email': '30618745+romanskas@users.noreply.github.com', 'username': 'romanskas'}

Message: SERVER-78803 Reject concurrent query settings updates in sharded clusters (#17060)

SERVER-78803 Reject concurrent query settings updates in sharded
clusters

Until now, a new value of a cluster parameter was just replacing the old
one.
For the query settings project it is important to read / modify / write
cluster parameter values. In this scenario, concurrent calls of
setQuerySettings command may lead to seemingly successful, but incorrect
results.
This commit introduces an additional 'previousTime' parameter to ensure
that the cluster parameter value that was read has not changed at the
time
of writing, otherwise the operation must fail.
SERVER-78802 has added the 'previousTime' parameter and the related
check
for replica set deployments. This change is adding the check to sharded
cluster
deployments.
As of now, the optional 'previousTime' parameter is only being used by
the
query settings command. The design consideration for this new parameter
and
the related check are described in the design document attached to the
parent
ticket SERVER-78801.

GitOrigin-RevId: f5f35648c676f7dd132ba69d34bbd5251b71a2e1
Branch: master
https://github.com/mongodb/mongo/commit/6b1483403eebc2307ac32b211bad863e21970a45

Generated at Thu Feb 08 06:39:17 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.