7.3.18. database_unmap
¶
7.3.18.1. 概要¶
バージョン 5.0.7 で追加.
database_unmap
はデータベース中のすでにマップしてあるテーブルとカラムをアンマップします。「マップ」とはテーブルとカラムをディスクからロードしてメモリー上に展開することです。「アンマップ」とはマップしたメモリーを解放することです。
注釈
通常、 database_unmap
を使う必要はありません。なぜなら、OSが賢くメモリーを管理してくれるからです。もし、システムの残メモリーが少なくなったら、OSはGroongaが使っているメモリーをディスクに退避します。退避したメモリーは必要になったらまたメモリーに戻します。OSは使っていないメモリーを優先して退避します。
注意
このコマンドは thread_limit が 1
を返すときしか使えません。つまり、マルチスレッド環境ではこのコマンドは動かないということです。
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
# ]