Hitachi

インメモリデータグリッド Hitachi Elastic Application Data Store ユーザーズガイド


15.2.2 key,グループ名,value,キャッシュ名,EADSクライアント名に指定できるデータ

key,グループ名,value,キャッシュ名,EADSクライアント名に指定できるデータについて説明します。

〈この項の構成〉

(1) keyとして指定できるデータ

keyの形式と指定できるデータについて説明します。

(a) keyの形式

key=
 [<グループ名>:]<要素名>

keyをグルーピングしない場合,<要素名>がkeyになります。keyをグルーピングする場合,<グループ名>,区切り文字(:),<要素名>を合わせたものがkeyになります。このため,<要素名>が同じでも<グループ名>が異なれば別のkeyとなります。

<グループ名>の形式については,「15.2.2(2) グループ名として指定できるデータ」を参照してください。

keyの指定例を次に示します。

  • グルーピングしていないkey

    key1
  • グルーピングしたkey

    group1:key1
  • グループを階層化したkey

    group1:group2:key1

(b) keyとして指定できるデータ型と文字数

keyとして指定できるデータ型と文字数を,APを作成する言語ごとに次の表に示します。keyをグルーピングする場合,グループ名,区切り文字(:),要素名を合わせて1,024文字までとなります。

表15‒1 keyとして指定できるデータ

APを作成する言語

keyとして指定できるデータ型

文字数

備考

Java言語

文字列(java.lang.String)

1〜1,024

nullまたは空文字列は不正となります。

C言語

'\0'を終端記号とする文字列(char *)

1〜1,024

  • 文字列の最大サイズは,'\0'を含まないバイト数となります。

  • 長さ0の文字列('\0'だけ)は指定できません。

注意事項

eztool puteztool geteztool removeの各コマンドは,構築後の実行環境が正常に動作するかどうかテストするために使用します。そのため,コマンドで指定できるデータ型とサイズと,API(put,get,remove)で指定できるデータ型とサイズの間に完全な互換性はありません。

(c) keyを指定する際の規則および注意事項

keyを指定する際の規則および注意事項を次に示します。

  • keyには,ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

    ただし,次の表に示す文字はEADSの予約文字のため,一部の例外を除いてkeyには使用できません。

    表15‒2 keyに使用できない文字

    ASCIIコード

    文字

    例外

    0x22

    二重引用符(")

    なし

    0x28

    左丸括弧(()

    なし

    0x29

    右丸括弧())

    なし

    0x3a

    コロン(:)

    グループ階層名および要素名の区切りにだけ使用できます。グループ階層名および要素名には指定できません。

    0x3c

    小なり演算子(<)

    なし

    0x3e

    大なり演算子(>)

    なし

    0x5b

    左角括弧([)

    EADSサーバID指定グループで,格納先のEADSサーバのEADSサーバIDを指定するときにだけ使用できます。

    0x5d

    右角括弧(])

    0x7c

    縦線(|

    なし

(2) グループ名として指定できるデータ

グループ名の形式と指定できるデータについて説明します。

(a) グループ名の形式

<グループ名>=
 <グループ階層名>[:<グループ階層名>]…

keyの最上位階層のグループ階層名から,任意の階層のグループ階層名までをグループ名として指定できます。中間のグループ階層名から始まる名称は指定できません。

APIなどでグループ名を指定する場合,中間のグループ階層名から始まる名称は指定できません。例えば,keyが「groupA:groupB:groupC:key」の場合に,グループ名として「groupB:groupC」は指定できません。

keyとグループ名の関係の例を次に示します。

  • keyが「groupA:groupB:groupC:key」の場合に指定できるグループ名

    groupA
    groupA:groupB
    groupA:groupB:groupC
  • keyが「[10]group1:group2:key」の場合に指定できるグループ名

    [10]group1
    [10]group1:group2

(b) EADSサーバID指定グループ

keyの格納先のEADSサーバを指定してkeyをグルーピングする場合は,格納先のEADSサーバのEADSサーバIDを指定します。このようなグループを,EADSサーバID指定グループといいます。

EADSサーバID指定グループを含むkeyの形式を次に示します。

[<EADSサーバID>]<グループ階層名>:[<グループ階層名>:]…<要素名>

EADSサーバID指定グループを使用してkeyをグルーピングする場合,keyの先頭のグループ階層名に,左角括弧([)および右角括弧(])で囲んだEADSサーバIDを指定します(形式中の「[<EADSサーバID>]」の左角括弧([)および右角括弧(])は,実際に指定することを表しています。省略の意味ではありません)。EADSサーバIDには,先頭が0でない整数を指定します。

なお,この場合,左角括弧([),EADSサーバID,および右角括弧(])も含めて,グループ名として扱われます。

EADSサーバID指定グループを含むkeyの指定例を次に示します。

[1]group1:key1

(c) グループ名として指定できるデータ型と文字数

グループ名として指定できるデータ型については,「15.2.2(1)(b) keyとして指定できるデータ型と文字数」を参照してください。keyをグルーピングする場合,グループ名,区切り文字(:),要素名を合わせて1,024文字までとなります。そのため,グループ名として指定できる文字数は1,022文字までとなります。

(d) グループ名を指定する際の規則および注意事項

グループ名を指定する際の規則および注意事項を次に示します。これ以外の規則および注意事項については,「15.2.2(1)(c) keyを指定する際の規則および注意事項」を参照してください。

  • keyをグルーピングする場合,作成できるグループ数,およびグループの階層数に上限はありません。

    ただし,グループを階層化した場合,操作する階層が深くなるにつれて処理に時間が掛かります。そのため,適切な階層を設定してください。

  • EADSサーバID指定グループを使用する場合,クラスタに存在しないEADSサーバのEADSサーバIDは指定できません。

  • EADSサーバID指定グループを含むkeyのハッシュ値は,EADSサーバのレンジ上の値です。リバランス処理によってEADSサーバのレンジが変わると,ハッシュ値も変わることがあります。

(3) valueとして指定できるデータ

valueとして指定できるデータ型とサイズを,APを作成する言語ごとに次の表に示します。

表15‒3 valueとして指定できるデータ

APを作成する言語

valueとして指定できるデータ型

サイズ

(単位:バイト)

備考

Java言語

シリアライズ可能な任意のオブジェクト(java.lang.Object)

1〜262,144

  • シリアライズ後のバイト配列の長さとなります。

  • nullの場合は不正となります。

C言語

任意のバイト配列(void *)

1〜262,144

任意のバイト配列の長さとなります。

注意事項
  • 指定できるデータ型とサイズについて,API(put,get,remove)・コマンド(eztool puteztool geteztool remove)間に完全な互換性はありません。

  • Java言語のクライアントAPまたはユーザファンクションと,C言語のクライアントAPで同一のkeyを扱う場合,valueはバイト配列にしてください。Java言語のクライアントAPまたはユーザファンクションから格納したバイト配列のvalueを,C言語のクライアントAPで取得できます。バイト配列でないvalueをC言語のクライアントAPで取得した場合,エラーとなります。

    C言語のクライアントAPから格納したvalueは,Java言語のクライアントAPまたはユーザファンクションでバイト配列として取得できます。

(4) キャッシュ名として指定できるデータ

キャッシュ名として指定できるデータ型と文字数を,APを作成する言語ごとに次の表に示します。

表15‒4 キャッシュ名として指定できるデータ

APを作成する言語

キャッシュ名として指定できるデータ型

文字数

備考

Java言語

文字列(java.lang.String)

1〜32

  • ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

  • nullまたは空文字列は不正となります。

C言語

'\0'を終端記号とする文字列(char *)

1〜32

  • ASCIIコード「0x20」〜「0x7E」の文字が指定できます。

  • 文字列の最大サイズは,'\0'を含まないバイト数となります。

  • 長さ0の文字列('\0'だけ)は指定できません。

(5) EADSクライアント名として指定できるデータ

EADSクライアント名として指定できるデータ型と文字数を,APを作成する言語ごとに次の表に示します。

表15‒5 EADSクライアント名として指定できるデータ

APを作成する言語

EADSクライアント名として指定できるデータ型

文字数

備考

Java言語

文字列(java.lang.String)

0〜16

  • 半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_)が指定できます。

  • 空文字列を指定できます。

  • nullは不正となります。

C言語

'\0'を終端記号とする文字列(char *)

0〜16

  • 半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_)が指定できます。

  • 文字列の最大サイズは,'\0'を含まないバイト数となります。

  • 長さ0の文字列('\0'だけ)を指定できます。