7.3.18. database_unmap

7.3.18.1. 概要

バージョン 5.0.7 で追加.

database_unmap はデータベース中のすでにマップしてあるテーブルとカラムをアンマップします。「マップ」とはテーブルとカラムをディスクからロードしてメモリー上に展開することです。「アンマップ」とはマップしたメモリーを解放することです。

注釈

通常、 database_unmap を使う必要はありません。なぜなら、OSが賢くメモリーを管理してくれるからです。もし、システムの残メモリーが少なくなったら、OSはGroongaが使っているメモリーをディスクに退避します。退避したメモリーは必要になったらまたメモリーに戻します。OSは使っていないメモリーを優先して退避します。

注意

このコマンドは thread_limit1 を返すときしか使えません。つまり、マルチスレッド環境ではこのコマンドは動かないということです。

7.3.18.2. 構文

このコマンドに引数はありません:

database_unmap

7.3.18.3. 使い方

最大スレッド数を 1 に変更したあとならデータベースをアンマップできます。

実行例:

thread_limit --max 1
# [[0, 1337566253.89858, 0.000355720520019531], 2]
database_unmap
# [[0, 1337566253.89858, 0.000355720520019531], true]

最大スレッド数が 1 より大きい場合は database_unmap は失敗します。

実行例:

thread_limit --max 2
# [[0, 1337566253.89858, 0.000355720520019531], 1]
database_unmap
# [
#   [
#     -2,
#     1337566253.89858,
#     0.000355720520019531,
#     "[database_unmap] the max number of threads must be 1: <2>",
#     [
#       [
#         "proc_database_unmap",
#         "proc.c",
#         3705
#       ]
#     ]
#   ],
#   false
# ]

7.3.18.4. 引数

このセクションではすべての引数について説明します。

7.3.18.4.1. 必須引数

必須の引数はありません。

7.3.18.4.2. 省略可能引数

省略可能な引数はありません。

7.3.18.5. 戻り値

このコマンドが成功したときは以下のようにボディは true になります:

[HEADER, true]

このコマンドが失敗すると、 HEADER にエラーの詳細が含まれます。

HEADER については 出力形式 を参照してください。