定義
$currentOpトランザクションの一部としてロックを保持している非アクティブなセッションおよびアクティブな操作および休止中の操作に関する情報を含むドキュメントのストリームを返します。 ステージでは、各操作またはセッションのドキュメントが返されます。
$currentOpを実行するには、adminデータベースでdb.aggregate()ヘルパーを使用します。$currentOpを使用すると、ドキュメントがパイプラインを通過するときに結果の任意の変換を実行することもできます。
注意
$currentOpcurrentOpコマンド(バージョン.6 2で非推奨)とdb.currentOp() メソッドの代わりに、 集計ステージを使用することを推奨します。
構文
{ $currentOp: { allUsers: <boolean>, idleConnections: <boolean>, idleCursors: <boolean>, idleSessions: <boolean>, localOps: <boolean> } }
$currentOp は、オプションドキュメントをオペランドとして受け取ります。
オプション | 説明 |
|---|---|
ブール値。
アクセス制御を強制するスタンドアロンとレプリカセットでは、 アクセス制御を強制するシャーディングされたクラスターの場合、 デフォルトは | |
ブール値。 デフォルトは | |
ブール値。
デフォルトは | |
ブール値。 たとえば、3 つのシャードを持つシャーディングされたクラスターでは、各シャードは 3 つのノードを含むレプリカセットです。
デフォルトは バージョン7.1の新機能。 |
上記のパラメーターのいずれかを省略すると、$currentOp はそのパラメーターのデフォルト値を使用します。 すべてのパラメータのデフォルト値を使用するには、次に示すように空のドキュメントを指定します。
{ $currentOp: { } }
制約
パイプライン
$currentOpは、パイプラインの最初のステージである必要があります。$currentOpで開始されるパイプラインは、adminデータベースでのみ実行できます。
アクセス制御
アクセス制御を強制するスタンドアロンとレプリカセットで、 allUsers: true の場合、 を実行するには
inprog特権が必要です。$currentOpアクセス制御を強制するシャーディングされたクラスターの場合、
$currentOpを実行するにはinprog特権が必要です。
トランザクション
$currentOpトランザクションでは許可されていません。
編集
Queryable Encryptionを使用する場合、 $currentOpの出力は特定の情報を編集します。
出力では、
"command"以降のすべてのフィールドが省略されます。出力では、
"command"が最初の要素である$commentと$dbのみを含むように編集されます。
例
出力フィールド
各出力ドキュメントには、 操作に関連する以下のフィールドのサブセットが含まれる場合があります。
$currentOp.type操作の種類。 値は次のいずれかです。
opidleSessionidleCursor
$currentOp.typeがopの場合、$currentOp.opには特定の操作に関する詳細が表示されます。
$currentOp.client操作の発信元となるクライアント接続の IP アドレス(またはホスト名)とエフェメラル ポート。
マルチドキュメントトランザクションの場合、
$currentOp.clientはトランザクション内で操作を実行するための最新のクライアントに関する情報を保存します。スタンドアロンとレプリカセットのみ
$currentOp.client_s操作の発信元となる
mongosの IP アドレス(またはホスト名)とエフェメラル ポート。シャーディングされたクラスターのみ
$currentOp.clientMetadataクライアントに関する追加情報。
マルチドキュメントトランザクションの場合、
$currentOp.clientはトランザクション内で操作を実行するための最新のクライアントに関する情報を保存します。
$currentOp.appName操作を実行したクライアント・アプリケーションの識別子。
appName接続stringオプションを使用して、appNameフィールドにカスタム値を設定します。
$currentOp.active操作が開始されたかどうかを指定するブール値。 値は、操作が開始された場合は
trueで、アイドル接続、非アクティブなセッション、現在アイドル状態の内部スレッドなど、操作がアイドル状態の場合はfalseです。 操作が別の操作に中断された場合でも、操作をアクティブにすることができます。
$currentOp.twoPhaseCommitCoordinator次のいずれかに関する情報
書込み (write) 操作が複数のシャードにまたがるトランザクションのコミット調整メトリクス。
コミット調整はシャードによって処理され、
$currentOp(mongosまたはシャード ノードで実行)は、シャードが現在調整しているトランザクションについてのみシャードの調整情報を返します。次の例では、コミット調整メトリクスのみをフィルタリングします。
db.getSiblingDB("admin").aggregate( [ { $currentOp: { allUsers: true, idleSessions: true } }, { $match: { desc: "transaction coordinator" } } ] )
トランザクションの調整役によって生成される特定のコミット調整操作(
typeopdescは 、 は"TransactionCoordinator"です)。注意
idleSessions: false で実行した場合、
$currentOpは$currentOp.twoPhaseCommitCoordinatorの 情報を返しませんinactivestateアクセス制御が有効になっていて、 allUsers: false の場合、
$currentOpは$currentOp.twoPhaseCommitCoordinator情報を返しません。
$currentOp.twoPhaseCommitCoordinator.lsidマルチシャード トランザクションのセッション識別子。
$currentOp.twoPhaseCommitCoordinator.txnNumberマルチシャード トランザクションのトランザクション番号。
$currentOp.twoPhaseCommitCoordinator.actionトランザクションの調整役によって生成される特定のコミット調整操作は、以下のとおりです。
"sendingPrepare""sendingCommit""sendingAbort""writingParticipantList""writingDecision""deletingCoordinatorDoc"
特定の調整操作でのみ使用できます。
$currentOp.twoPhaseCommitCoordinator.numParticipantsこのコミットに参加したシャードの数。
コミット調整メトリクスでのみ使用できます。
$currentOp.twoPhaseCommitCoordinator.stateコミット調整プロセスの現在のステップまたは状態。
ステップ/ステージ説明inactiveコミットのアクティブな一部ではない。
writingParticipantListこのマルチシャード トランザクションの一部であるシャードのリストをローカル レコードで書込み (write) ます。
waitingForVotes参加者がコミットまたは中止への投票で応答するまで待機します。
writingDecision投票に基づいてコミットまたは中止するかどうかのコーディネーターの決定をローカル レコードで書き込みます。
waitingForDecisionAckコーディネーターのコミットまたは中止の決定を確認するまで、参加者が待機します。
deletingCoordinatorDocコミット決定のローカル レコードを削除します。
コミット調整メトリクスでのみ使用できます。
$currentOp.twoPhaseCommitCoordinator.stepDurationsも参照してください。
$currentOp.twoPhaseCommitCoordinator.commitStartTimeコミットが開始された日時。
コミット調整メトリクスでのみ使用できます。
$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailoverコミットを調整しているシャードで フェイルオーバー によりコミット調整が再開されたかどうかを示すブール値。
が
hasRecoveredFromFailovertrue の場合、$currentOp.twoPhaseCommitCoordinator.stepDurationsで指定される時間がすべてのステップで正確にならない可能性があります。コミット調整メトリクスでのみ使用できます。
$currentOp.twoPhaseCommitCoordinator.stepDurationsアクティブなプロセスの完了または進行中の の期間(マイクロ秒単位)と累積合計期間を含むドキュメント。 (例:
steps/state)。"stepDurations" : { "writingParticipantListMicros" : Long(17801), "totalCommitDurationMicros" : Long(42488463), "waitingForVotesMicros" : Long(30378502), "writingDecisionMicros" : Long(15015), "waitingForDecisionAcksMicros" : Long(12077145), "deletingCoordinatorDocMicros" : Long(6009) }, が
$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailovertrue の場合、stepDurationsで指定される時間がすべてのステップで正確にならない可能性があります。inactive状態のコーディネーターの場合、ドキュメントは空です。"stepDurations" : { } コミット調整メトリクスでのみ使用できます。
$currentOp.twoPhaseCommitCoordinator.decisionコミットまたは中止の決定を含むドキュメント。例:
- コミットの決定を行うには:
"decision" : { "decision" : "commit", "commitTimestamp" : Timestamp(1572034669, 3) } - 中止の決定を行うには:
"decision" : { "decision" : "abort", "abortStatus" : { "code" : 282, "codeName" : "TransactionCoordinatorReachedAbortDecision", "errmsg" : "Transaction exceeded deadline" } } コミット調整メトリクスでのみ使用できます。
$currentOp.twoPhaseCommitCoordinator.deadlineコミットが完了する必要がある日時。
コミット調整メトリクスでのみ使用できます。
$currentOp.runByeffectiveUser(s)操作で を引き受けている各ユーザーのドキュメントを含む配列。 runByドキュメントには、user名と認証dbが含まれています。一般的に、権限を付与するユーザーは__systemユーザーです。例:"runBy" : [ { "user" : "__system", "db" : "local" } ]
$currentOp.opid操作の識別子。この値を
db.killOp()のmongoshに渡すと、操作 を終了できます。警告
実行中の操作は、細心の注意を払って終了します。 クライアントによって開始された操作を終了するには
db.killOp()のみを使用し、内部データベース操作は終了しません。
$currentOp.versionContextサーバーが使用可能な機能を決定するために使用する、操作の機能互換性バージョン(FCV)を説明します。
この情報は、サーバー の更新またはダウングレード中に発生した問題のトラブルシューティングを目的としています。
バージョン8.2の新機能。
$currentOp.secs_running操作の期間(秒単位)。 MongoDB は、操作の開始時刻から現在の時刻を減算してこの値を計算します。
操作が実行中の場合にのみ存在します。つまり、 が
activeの場合はtrueになります。
$currentOp.microsecs_running操作の継続時間(マイクロ秒単位)。 MongoDB は、操作の開始時刻から現在の時刻を減算してこの値を計算します。
操作が実行中の場合にのみ存在します。つまり、
activeがtrueの場合は になります。
$currentOp.transactionマルチドキュメントトランザクション情報を含むドキュメント。
操作がトランザクションの一部である場合にのみ存在します。
レプリカセット の場合。
$currentOpシャーディングされたクラスターで、 が localOps:true なしで実行されている場合。トランザクション情報はシャードごとです。シャーディングされたクラスターで、
$currentOpがlocalOps:trueで実行されている場合 トランザクション情報は、シャードごとではなく、複合ビューです。
$currentOp.transaction.parametersマルチドキュメントトランザクションに関する情報を含むドキュメント。
操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.transaction.parameters.autocommitトランザクションでオートコミットがオンになっているかどうかを示すブール値のフラグ。
操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.transaction.parameters.readConcernトランザクションの読み取り保証( read concern )です。
マルチドキュメントトランザクションは、読み取り保証(read concern)
"snapshot"、"local"、"majority"をサポートします。操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.transaction.globalReadTimestamp「スナップショット」読み取り保証 (read concern)を使用するシャーディングされたトランザクション内の操作によって読み取られたスナップショットのタイムスタンプ。 シャーディングされたクラスター上のトランザクションの場合、データの読み取り保証(read concern)
"snapshot"はシャード間で 同期されます 。つまり、その他の読み取り保証 (read concern) では、シャード全体でデータが同じスナップショット ビューから取得されることは保証されません。シャーディングされたクラスター トランザクションに対してlocalOps: trueで実行した場合にのみ存在します。
$currentOp.transaction.readTimestampこのトランザクションの操作によって読み取られるスナップショットのタイムスタンプ
操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。 ただし、次の場合には、 フィールドは返されません。
トランザクションがシャーディングされたクラスターにあり、 「スナップショット」読み取り保証(read concern ) を使用している
$currentOpはlocalOps: true で実行されます。
代わりに、
$currentOp.transaction.globalReadTimestampが返されます。
$currentOp.transaction.startWallClockTimeトランザクションが開始された日時(タイムゾーン)。
操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.transaction.timeOpenMicrosトランザクションの期間(マイクロ秒単位)。
timeActiveMicrosに追加される の値はtimeInactiveMicrostimeOpenMicrosと等しくなっている必要があります。操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.transaction.timeActiveMicrosトランザクションがアクティブになっている合計時間。つまり、トランザクションで操作が実行されていた場合を指します。
timeActiveMicrosに追加される の値はtimeInactiveMicrostimeOpenMicrosと等しくなっている必要があります。操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.transaction.timeInactiveMicrosトランザクションが非アクティブであった合計時間。トランザクションで実行中の操作がない場合。
timeInactiveMicrosに追加される の値はtimeActiveMicrostimeOpenMicrosと等しくなっている必要があります。操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.transaction.numParticipantsこのトランザクションに参加しているシャードの数。
操作がシャーディングされたクラスター上のトランザクションの一部であり、
$currentOpがlocalOps: trueで実行されている場合にのみ存在します。
$currentOp.transaction.participantsこのトランザクションに参加しているシャードを詳細に示すドキュメントの配列。 各ドキュメントには、名前、シャードがコミット コーディネーターとして機能するかどうかを示すフラグ、シャードがトランザクションの読み取り操作のみに関与しているかどうかを示すフラグが含まれています。
{ "name" : "shardA", "coordinator" : false, "readOnly" : false } 操作がシャーディングされたクラスター上のトランザクションの一部であり、
$currentOpがlocalOps: trueで実行されている場合にのみ存在します。
$currentOp.transaction.numReadOnlyParticipantsこのトランザクション内の読み取り操作のみに影響を受けるシャードの数。
操作がシャーディングされたクラスター上のトランザクションの一部であり、
$currentOpがlocalOps: trueで実行されている場合にのみ存在します。
$currentOp.transaction.numNonReadOnlyParticipantsこのトランザクション内の読み取り以外の操作によって影響を受けるシャードの数。
操作がシャーディングされたクラスター上のトランザクションの一部であり、
$currentOpがlocalOps: trueで実行されている場合にのみ存在します。
$currentOp.transaction.expiryTimeトランザクションがタイムアウトして中止される日時(タイムゾーンあり)。
は +
$currentOp.transaction.expiryTime$currentOp.transaction.startWallClockTimetransactionLifetimeLimitSecondsに等しくなります。詳細については、「 トランザクションの実行時間制限 」を参照してください。
操作がマルチドキュメントトランザクションの一部である場合にのみ存在します。
$currentOp.op特定の操作タイプを識別する string。
$currentOp.typeがopの場合にのみ存在します。可能な値は次のとおりです。
"none""update""insert""query""command""getmore""remove""killcursors"
"command"操作には、 、createIndexesaggregate、 などのほとんどの コマンドfindAndModifyが含まれます"query"操作には、find操作と OP_QUERY 操作が含まれます。
$currentOp.ns操作の対象となる名前空間。 名前空間は、データベース名とコレクション名をドットで連結したもの(
.)で構成されています。つまり、"<database>.<collection>"です。
$currentOp.commandこの操作に関連付けられた完全なコマンドオブジェクトを含むドキュメント。
たとえば、次の出力には、
testという名前のデータベース内のitemsという名前のコレクションに対するfind操作のコマンド オブジェクトが含まれています。"command" : { "find" : "items", "filter" : { "sku" : 1403978 }, ... "$db" : "test" } 次の出力例には、
testという名前のデータベース内のitemsという名前のコレクションで、カーソル ID19234103609を持つ コマンドによって生成されたgetMore操作のコマンド オブジェクトが含まれています。"command" : { "getMore" : Long("19234103609"), "collection" : "items", "batchSize" : 10, ... "$db" : "test" }, コマンド ドキュメントが 1 キロバイトを超える場合、ドキュメントの形式は次のようになります。
"command" : { "$truncated": <string>, "comment": <string> } $truncatedフィールドには、ドキュメントのcommentフィールド(存在する場合)を除いたドキュメントの string のサマリーが含まれます。 サマリーが依然として 1 キロバイトを超える場合は、さらに切り捨てられ、string の末尾に省略記号 (...) が表示されます。操作にコメントが渡された場合、
commentフィールドが存在します。任意のデータベースコマンドにコメントを添付できます。
$currentOp.cursoridleCursor操作とgetmore操作のカーソル情報を含むドキュメントすなわち wheretypeisidleCursororopisgetmore.getmoreがカーソル情報にアクセスする前にgetmore操作を報告する場合、cursorフィールドは使用できません。$currentOp.cursor.lastAccessDateカーソルが最後に使用された日時。
カーソルがアクティブに使用されている場合(つまり、
opがgetmoretypeidleCursorであり、 がlastAccessDateでない場合、 は前回のgetmoreが終了した時間を、またはカーソルが作成された時間を報告します。これは最初のgetmoreです。
$currentOp.cursor.noCursorTimeoutカーソルがアイドル状態のときにタイムアウトしないことを示すフラグ。 (つまり、カーソルに
noTimeoutオプションが設定されている場合)。true の場合、アイドル状態のときにカーソルはタイムアウトしません。
false の場合、アイドル状態のときにカーソルはタイムアウトになります。
詳細については、以下を参照してください。
cursor.addOption()
$currentOp.cursor.tailableカーソルがCappedコレクションの 追尾可能 (tailable) カーソル かどうかを示すフラグ。 クライアントが初期カーソルの結果を使い果たした後も、追尾可能 (tailable) カーソルはオープンしたままになります。
詳細については、以下を参照してください。
$currentOp.cursor.awaitData追尾可能 (tailable) カーソルが、データを返さずに新しいデータを待機している間に、カーソル上の
getMoreコマンドを一時的にブロックするかどうかを示すフラグ。追尾可能 (tailable) ではないカーソルの場合、値は常に false です。
$currentOp.cursor.originatingCommandoriginatingCommandフィールドには完全なコマンドオブジェクト(例:findまたはaggregate)が必要です。
$currentOp.cursor.planSummaryカーソルがコレクションスキャン(
COLLSCAN)を使用するか、インデックススキャン(IXSCAN { ... })を使用するかを指定する string 。IXSCANには、使用されるインデックスの仕様ドキュメントも含まれます。mongosでlocalOps: trueを使用して実行している場合、またはidleCursorsでレポート作成している場合は使用できません。
$currentOp.cursor.queryFrameworkバージョン6.2の新機能。
操作を処理するために使用されるクエリ フレームワークを指定する string。
$currentOp.planSummaryカーソルがコレクションスキャン(
COLLSCAN)を使用するか、インデックススキャン(IXSCAN { ... })を使用するかを指定する string 。mongosでlocalOps: trueを使用して実行している場合は使用できません。
$currentOp.prepareReadConflicts現在の操作が、コミットまたは中止するための書込み (write) で準備されたトランザクションを待機しなければならなかった回数。
待機している間も、操作は必要なロックとストレージ エンジン リソースを保持し続けます。
$currentOp.numYieldsnumYieldsは、他の操作を完了させるために操作が中断した回数を報告するカウンターです。通常、MongoDB がまだ完全にメモリに読み込んでいないデータにアクセスする必要がある場合、操作は中断します。 これにより、MongoDB が中断された操作のデータを読み込んでいる間に、メモリにデータがある他の操作を迅速に完了できます。
$currentOp.numInterruptChecksサーバーが起動以降に操作の割り込みをチェックした回数。短時間の実行中操作では小さい数値が返され、0 または 1 が含まれます。長時間実行中操作では 、操作が停止されたか、タイムアウトしたかを判断するためにサーバーが複数回チェックしているため、大きな 数値が表示されます。
バージョン8.3 の新機能: 8.2.2および8.0.20 でも利用できます。
$currentOp.queryShapeHashバージョン8.0の新機能。
queryShapeHashは、string クエリシェイプ のハッシュを含む 16 進数の です。詳細については、「クエリシェイプ 」を参照してください。
$currentOp.dataThroughputLastSecond過去 1 秒に
validate操作によって処理されたデータの量(MiB 単位)。 現在ドキュメントをスキャンしているvalidate操作でのみ使用できます。 例:"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%", "progress" : { "done" : 7258, "total" : 24000 }, "numYields" : 0, "dataThroughputLastSecond" : 15.576952934265137, "dataThroughputAverage" : 15.375944137573242,
$currentOp.dataThroughputAveragevalidate操作によって処理された平均データ量(MiB 単位)。 現在ドキュメントをスキャンしているvalidate操作でのみ使用できます。 例:"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%", "progress" : { "done" : 7258, "total" : 24000 }, "numYields" : 0, "dataThroughputLastSecond" : 15.576952934265137, "dataThroughputAverage" : 15.375944137573242,
$currentOp.lockslocksドキュメントは、操作が現在保持しているロックのタイプとモードを報告します。使用可能なロックタイプは、以下のとおりです。ロック タイプ説明ParallelBatchWriterMode並列バッチ書込みモードのロックを表します。
以前のバージョンでは、PBWM 情報は
Globalロック情報の一部として報告されていました。ReplicationStateTransitionレプリカセットの状態遷移に対して取得されたロックを表します。
Globalグローバル ロックを表します。
Databaseデータベース ロックを表します。
Collectionコレクション ロックを表します。
Mutexミューテックスを表します。
Metadataメタデータ ロックを表します。
DDLDatabaseDDLデータベース ロックを表します。
バージョン7.1の新機能。
DDLCollectionDDLコレクション ロックを表します。
バージョン7.1の新機能。
oplogoplog のロックを表します。
使用可能なモードは次のとおりです。
ロックモード説明R共有ロック(S)を表します。
W排他ロック(X)を表します。
rインテント共有ロック(IS)を表します。
wインテント排他ロック(IX)を表します。
$currentOp.lockStats各ロックタイプとモード(ロックタイプとモードの説明については、
locksを参照)について、次の情報を返します。$currentOp.lockStats.acquireWaitCountacquireCountロックが 競合モードで保持されていたために操作で のロック取得を待機しなければならなかった回数。acquireWaitCountはacquireCountより小さいです。
$currentOp.lockStats.timeAcquiringMicros操作がロックを取得するために待機しなければならなかった累計時間(マイクロ秒単位)。
timeAcquiringMicrosをacquireWaitCountで割ると、特定のロックモードのおおよその平均待機時間が得られます。
$currentOp.waitingForLockブール値値を返します。
waitingForLockは、操作がロックを待機している場合はtruefalseであり、操作に必要なロックがある場合は です。
$currentOp.msgmsgは、操作のステータスと進行状況を説明するメッセージを提供します。インデックス操作または mapReduce 操作の場合、フィールドには完了率が報告されます。
$currentOp.progressmapReduce
progressまたはインデックス操作の進行状況を報告します。msgフィールドは、progressフィールドの完了率に対応します。 は、次の情報を指定します。
$currentOp.totalOperationTimeElapsed現在のリシャーディング操作の合計経過時間(秒単位)。 新たにリシャーディング操作を開始すると、時間は 0 に設定されます。
リシャーディング操作 が行われている場合にのみ存在します。
バージョン 5.0 の新機能。
$currentOp.remainingOperationTimeEstimatedThe estimated time remaining in seconds for the current resharding operation. 新たにリシャーディング操作を開始すると、時間は -1 に設定されます。
リシャーディング操作 が行われているときにのみ存在します。 推定値が計算できない場合、このフィールドが存在しないことがあります。
バージョン 5.0 の新機能。
$currentOp.approxDocumentsToCopyリシャーディング操作中にドナー シャードから受信者シャードにコピーされるドキュメントのおおよその数です。 この数値は、リシャーディング操作の開始時に設定され、設定された後は変化しない推定値です。 新たにリシャーディング操作を開始すると、数値は 0 に設定されます。 リシャーディング後のデータ分布が完全に均等でない場合、
$currentOp.documentsCopiedと$currentOp.bytesCopiedはそれぞれ$currentOp.approxDocumentsToCopyと$currentOp.approxBytesToCopyを超えてしまう可能性があります。リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.documentsCopiedリシャーディング操作中にドナー シャードから受信者シャードにコピーされたドキュメントの数です。 新たにリシャーディング操作を開始すると、数値は 0 に設定されます。
リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.approxBytesToCopyリシャーディング操作中にドナー シャードから受信者シャードにコピーされるおおよそのバイト数。 この数値は、リシャーディング操作の開始時に設定され、設定された後は変化しない推定値です。 新たにリシャーディング操作を開始すると、数値は 0 に設定されます。 リシャーディング後のデータ分布が完全に均等でない場合、
$currentOp.documentsCopiedと$currentOp.bytesCopiedはそれぞれ$currentOp.approxDocumentsToCopyと$currentOp.approxBytesToCopyを超えてしまう可能性があります。リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.bytesCopiedリシャーディング操作中にドナー シャードから受信者シャードにコピーされたバイト数です。 新たにリシャーディング操作を開始すると、数値は 0 に設定されます。
リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.totalCopyTimeElapsed現在のリシャーディング操作におけるドナー シャードから受信者シャードへの進行中のデータ コピー タスクの合計経過時間(秒単位)。 新たにリシャーディング操作を開始すると、時間は 0 に設定されます。
リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.oplogEntriesFetched現在の リシャーディング操作 で oplog から取得されたエントリの数です。新たにリシャーディング操作を開始すると、数値は 0 に設定されます。
リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.oplogEntriesApplied現在の リシャーディング操作 で oplog に適用されたエントリの数。新たにリシャーディング操作を開始すると、数値は 0 に設定されます。
リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.totalApplyTimeElapsed現在のリシャーディング操作における適用ステップの合計経過時間(秒単位)です。 適用ステップでは、受信者シャードは、ドナー シャードから新たに受信した書込み (write) に基づいてデータを変更するために、 oplogエントリを適用します。 新たにリシャーディング操作を開始すると、時間は 0 に設定されます。
リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
バージョン 5.0 の新機能。
$currentOp.countWritesDuringCriticalSection現在のリシャーディング操作でクリティカル セクションにおいて実行された書込み (write) の数。 クリティカル セクションは、リシャーディング中のコレクションへの新規の受信書込み (write) を防止します。 新たにリシャーディング操作を開始すると、数値は 0 に設定されます。
リシャーディング操作が行われているときにのみ存在します。
バージョン 5.0 の新機能。
$currentOp.totalCriticalSectionTimeElapsed現在のリシャーディング操作におけるクリティカル セクションの合計経過時間(秒単位)。 クリティカル セクションは、リシャーディング中のコレクションへの新規の受信書込み (write) を防止します。 新たにリシャーディング操作を開始すると、時間は 0 に設定されます。
リシャーディング操作が行われているときにのみ存在します。
バージョン 5.0 の新機能。
$currentOp.donorStateリシャーディング操作におけるドナー シャードの現在の状態です。 新たにリシャーディング操作を開始すると、状態は
unusedに設定されます。リシャーディング操作が行われているときにのみ存在します。
状態説明unusedリシャーディング操作を開始またはプライマリ フェイルオーバーから回復しようとしているとき
preparing-to-donateドナー シャードは、受信者シャードにデータを提供する準備をしています。
donating-initial-dataドナー シャードは受信者シャードにデータを提供します。
donating-oplog-entriesドナー シャードは、受信者シャードに oplog エントリを提供しています。
preparing-to-block-writesドナー シャードは、リシャーディング中のコレクションへの新規の受信書込み (write) 操作を阻止しようとしています。
errorリシャーディング操作中にエラーが発生しました
blocking-writesドナー シャードは新規の受信書込み (write) 操作を防ぎ、新規の受信書込み (write) が禁止されていることをすべての受信者シャードに通知しました。
doneドナー シャードは古いシャーディングされたコレクションを削除し、リシャーディング操作は完了しました。
バージョン 5.0 の新機能。
$currentOp.recipientStateリシャーディング操作 における受信者シャードの現在の状態です。 新たにリシャーディング操作を開始すると、状態は
unusedに設定されます。リシャーディング操作 が行われているときにのみ 受信者シャード に存在します。
状態説明unusedリシャーディング操作を開始またはプライマリ フェイルオーバーから回復しようとしているとき
awaiting-fetch-timestamp受信シャードは、ドナー シャードがデータを提供する準備ができるのを待っています。
creating-collection受信者シャードは新しいシャーディングされたコレクションを作成しています。
cloning受信者シャードはドナー シャードからデータを受信しています。
applying受信者シャードは、ドナー シャードからの新規受信書込み (write) に基づいてデータのコピーを変更するために、oplog エントリを適用しています。
errorリシャーディング操作中にエラーが発生しました
strict-consistency受信者シャードでは、すべてのデータ変更は一時的なコレクションに保存されます。
doneリシャーディング操作が完了しました。
バージョン 5.0 の新機能。
$currentOp.coordinatorState現在のリシャーディング操作におけるリシャーディング コーディネーターの状態です。 リシャーディング コーディネーターは、 コンフィギュレーションサーバーのプライマリで実行される操作です。 新たにリシャーディング操作を開始すると、状態は
unusedに設定されます。調整コンフィギュレーションサーバー上にのみ存在します。
状態説明unusedリシャーディング操作を開始またはプライマリ フェイルオーバーから回復しようとしているとき
initializingリシャーディング コーディネーターは、コーディネーター ドキュメントを
config.reshardingOperationsに挿入し、元のコレクションのconfig.collectionsエントリにreshardingFieldsを追加しました。preparing-to-donateリシャーディング コーディネーター
- は一時的な に対する
config.collectionsエントリを作成しました - コレクションのリシャーディング。
- は一時的な に対する
- は以下に基づく範囲に対するエントリを
config.chunksに挿入しました - 新しいシャードキー。
- は以下に基づく範囲に対するエントリを
- は関連付けられているすべてのゾーンのエントリを
config.tagsに挿入しました - 新しいシャードキー。
- は関連付けられているすべてのゾーンのエントリを
コーディネーターは、参加シャードにリシャーディング操作を開始するように通知します。その後、コーディネーターはすべてのドナー シャードが
minFetchTimestampを選択し、提供の準備が整うまで待ちます。cloningリシャーディング コーディネーターは、受信者シャードにデータを提供するようドナー シャードに通知します。コーディネーターは、すべての受信者がドナーからのデータの複製を完了させるのを待機します。
applyingリシャーディング コーディネーターは、ドナー シャードから新たに受信した書込み (write) に基づいてデータのコピーを変更するよう、受信者シャードに通知します。コーディネーターは、すべての受信者が oplog エントリの適用を完了させるのを待機します。
blocking-writesリシャーディング コーディネーターは、コレクションへの新たな受信書込み (write) 操作がリシャーディングされないよう、ドナー シャードに通知します。その後、コーディネーターはすべての受信者がすべてのデータ変更を完了させるのを待機します。
abortingリシャーディング操作中に回復不能なエラーが発生したか、
abortReshardCollectionコマンド(またはsh.abortReshardCollection()メソッド)が実行されました。committingリシャーディング コーディネーターは、一時的なリシャーディングコレクションの
config.collectionsエントリを削除します。次に、コーディネーターはrecipientFieldsをソース コレクションのエントリに追加します。バージョン 5.0 の新機能。
$currentOp.opStatusリシャーディング操作 が行われている場合にのみ存在します。 操作が完了すると、その操作は
currentOpの出力から削除されます。状態説明actively runningリシャーディング操作がアクティブに実行されている。
successリシャーディング操作が成功しました。
failureリシャーディング操作が失敗しました。
canceledリシャーディング操作がキャンセルされました。
バージョン 5.0 の新機能。
$currentOp.collUuidこのフィールドは、クエリ サンプリングに関連するドキュメントにのみ表示されます。詳細については、サンプル クエリを参照してください。
バージョン7.0の新機能。
$currentOp.queues現在の操作の キューと
ingressexecutionキューに関する情報。
$currentOp.startTimeクエリのサンプリングが開始された時刻。
このフィールドは、クエリ サンプリングに関連するドキュメントにのみ表示されます。詳細については、サンプル クエリを参照してください。
バージョン7.0の新機能。
$currentOp.samplesPerSecond1 秒あたりにサンプリングするクエリの最大数。
mongosで$currentOpを実行している場合にのみ報告されます。このフィールドは、クエリ サンプリングに関連するドキュメントにのみ表示されます。詳細については、サンプル クエリを参照してください。
バージョン7.0の新機能。
$currentOp.sampledReadsCountサンプリングされた読み取りクエリの数
このフィールドは、クエリ サンプリングに関連するドキュメントにのみ表示されます。詳細については、サンプル クエリを参照してください。
バージョン7.0の新機能。
$currentOp.sampledWritesCountサンプリングされた書込み (write) クエリの数です。
このフィールドは、クエリ サンプリングに関連するドキュメントにのみ表示されます。詳細については、サンプル クエリを参照してください。
バージョン7.0の新機能。
$currentOp.sampledReadsBytesサンプリングされた読み取りクエリのサイズ(バイト単位)。
レプリカセットでは、これは
mongodごとに報告されます。シャーディングされたクラスターでは、
--shardsvrmongodについてのみ報告されます。このフィールドは、クエリ サンプリングに関連するドキュメントにのみ表示されます。詳細については、サンプル クエリを参照してください。
バージョン7.0の新機能。
$currentOp.sampledWritesBytesサンプリングされた書込み (write) クエリのサイズ(バイト単位)。
レプリカセットでは、これは
mongodごとに報告されます。シャーディングされたクラスターでは、
--shardsvrmongodについてのみ報告されます。このフィールドは、クエリ サンプリングに関連するドキュメントにのみ表示されます。詳細については、サンプル クエリを参照してください。
バージョン7.0の新機能。