Skip to content

パラメータ

GridDBの動作を制御するパラメータについて説明します。GridDBのパラメータにはノードの設定情報や利用できるリソースなどの設定を行うノード定義ファイルと、クラスタの動作設定を行うクラスタ定義ファイルがあります。 定義ファイルの項目名と初期状態での設定値とパラメータの意味を説明します。

設定値の単位は以下のように指定します。

  • バイトサイズ: TB、GB、MB、KB、B、T、G、M、K、またはこれらの小文字表記で指定可能。特に記載のない限り、単位の省略はできません。

  • 時間: h、min、s、msで指定可能。特に記載のない限り、単位の省略はできません。

クラスタ定義ファイル(gs_cluster.json)

クラスタ定義ファイルは、クラスタを構成する全ノードで同一の設定にしておく必要があります。partitionNum,storeBlockSizeパラメータはデータベースの構造を決める重要なパラメータのため、GridDBの初期起動後は値の変更ができません。

クラスタ定義ファイルの各設定項目の意味を以下に説明します。

初期状態で含まれていない項目も項目名を追加することでシステムに認識させることができます。 変更の欄ではパラメータの値の変更可否と変更タイミングを示します。

  • 変更不可 :ノードを一度起動したのちは変更はできません。変更したい場合データベースを初期化する必要があります。
  • 起動   :クラスタを構成する全ノードを再起動することで、変更できます。
  • オンライン:オンライン稼働中にパラメータを変更できます。ただし、変更内容は永続化されないため、定義ファイルの内容を手動で変更する必要があります。

GridDBの構成初期値パラメータの意味と制限値変更
/notificationAddress239.0.0.1マルチキャストアドレスの標準設定です。cluster,transactionの同じ名前のパラメータが省略された場合、本設定が有効になります。異なる値が設定されている場合、個別設定のアドレスが有効です。起動
/dataStore/partitionNum128パーティション数を構成するクラスタ台数で分割配置できる公倍数で指定します。 整数: 1以上、10000以下で指定します。変更不可
/dataStore/storeBlockSize64KBディスクI/Oのサイズ(64KB,1MB,4MB,8MB,16MB,32MB)を指定します。ブロックサイズを大きくすると1ブロックに格納できるレコードが増えるため、大規模テーブルのフルスキャンに向きますが、競合が発生する可能性が高くなります。システムにあったサイズを十分に検討して設定してください。サーバ起動後は変更できません。変更不可
/cluster/clusterNameなしクラスタを識別するための名称を指定します。必須入力のパラメータです。起動
/cluster/replicationNum2レプリカ数を指定します。レプリカ数が2の場合、パーティションが2重化されます。起動
/cluster/notificationAddress239.0.0.1クラスタ構成用マルチキャストアドレスを指定します。起動
/cluster/notificationPort20000クラスタ構成用マルチキャストポートを指定します。 ポート番号として指定可能な範囲の値を指定します。起動
/cluster/notificationInterval5秒クラスタ構成用マルチキャスト周期です。 1s以上、231s未満の値を指定します。起動
/cluster/heartbeatInterval5秒クラスタ間でのノードの生存確認チェック周期(ハートビート周期)です。 1s以上、231s未満の値を指定します。起動
/cluster/loadbalanceCheckInterval180秒クラスタを構成するノード間の負荷バランス調整のため、バランス処理を実施するか否かのデータ採取周期を指定します。 1s以上、231s未満の値を指定します。起動
/cluster/notificationMemberなしクラスタ構成方式を固定リスト方式にする際に、アドレスリストを指定します。起動
/cluster/notificationProvider/urlなしクラスタ構成方式をプロバイダ方式にする際に、アドレスプロバイダのURLを指定します。起動
/cluster/notificationProvider/updateInterval5秒アドレスプロバイダからリストを取得する間隔を指定します。1s以上、231s未満の値を指定します。起動
/sync/timeoutInterval30秒クラスタ間のデータ同期時のタイムアウト時間を指定します。 タイムアウトが発生した場合、システムの負荷が高い、障害発生などの可能性があります。 1s以上、231s未満の値を指定します。起動
/transaction/notificationAddress239.0.0.1クライアントが初期に接続するマルチキャストアドレスです。クライアントにはマスタノードが通知されます。起動
/transaction/notificationPort31999クライアントが初期に接続するマルチキャストポートです。ポート番号として指定可能な範囲の値を指定します。起動
/transaction/notificationInterval5秒クライアントへのマスタ通知用マルチキャスト周期。1s以上、231s未満の値を指定します。起動
/transaction/replicationMode0トランザクションでデータ更新をする時のデータの同期(レプリケーション)方法を指定します。文字列または整数で、 "ASYNC"または0(非同期)、"SEMISYNC"または1(準同期)を指定します。起動
/transaction/replicationTimeoutInterval10秒トランザクションが準同期レプリケーションでデータを同期する際のノード間通信のタイムアウト時間を指定します。1s以上、231s未満の値を指定します。起動
/transaction/authenticationTimeoutInterval5秒認証タイムアウト時間を指定します。起動
/sql/notificationAddress239.0.0.1JDBC/ODBCクライアントが初期に接続するマルチキャストアドレスです。クライアントにはマスタノードが通知されます。起動
/sql/notificationPort41999JDBC/ODBCクライアントが初期に接続するマルチキャストポートです。ポート番号として指定可能な範囲の値を指定します。起動
/sql/notificationInterval5秒JDBC/ODBCクライアントへのマスタ通知用マルチキャスト周期です。1s以上、231s未満の値を指定します。起動
/security/authenticationINTERNAL認証方式として、INTERNAL(内部認証) / LDAP(LDAP認証)のいずれかを指定。起動
/security/ldapRoleManagementUSERGridDBのロールとマッピングする対象として、USER(LDAPユーザ名でマッピング) / GROUP(LDAPグループ名でマッピング)のいずれかを指定。起動
/security/ldapUrlLDAPサーバを次の形式で指定。ldaps://host[:port]起動
/security/ldapUserDNPrefixユーザのDN(識別子)を生成するために、ユーザ名の前に連結する文字列を指定。起動
/security/ldapUserDNSuffixユーザのDN(識別子)を生成するために、ユーザ名の後に連結する文字列を指定。起動
/security/ldapBindDnLDAP管理ユーザのDNを指定。起動
/security/ldapBindPasswordLDAP管理ユーザのパスワードを指定。起動
/security/ldapBaseDn検索を開始するルートDNを指定。起動
/security/ldapSearchAttributeuid検索対象となる属性を指定。起動
/security/ldapMemberOfAttributememberofユーザが所属するグループDNが設定された属性を指定。(ldapRoleManagement=GROUPの場合に有効)起動
/system/serverSslModeDISABLEDSSL接続設定として、DISABLED(SSL無効)、PREFERRED(SSL有効、ただし非SSL接続も許容)、REQUIRED(SSL有効、非SSL接続は不可)のいずれかを指定。起動
/system/sslProtocolMaxVersionTLSv1.2TLSプロトコルバージョンとして、TLSv1.2, TLSv1.3のいずれかを指定。起動

ノード定義ファイル(gs_node.json)

ノード定義ファイルでは、クラスタを構成するノードのリソースを初期設定します。オンライン運用では、配置されているリソース、アクセス頻度などから、オンラインで値を変更できるパラメータもあります。

ノード定義ファイルの各設定項目の意味を以下に説明します。

初期状態で含まれていない項目も項目名を追加することでシステムに認識させることができます。 変更の欄ではパラメータの値の変更可否と変更タイミングを示します。

  • 変更不可 :ノードを一度起動したのちは変更はできません。変更したい場合データベースを初期化する必要があります。
  • 起動   :対象ノードを再起動することで、変更できます。
  • オンライン:オンライン稼働中にパラメータを変更できます。ただし、変更内容は永続化されないため、定義ファイルの内容を手動で変更する必要があります。

ディレクトリの指定は、フルパスもしくは、GS_HOME環境変数からの相対パスで指定します。相対パスは、GS_HOMEの初期ディレクトリが基点となります。GS_HOMEの初期設定ディレクトリは、/var/lib/gridstoreです。

GridDBの構成初期値パラメータの意味と制限値変更
/serviceAddressなしcluster,transaction,syncの各サービスアドレスの初期値を設定。3項目のアドレスを設定せずに本アドレスの設定のみで各サービスアドレスの初期値を設定できる。起動
/dataStore/dbPathdataデータファイル、チェックポイントログファイルの配置ディレクトリをフルパスもしくは、相対パスで指定する。起動
/dataStore/transactionLogPathtxnlogトランザクションログファイルの配置ディレクトリをフルパスもしくは、相対パスで指定する。起動
/dataStore/dbFileSplitCount0 (分割無し)データファイルの分割数。不可
/dataStore/backupPathbackupバックアップファイルの配置ディレクトリのパスを指定。起動
/dataStore/syncTempPathsyncデータ同期用一時ファイルの配置ディレクトリのパスを指定。起動
/dataStore/storeMemoryLimit1024MBデータ管理用メモリの上限。オンライン
/dataStore/concurrency4処理の並列度を指定。起動
/dataStore/logWriteMode1ログ書き出しモード・周期を指定。 -1または0の場合トランザクション終了時にログ書き込み、1以上231未満の場合、秒単位の周期でログ書き込み起動
/dataStore/persistencyMode1(NORMAL)永続化モードでは、データ更新時の更新ログファイルの保持期間を指定する。1(NORMAL)、2(KEEP_ALL_LOG) のいずれかを指定。"NORMAL" は、チェックポイントにより、不要になったトランザクションログファイルは削除されます。"KEEP_ALL_LOG"は、全てのトランザクションログファイルを残します。起動
/dataStore/affinityGroupSize4アフィニティグループ数起動
/dataStore/storeCompressionModeNO_COMPRESSIONデータブロック圧縮モード起動
/checkpoint/checkpointInterval60秒メモリ上のデータ更新ブロックを永続化するチェックポイント処理の実行周期起動
/checkpoint/partialCheckpointInterval10チェックポイント実行時に、チェックポイントログファイルへブロック管理情報を書き込む処理の分割数起動
/cluster/serviceAddress上位のserviceAddressに従うクラスタ構成用待ち受けアドレス起動
/cluster/servicePort10010クラスタ構成用待ち受けポート起動
/cluster/notificationInterfaceAddress""マルチキャストパケットを送信するインターフェースのアドレスを指定起動
/sync/serviceAddress上位のserviceAddressに従うクラスタ間でデータ同期のための受信アドレス起動
/sync/servicePort10020データ同期用待ち受けポート起動
/system/serviceAddress上位のserviceAddressに従う運用コマンド用待ち受けアドレス起動
/system/servicePort10040運用コマンド用待ち受けポート起動
/system/eventLogPathlogイベントログファイルの配置ディレクトリのパス起動
/system/securityPathsecurityサーバ証明書、秘密鍵の配置ディレクトリをフルパスもしくは、相対パスで指定。起動
/system/serviceSslPort10045運用コマンド用待ち受けSSLポート起動
/transaction/serviceAddress上位のserviceAddressに従うクライアント通信向けトランザクション処理用待ち受けアドレス(/transaction/localserviceAddressの指定がない場合、クラスタ内部通信向けも兼ねる)起動
/transaction/localServiceAddress上位のserviceAddressに従うクラスタ内部通信向けトランザクション処理用待ち受けアドレス起動
/transaction/servicePort10001トランザクション処理用待ち受けポート起動
/transaction/connectionLimit5000トランザクション処理接続数の上限起動
/transaction/totalMemoryLimit1024MBトランザクション処理用メモリエリアのサイズ上限値起動
/transaction/transactionTimeoutLimit300秒トランザクションタイムアウト時間の上限値起動
/transaction/reauthenticationInterval0s(無効)再認証間隔。(指定時間を超えると再認証が行われ、既に接続中の一般ユーザに対する権限等の変更が反映される。) デフォルト(0s)の場合、再認証は無効。オンライン
/transaction/workMemoryLimit128MBトランザクション処理でのデータ参照(get、TQL)時のメモリの上限サイズ(並列度ごと)オンライン
/transaction/notificationInterfaceAddress""マルチキャストパケットを送信するインターフェースのアドレスを指定起動
/sql/serviceAddress上位のserviceAddressに従うクライアント通信向けNewSQL I/Fアクセスの処理用待ち受けアドレス(/sql/localServiceAddressの指定がない場合、クラスタ内部通信向けも兼ねる)起動
/sql/localServiceAddress上位のserviceAddressに従うクラスタ内部通信向けNewSQL I/Fアクセスの処理用待ち受けアドレス起動
/sql/servicePort20001NewSQL I/Fアクセスの処理用待ち受けポート起動
/sql/storeSwapFilePathswapSQL中間ストアのスワップファイルの配置ディレクトリのパス起動
/sql/storeSwapSyncSize1024MBSQL中間ストアのスワップファイルのsyncおよび物理メモリキャッシュ消去を行うサイズ起動
/sql/storeMemoryLimit1024MBSQL処理でメモリ上に保持する中間データの最大値起動
/sql/workMemoryLimit32MBSQL処理でオペレータが使用するメモリの最大値起動
/sql/workCacheMemory128MBSQL処理でオペレータが使用するメモリのうち、使用後に解放せずにキャッシュするメモリサイズ起動
/sql/connectionLimit5000NewSQL I/Fアクセスの処理接続数の上限起動
/sql/concurrency4同時実行スレッド数起動
/sql/traceLimitExecutionTime300秒スロークエリをイベントログに残す実行時間の下限値オンライン
/sql/traceLimitQuerySize1000スロークエリに残るクエリ文字列のサイズ上限(バイト)オンライン
/sql/notificationInterfaceAddress""マルチキャストパケットを送信するインターフェースのアドレスを指定起動
/trace/fileCount30イベントログファイルの上限数起動
/security/userCacheSize1000キャッシュする一般ユーザ/LDAPユーザエントリ数を指定。起動
/security/userCacheUpdateInterval60キャッシュの更新間隔(秒)を指定。起動

--- システムの制限値 ---

数値に関する制限

ブロックサイズ64KB1MB~32MB
文字列型/空間型のデータサイズ31KB128KB
BLOB型のデータサイズ1GB - 1Byte1GB - 1Byte
配列長400065000
カラム数1024個約7K~32000個(※1)
索引数(コンテナ1個あたり)1024個16000個
ユーザ数128128
データベース数128個128個
アフィニティグループ数1000010000
解放期限付き時系列コンテナの分割数160160
GridDBノードが管理する通信バッファのサイズ約2GB約2GB
ブロックサイズ64KB1MB4MB8MB16MB32MB
パーティションサイズ約4TB約64TB約256TB約512TB約1PB約2PB
  • 文字列型
    • 制限値はUTF-8エンコード相当
  • 空間型
    • 制限値は内部格納形式相当
  • (※1) カラム数
    • カラム数の上限には、固定長カラム(ブール型、整数型、浮動小数点数型、時刻型)の合計サイズが59KBまでという制約があります。この制約に当てはまらない場合は、カラム数の上限は32000個になります。
      • 例) LONG型カラムのみのコンテナの場合:カラム上限数は7552 ( 固定長カラムの合計サイズ 8B * 7552 = 59KB )
      • 例) BYTE型カラムのみのコンテナの場合:カラム上限数は32000 ( 固定長カラムの合計サイズ 1B * 32000 = 約30KB → 固定長カラムのサイズ制約には当てはまらないので、上限の32000個のカラムを作成できる)
      • 例) STRING型カラムのみのコンテナの場合:カラム上限数は32000 ( 固定長カラムのサイズ制約には当てはまらないので、上限の32000個のカラムを作成できる)

ネーミングに関する制限

名前使用可能な文字長さの上限
管理ユーザ先頭が"gs#"で始まる。それ以外の文字は英数字、'_'64文字
一般ユーザ英数字、'_'、'-'、'.'、'/'、'='64文字
ロール英数字、'_'、'-'、'.'、'/'、'='64文字
パスワードUnicodeコードポイントを文字とする
任意個数の文字の列(NULL文字(U+0000)は不可)
64バイト(UTF-8エンコード換算)
クラスタ名英数字、'_'、'-'、'.'、'/'、'='64文字
データベース名英数字、'_'、'-'、'.'、'/'、'='64文字
コンテナ名
テーブル名
ビュー名
英数字、'_'、'-'、'.'、'/'、'='
(ノードアフィニティを指定する場合のみ'@')
16384文字(ブロックサイズ64KB)
131072文字(ブロックサイズ1MB~32MB)
カラム名英数字、'_'、'-'、'.'、'/'、'='256文字
索引名英数字、'_'、'-'、'.'、'/'、'='16384文字(ブロックサイズ64KB)
131072文字(ブロックサイズ1MB~32MB)
バックアップ名英数字、'_'12文字
データアフィニティ英数字、'_'、'-'、'.'、'/'、'='8文字
  • 大文字小文字の区別

    • クラスタ名・バックアップ名、パスワードは、大文字小文字の区別があります。したがって、例に示すような大文字小文字のみ異なる表記は、異なるものとして扱います。

      例) mycluster, MYCLUSTER
  • それ以外の名前は、大文字小文字の区別がありません。大文字小文字表記は同一視します。

  • 作成時に指定された大文字小文字の表記は、データとして保持します。

  • TQL/SQL構文で名前を引用符"で囲う場合は、大文字小文字の表記を区別した検索を行います。

    例) コンテナ名 SensorData の Column1 を検索する場合
        select "Column1" from "SensorData"   検索可能
        select "COLUMN1" from "SENSORDATA"  "SENSORDATA"というコンテナは存在しないので検索不可
  • TQL/SQL構文での名前指定

    • 引用符"で囲わない場合は、英数字、'_'(数字は先頭不可)の名前しか記述できません。それ以外の名前を記述する場合には引用符で囲んでください。
      例) select "012column", data_15 from "container.2017-09"

--- 付録 ---

ディレクトリ構成商用版のみ

GridDBのサーバやクライアントをインストールした時のディレクトリ構成を以下に示します。X.x.xはGridDBのバージョンを表します。

(サーバ/クライアントをインストールしたマシン)
/usr/griddb-ee-X.X.X/                                    GridDBインストールディレクトリ
                     Readme.txt
                     bin/
                         gs_xxx                          各種コマンド
                         gsserver                        サーバモジュール
                         gssvc                           サーバモジュール
                     conf/
                     etc/
                     lib/
                         gridstore-tools-X.X.X.jar
                         XXX.jar                         フリーソフトウェア
                     license/
                     misc/
                     prop/
                     sample/

/usr/share/java/gridstore-tools.jar -> /usr/griddb-ee-X.X.X/lib/gridstore-tools-X.X.X.jar

/usr/griddb-ee-webui-X.X.X/                              統合運用管理GUIディレクトリ
                           conf/
                           etc/
                           griddb-webui-ee-X.X.X.jar

/usr/griddb-ee-webui/griddb-webui.jar -> /usr/griddb-ee-webui-X.X.X/griddb-webui-ee-X.X.X.jar

/var/lib/gridstore/                                      GridDBホームディレクトリ(作業ディレクトリ)
                   admin/                                統合運用管理GUIホームディレクトリ(adminHome)
                   backup/                               バックアップファイル格納ディレクトリ
                   conf/                                 定義ファイルの格納ディレクトリ
                        gs_cluster.json                  クラスタ定義ファイル
                        gs_node.json                     ノード定義ファイル
                        password                         ユーザ定義ファイル
                   data/                                 データベースファイル格納ディレクトリ
                   txnlog/                               トランザクションログ格納ディレクトリ
                   expimp/                               Export/Importツールディレクトリ
                   log/                                  イベントログ格納ディレクトリ
                   webapi/                               Web APIディレクトリ

/usr/bin/
         gs_xxx -> /usr/griddb-ee-X.X.X/bin/gs_xxx                       各種コマンドへのリンク
         gsserver -> /usr/griddb-ee-X.X.X/bin/gsserver                   サーバモジュールへのリンク
         gssvc -> /usr/griddb-ee-X.X.X/bin/gssvc                         サーバモジュールへのリンク

/usr/lib/systemd/system
            gridstore.service                            systemd ユニットファイル

/usr/griddb-ee-X.X.X/bin
            gridstore                                    サービススクリプト

(ライブラリをインストールしたマシン)
/usr/griddb-ee-X.X.X/                                    インストールディレクトリ
                     lib/
                         gridstore-X.X.X.jar
                         gridstore-advanced-X.X.X.jar
                         gridstore-call-logging-X.X.X.jar
                         gridstore-conf-X.X.X.jar
                         gridstore-jdbc-X.X.X.jar
                         gridstore-jdbc-call-logging-X.X.X.jar
                         gridstore.h
                         libgridstore.so.0.0.0
                         libgridstore_advanced.so.0.0.0
                         python/                         Pythonライブラリディレクトリ
                         nodejs/                         Node.jsライブラリディレクトリ
                             sample/
                             griddb_client.node
                             griddb_node.js
                         go/                             Goライブラリディレクトリ
                             sample/
                             pkg/linux_amd64/griddb/go_client.a
                             src/griddb/go_client/       Goライブラリのソースディレクトリ
                         conf/                           
                         javadoc/                           

/usr/griddb-ee-webapi-X.X.X/                             Web APIディレクトリ
                     conf/
                     etc/
                     griddb-webapi-ee-X.X.X.jar

/usr/girddb-webapi/griddb-webapi.jar -> /usr/griddb-ee-webapi-X.X.X/griddb-webapi-ee-X.X.X.jar

/usr/share/java/gridstore.jar -> /usr/griddb-ee-X.X.X/lib/gridstore-X.X.X.jar
/usr/share/java/gridstore-advanced.jar -> /usr/griddb-ee-X.X.X/lib/gridstore-advanced-X.X.X.jar
/usr/share/java/gridstore-call-logging.jar -> /usr/griddb-ee-X.X.X/lib/gridstore-call-logging-X.X.X.jar
/usr/share/java/gridstore-conf.jar -> /usr/griddb-ee-X.X.X/lib/gridstore-conf-X.X.X.jar
/usr/share/java/gridstore-jdbc.jar -> /usr/griddb-ee-X.X.X/lib/gridstore-jdbc-X.X.X.jar
/usr/share/java/gridstore-jdbc-call-logging.jar -> /usr/griddb-ee-X.X.X/lib/gridstore-jdbc-call-logging-X.X.X.jar


/usr/include/gridstore.h -> /usr/griddb-ee-X.X.X/lib/gridstore.h

/usr/lib64/                                             ※CentOSの場合は/usr/lib64、Ubuntu Serverの場合は/usr/lib/x86_64-linux-gnu
           libgridstore.so -> libgridstore.so.0
           libgridstore.so.0 -> libgridstore.so.0.0.0
           libgridstore.so.0.0.0 -> /usr/griddb-ee-X.X.X/lib/libgridstore.so.0.0.0
           libgridstore_advanced.so -> libgridstore_advanced.so.0
           libgridstore_advanced.so.0 -> libgridstore_advanced.so.0.0.0
           libgridstore_advanced.so.0.0.0 -> /usr/griddb-ee-X.X.X/lib/libgridstore_advanced.so.0.0.0