summaryrefslogtreecommitdiff
path: root/src/mongo/s/config_server_client.h
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-06-06 10:44:38 +0300
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-06-15 11:05:53 -0400
commit4c98927f267eab9aae7c3987850a1ee5e3a4b620 (patch)
tree1ace7a6252c6df1b0e55e6ce1bb7bc3aa3a5ca79 /src/mongo/s/config_server_client.h
parented7456f206541a6ce5f8184c2cfe4418a568396d (diff)
downloadmongo-4c98927f267eab9aae7c3987850a1ee5e3a4b620.tar.gz
SERVER-22672 Move the sharding balancer to the CSRS primary
This change moves the sharding balancer to run on the primary of the CSRS config server and removes it from the mongos instances.
Diffstat (limited to 'src/mongo/s/config_server_client.h')
-rw-r--r--src/mongo/s/config_server_client.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/mongo/s/config_server_client.h b/src/mongo/s/config_server_client.h
new file mode 100644
index 00000000000..ec92a493aca
--- /dev/null
+++ b/src/mongo/s/config_server_client.h
@@ -0,0 +1,63 @@
+/**
+ * Copyright (C) 2016 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * 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
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * 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 GNU Affero General 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.
+ */
+
+#pragma once
+
+#include "mongo/s/client/shard.h"
+
+namespace mongo {
+
+class ChunkType;
+class MigrationSecondaryThrottleOptions;
+class OperationContext;
+class Status;
+
+/**
+ * This namespace contains all commands, which can be executed against the config server in order
+ * exercise control over the state of the sharded cluster.
+ */
+namespace configsvr_client {
+
+/**
+ * Requests the balancer to move the specified chunk off of its current shard to the new shard.
+ */
+Status moveChunk(OperationContext* txn,
+ const ChunkType& chunk,
+ const ShardId& newShardId,
+ int64_t maxChunkSizeBytes,
+ const MigrationSecondaryThrottleOptions& secondaryThrottle,
+ bool waitForDelete);
+
+/**
+ * Requests the balancer to move the specified chunk off of its current shard to a shard, considered
+ * more appropriate under the balancing policy which is currently in effect.
+ */
+Status rebalanceChunk(OperationContext* txn, const ChunkType& chunk);
+
+} // namespace configsvr_client
+} // namespace mongo