clearJumboFlag
On this page本页内容
Definition
clearJumboFlag
-
Available starting in 4.2.3 and 4.0.15
Clears the jumbo flag for a chunk. To use the command, issue the
clearJumboFlag
command on amongos
instance.
Syntax
Th command has the following syntax:
db.adminCommand(
{
clearJumboFlag: "<database>.<collection>",
bounds: <array>
}
)
-OR-
// Cannot use for collections with hashed shard keys
db.adminCommand(
{
clearJumboFlag: "<database>.<collection>",
find: <query>
}
)
Command Fields
The clearJumboFlag
command takes the following fields as arguments:
Field | Type | Description |
---|---|---|
clearJumboFlag | string | The namespace of the sharded collection with the jumbo chunk(s). Specify the collection's full namespace, including the database name (i.e. "<database>.<collection>") |
bounds | array | The exact bounds of a specific chunk. The array must consist of two documents that specify the lower and upper shard key values of a chunk to move:[ { <shardKey> : <minValue> },{ <shardKey> : <maxValue> } ]
Note
|
find | document | A specific shard key and its value contained in the jumbo chunk.{ <shardKey> : <value> }
Note
|
Access Control
On systems running with authorization
, the user must have the clearJumboFlag
privilege actions on the {
db: "", collection: "" }
resource.
The built-in role clusterManager
provides the appropriate privileges.
Example
Clear Jumbo Flag for a Chunk (Range-Based Shard Key)
The sh.status()
includes the following sh.status.databases.<collection>.chunk-details
for the test.jumbo
collection.
... // Content omitted for brevity
test.jumbo
shard key: { "x" : 1 }
unique: false
balancing: true
chunks:
shardA 2
shardB 2
{ "x" : { "$minKey" : 1 } } -->> { "x" : 1 } on : shardB Timestamp(3, 0)
{ "x" : 1 } -->> { "x" : 2 } on : shardA Timestamp(6, 1) jumbo
{ "x" : 2 } -->> { "x" : 3 } on : shardA Timestamp(5, 1) jumbo
{ "x" : 3 } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(6, 0)
The following clearJumboFlag
command specifies the bounds of the { "x" : 1 } -->> { "x" :
2 }
chunk:
db.adminCommand( {
clearJumboFlag: "test.jumbo",
bounds: [{ "x" : 1 }, { "x" : 2 }]
} )
Upon success, the command returns "ok": 1
in its output:
{
"ok" : 1,
"operationTime" : Timestamp(1580190080, 5),
"$clusterTime" : {
"clusterTime" : Timestamp(1580190080, 5),
"signature" : {
"hash" : BinData(0,"0cYT49s72MHUYV1F2WpoEwlyeVs="),
"keyId" : NumberLong("6786859092951433239")
}
}
}
The following clearJumboFlag
command specifies the find field to find the chunk that contains the shard key { "x" : 2 }
:
db.adminCommand( {
clearJumboFlag: "test.jumbo",
find: { "x" : 2 }
} )
Upon success, the command returns "ok": 1
in its output:
{
"ok" : 1,
"operationTime" : Timestamp(1580191819, 5),
"$clusterTime" : {
"clusterTime" : Timestamp(1580191819, 5),
"signature" : {
"hash" : BinData(0,"N6x6drN7HUq5MR5ezUJns1rfeqY="),
"keyId" : NumberLong("6786859092951433239")
}
}
}
To verify the operation, run sh.status()
again. The jumbo
flag should no longer appear in its output.
... // Content omitted for brevity
test.jumbo
shard key: { "x" : 1 }
unique: false
balancing: true
chunks:
shardA 2
shardB 2
{ "x" : { "$minKey" : 1 } } -->> { "x" : 1 } on : shardB Timestamp(3, 0)
{ "x" : 1 } -->> { "x" : 2 } on : shardA Timestamp(7, 0)
{ "x" : 2 } -->> { "x" : 3 } on : shardA Timestamp(8, 0)
{ "x" : 3 } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(6, 0)
Clear Jumbo Flag for a Chunk (Hashed Shard Key)
The sh.status()
includes the following sh.status.databases.<collection>.chunk-details
for the test.jumboHashed
collection. The collection uses a hashed shard key.
... // Content omitted for brevity
test.jumboHashed
shard key: { "x" : "hashed" }
unique: false
balancing: true
chunks:
shardA 2
shardB 2
{ "x" : { "$minKey" : 1 } } -->> { "x" : NumberLong(0) } on : shardA Timestamp(1, 0)
{ "x" : NumberLong(0) } -->> { "x" : NumberLong("848411777775835583") } on : shardA Timestamp(4, 0)
{ "x" : NumberLong("848411777775835583") } -->> { "x" : NumberLong("5902408780260971510") } on : shardB Timestamp(4, 1) jumbo
{ "x" : NumberLong("5902408780260971510") } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(2, 2)
To clear the jumbo
flag for a chunk if the collection uses a hashed shard key, use clearJumboFlag
with the bounds field:
db.adminCommand( {
clearJumboFlag: "test.jumboHashed",
bounds: [{ "x" : NumberLong("848411777775835583") }, { "x" : NumberLong("5902408780260971510") }]
} )
Upon success, the command returns "ok": 1
in its output:
{
"ok" : 1,
"operationTime" : Timestamp(1580194290, 5),
"$clusterTime" : {
"clusterTime" : Timestamp(1580194290, 5),
"signature" : {
"hash" : BinData(0,"nWCqOYVrab7NEGHWoo2NYENqHR4="),
"keyId" : NumberLong("6786875525496307742")
}
}
}
To verify the operation, run sh.status()
again. The jumbo
flag should no longer appear in its output.
... // Content omitted for brevity
test.jumboHashed
shard key: { "x" : "hashed" }
unique: false
balancing: true
chunks:
shardA 2
shardB 2
{ "x" : { "$minKey" : 1 } } -->> { "x" : NumberLong(0) } on : shardA Timestamp(1, 0)
{ "x" : NumberLong(0) } -->> { "x" : NumberLong("848411777775835583") } on : shardA Timestamp(4, 0)
{ "x" : NumberLong("848411777775835583") } -->> { "x" : NumberLong("5902408780260971510") } on : shardB Timestamp(5, 0)
{ "x" : NumberLong("5902408780260971510") } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(2, 2)