summaryrefslogtreecommitdiff
path: root/src/mongo/s
diff options
context:
space:
mode:
authorPierlauro Sciarelli <pierlauro.sciarelli@mongodb.com>2022-03-04 12:07:32 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-04 13:13:37 +0000
commita80c0ef27627e24f3ff601ae234e6a8ec99ad2b3 (patch)
treebb126ad5766af56033b4e2b0efb2168f8e1f5ad5 /src/mongo/s
parentee5dacd18fd01e61b449066e2081515da79a8d66 (diff)
downloadmongo-a80c0ef27627e24f3ff601ae234e6a8ec99ad2b3.tar.gz
SERVER-63761 Implement first version of moveRange command (aliasing moveChunk)
Diffstat (limited to 'src/mongo/s')
-rw-r--r--src/mongo/s/SConscript1
-rw-r--r--src/mongo/s/request_types/move_range_request.idl87
2 files changed, 88 insertions, 0 deletions
diff --git a/src/mongo/s/SConscript b/src/mongo/s/SConscript
index 59107c28a7a..7be21eef763 100644
--- a/src/mongo/s/SConscript
+++ b/src/mongo/s/SConscript
@@ -205,6 +205,7 @@ env.Library(
'request_types/migration_secondary_throttle_options.cpp',
'request_types/move_chunk_request.cpp',
'request_types/move_primary.idl',
+ 'request_types/move_range_request.idl',
'request_types/refine_collection_shard_key.idl',
'request_types/remove_shard_from_zone_request_type.cpp',
'request_types/remove_tags.idl',
diff --git a/src/mongo/s/request_types/move_range_request.idl b/src/mongo/s/request_types/move_range_request.idl
new file mode 100644
index 00000000000..0289b916ee1
--- /dev/null
+++ b/src/mongo/s/request_types/move_range_request.idl
@@ -0,0 +1,87 @@
+# Copyright (C) 2022-present MongoDB, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the Server Side Public License, version 1,
+# as published by MongoDB, Inc.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# Server Side Public License for more details.
+#
+# You should have received a copy of the Server Side Public License
+# along with this program. If not, see
+# <http://www.mongodb.com/licensing/server-side-public-license>.
+#
+# As a special exception, the copyright holders give permission to link the
+# code of portions of this program with the OpenSSL library under certain
+# conditions as described in each individual source file and distribute
+# linked combinations including the program with the OpenSSL library. You
+# must comply with the Server Side Public License in all respects for
+# all of the code used other than as permitted herein. If you modify file(s)
+# with this exception, you may extend this exception to your version of the
+# file(s), but you are not obligated to do so. If you do not wish to do so,
+# delete this exception statement from your version. If you delete this
+# exception statement from all source files in the program, then also delete
+# it in the license file.
+#
+
+global:
+ cpp_namespace: "mongo"
+
+imports:
+ - "mongo/idl/basic_types.idl"
+ - "mongo/s/sharding_types.idl"
+
+enums:
+ ForceJumbo:
+ description: "This enum represents whether or not a migration should attempt to move a large range"
+ type: int # Not `string` due to backwards compatibility
+ values:
+ kDoNotForce: 0 # do not attempt to migrate a large chunk
+ kForceManual: 1 # manual moveChunk command specified `forceJumbo: true`
+ kForceBalancer: 2 # balancer specified `forceJumbo: true`
+
+commands:
+ moveRange:
+ command_name: moveRange
+ command_alias: moveChunk
+ cpp_name: ShardsvrMoveRange
+ description: "Definition of the moveRange command called on shards."
+ namespace: type
+ type: namespacestring
+ api_version: ""
+ strict: false
+ fields:
+ epoch:
+ type: objectid
+ description: "Epoch of the collection"
+ default: mongo::OID()
+ fromShard:
+ type: shard_id
+ description: "ID of the donor shard"
+ toShard:
+ type: shard_id
+ description: "ID of the recipient shard"
+ min:
+ type: object
+ description: "The min key of the range to move"
+ max:
+ type: object
+ description: "The max key of the range to move"
+ maxChunkSizeBytes:
+ type: safeInt64
+ description: "Max size of data to move"
+ optional: true
+ waitForDelete:
+ type: bool
+ description: "If set, wait for the chunk migration to finish before returning"
+ default: false
+ forceJumbo:
+ type: ForceJumbo
+ description: "Specifies the policy to use for jumbo chunks"
+ default: kDoNotForce
+ secondaryThrottle:
+ type: bool
+ description: "Secondary throttle policy to adopt during the migration"
+ default: false