使用しているStorageEngine

MongoDBにおいて表題の件を調べたい。

■ 環境

  • MongoDB 3.0.10/3.2.4
  • Docker 1.10.3
  • Mac OSX El Capitan

■ MongoDB

3.2“系ではデフォルトのStorageEngineが”WiredTiger“になったらしい。ディスクの使用量が大幅に下がったとか。とりあえず現状の環境は”3.2“系ではないのだが、そもそもデフォルトままであるから”mmapv1“が使われていると思われるのだが確認しておきたい。

■ MongoDB 3.0系

サーバを起動。

$ docker run -d --name mongo30 mongo:3.0.10

クライアントを接続して確認してみる。`db.serverStatus()`で取得ができそうである。

$ docker run -ti --rm --link mongo30 mongo:3.0.10 /bin/bash
root@ac6193941f36:/#
root@ac6193941f36:/# mongo --host mongo30
MongoDB shell version: 3.0.10
connecting to: mongo30:27017/test
Welcome to the MongoDB shell.
>
> db.serverStatus()
{
    "host" : "8130afcefb48",
    "version" : "3.0.10",
    "process" : "mongod",
  :
    "storageEngine" : {
        "name" : "mmapv1"
    },
  :

mmapv1“が使われていることが確認できる。

■ MongoDB 3.2系

サーバを起動。

$ docker run -d --name mongo32 mongo:3.2.4

クライアントから接続。

$ docker run -ti --rm --link mongo32 mongo:3.2.4 /bin/bash
root@82544d922a04:/#
root@82544d922a04:/# mongo --host mongo32
MongoDB shell version: 3.2.4
connecting to: mongo32:27017/test
Welcome to the MongoDB shell.
>
> db.serverStatus()
{
    "host" : "fb617c1ef2bc",
    "advisoryHostFQDNs" : [ ],
    "version" : "3.2.4",
    "process" : "mongod",
  :
    "storageEngine" : {
        "name" : "wiredTiger",
        "supportsCommittedReads" : true
    },
  :

3.2“系では`db.serverStatus()`で取得できるものが随分多くなっているようだ。

以上。