概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## okuyama.imdst.util
クラス KeyMapManager

    java.lang.Object
      java.lang.Thread
          okuyama.imdst.util.KeyMapManager

すべての実装されたインタフェース:
  java.lang.Runnable

    public class KeyMapManager

extends java.lang.Thread

DataNodeが使用するKey-Valueを管理するモジュール.
データのファイルストア、登録ログの出力、同期化を行う.

作成者:
  T.Okuyama

入れ子のクラスの概要

クラス java.lang.Thread から継承された入れ子のクラス/インタフェース
`java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler`

フィールドの概要
`protected static int` | `accessorTypeBw`
`protected static java.lang.String` | `workMapFileEnc`

クラス java.lang.Thread から継承されたフィールド
`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

コンストラクタの概要
`KeyMapManager(java.lang.String keyMapFilePath, java.lang.String workKeyMapFilePath, boolean workFileMemory, int keySize, boolean dataMemory)`
`KeyMapManager(java.lang.String keyMapFilePath, java.lang.String workKeyMapFilePath, boolean workFileMemory, int keySize, boolean dataMemory, boolean dataManage)`
`KeyMapManager(java.lang.String keyMapFilePath, java.lang.String workKeyMapFilePath, boolean workFileMemory, int keySize, boolean dataMemory, int memoryLimitSize, java.lang.String[] virtualStorageDirs)`
`KeyMapManager(java.lang.String keyMapFilePath, java.lang.String workKeyMapFilePath, boolean workFileMemory, int keySize, boolean dataMemory, java.lang.String[] dirs)`

メソッドの概要
`int` | `appendValue(java.lang.String key, java.lang.String appendValue, java.lang.String appendSep, java.lang.String transactionCode)` キーを指定することで紐付くValueの後ろに渡されたValueを付加する.
`void` | `autoLockRelease(long time)` Lockの自動開放メソッド.
`java.lang.String` | `calcValue(java.lang.String key, int calcVal, java.lang.String transactionCode)` キーを指定することで紐付くValueに計算を行う.
`boolean` | `checkError()`
`boolean` | `containsKeyPair(java.lang.String key)`
`boolean` | `containsTagPair(java.lang.String tag)`
`void` | `dataExport(java.io.PrintWriter pw)`
`void` | `diffDataMode(boolean flg)`
`void` | `diffDataMode(boolean flg, java.io.PrintWriter pw)`
`void` | `diffDataModeOff()`
`void` | `dump()`
`java.lang.String[]` | `getAllSaveDataSize()`
`java.lang.String` | `getKeyPair(java.lang.String key)`
`long` | `getLastDataChangeTime()`
`java.lang.String` | `getLockedTransactionCode(java.lang.String key)` Lockの状況を確認する.
`int` | `getSaveDataCount()`
`long` | `getSaveDataSize(java.lang.String uniqueKey)`
`java.lang.String` | `getTagPair(java.lang.String tag)`
`java.lang.String` | `getTargetIndexTagPair(java.lang.String tag, int index)`
`java.lang.String` | `getTargetTagIndexList(java.lang.String tag)` 対象のTagのデータが存在する位置をKeyMapManager.tagKeySepで連結した文字列を返す<.br> 本メソッドで取得したIndexをgetTargetIndexTagPairに渡すことで指定位置のTagとKeyのペアを取得可能.
`void` | `inputConsistentHashMoveData2Stream(java.io.PrintWriter pw, java.io.BufferedReader br)`
`void` | `inputDiffKeyMapObj2Stream(java.io.BufferedReader br, java.io.PrintWriter pw)`
`void` | `inputKeyMapObj2Stream(java.io.BufferedReader br, java.io.PrintWriter pw, int dataLineCount)`
`void` | `inputNoMatchKeyMapKey2Stream(java.io.PrintWriter pw, java.io.BufferedReader br)`
`boolean` | `isLock(java.lang.String key)` Lockの状況を確認する.
`java.lang.String` | `locking(java.lang.String key, java.lang.String transactionCode, int lockingTime)` Lockの取得を行う.
`void` | `outputConsistentHashMoveData2Stream(java.io.PrintWriter pw, java.lang.String targetRangStr)`
`void` | `outputDiffKeyMapObj2Stream(java.io.PrintWriter pw, java.io.BufferedReader br)`
`void` | `outputKeyMapObj2Stream(java.io.PrintWriter pw)`
`void` | `outputNoMatchKeyMapKey2Stream(java.io.PrintWriter pw, int matchNo, java.lang.String rulesStr)`
`void` | `removeConsistentHashMoveData2Stream(java.io.PrintWriter pw, java.lang.String targetRangStr)`
`java.lang.String` | `removeKeyPair(java.lang.String key, java.lang.String transactionCode)`
`java.lang.String` | `removeLock(java.lang.String key, java.lang.String transactionCode)` Lockの開放を行う.
`void` | `removeModMoveData2Stream(java.io.PrintWriter pw, java.io.BufferedReader br)`
`java.lang.String` | `removeTagRelation(java.lang.String tag, java.lang.String transactionCode)`
`boolean` | `removeTargetTagInKey(java.lang.String tag, java.lang.String key, java.lang.String transactionCode)`
`void` | `run()` 定期的にトランザクションログファイルのローテーション及び、Vacuum処理を行う.
`void` | `setKeyPair(java.lang.String key, java.lang.String keyNode, java.lang.String transactionCode)` キーを指定することでノードをセットする.
`boolean` | `setKeyPairOnlyOnce(java.lang.String key, java.lang.String keyNode, java.lang.String transactionCode)` キーを指定することでノードをセットする.
`boolean` | `setKeyPairOnlyOnce(java.lang.String key, java.lang.String keyNode, java.lang.String transactionCode, boolean moveData)` キーを指定することでノードをセットする.
`boolean` | `setKeyPairVersionCheck(java.lang.String key, java.lang.String keyNode, java.lang.String transactionCode, java.lang.String updateVersionNo, boolean execCheck)` キーを指定することでノードをセットする.
`void` | `setTagPair(java.lang.String tag, java.lang.String key, java.lang.String transactionCode)`
`long` | `truncateData(java.lang.String uniqueKey)` 指定のIsolation指定のuniqueKeyに関係するデータを全て削除する.

クラス java.lang.Thread から継承されたメソッド
`activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield`

クラス java.lang.Object から継承されたメソッド
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

フィールドの詳細

### accessorTypeBw

    protected static int accessorTypeBw

### workMapFileEnc

    protected static java.lang.String workMapFileEnc

コンストラクタの詳細

### KeyMapManager

    public KeyMapManager(java.lang.String keyMapFilePath,
                         java.lang.String workKeyMapFilePath,
                         boolean workFileMemory,
                         int keySize,
                         boolean dataMemory,
                         boolean dataManage)
                  throws BatchException

例外:
  `BatchException`

### KeyMapManager

    public KeyMapManager(java.lang.String keyMapFilePath,
                         java.lang.String workKeyMapFilePath,
                         boolean workFileMemory,
                         int keySize,
                         boolean dataMemory)
                  throws BatchException

例外:
  `BatchException`

### KeyMapManager

    public KeyMapManager(java.lang.String keyMapFilePath,
                         java.lang.String workKeyMapFilePath,
                         boolean workFileMemory,
                         int keySize,
                         boolean dataMemory,
                         int memoryLimitSize,
                         java.lang.String[] virtualStorageDirs)
                  throws BatchException

例外:
  `BatchException`

### KeyMapManager

    public KeyMapManager(java.lang.String keyMapFilePath,
                         java.lang.String workKeyMapFilePath,
                         boolean workFileMemory,
                         int keySize,
                         boolean dataMemory,
                         java.lang.String[] dirs)
                  throws BatchException

例外:
  `BatchException`

メソッドの詳細

### run

    public void run()

  定期的にトランザクションログファイルのローテーション及び、Vacuum処理を行う.
  システム停止要求を監視して停止依頼があった場合は自身を終了する.

  定義:
    インタフェース `java.lang.Runnable` 内の `run`
  オーバーライド:
    クラス `java.lang.Thread` 内の `run`

### truncateData

    public long truncateData(java.lang.String uniqueKey)

  指定のIsolation指定のuniqueKeyに関係するデータを全て削除する.

  パラメータ:
    `uniqueKey` -
  戻り値:
    long 削除件数

### setKeyPair

    public void setKeyPair(java.lang.String key,
                           java.lang.String keyNode,
                           java.lang.String transactionCode)
                    throws BatchException

  キーを指定することでノードをセットする.

  パラメータ:
    `key` - キー値
    `keyNode` - Value値
    `transactionCode` -
    `boolean` - 移行データ指定
  例外:
    `BatchException`

### setKeyPairOnlyOnce

    public boolean setKeyPairOnlyOnce(java.lang.String key,
                                      java.lang.String keyNode,
                                      java.lang.String transactionCode)
                               throws BatchException

  キーを指定することでノードをセットする.
  既に登録されている場合は、失敗する。

  パラメータ:
    `key` - キー値
    `keyNode` - Value値
    `transactionCode` -
  例外:
    `BatchException`

### setKeyPairOnlyOnce

    public boolean setKeyPairOnlyOnce(java.lang.String key,
                                      java.lang.String keyNode,
                                      java.lang.String transactionCode,
                                      boolean moveData)
                               throws BatchException

  キーを指定することでノードをセットする.
  既に登録されている場合は、失敗する。

  パラメータ:
    `key` - キー値
    `keyNode` - Value値
    `transactionCode` -
  例外:
    `BatchException`

### setKeyPairVersionCheck

    public boolean setKeyPairVersionCheck(java.lang.String key,
                                          java.lang.String keyNode,
                                          java.lang.String transactionCode,
                                          java.lang.String updateVersionNo,
                                          boolean execCheck)
                                   throws BatchException

  キーを指定することでノードをセットする.
  引数のVersionNoと登録されているVersionNoが異なる場合は失敗する.

  パラメータ:
    `key` - キー値
    `keyNode` - Value値
    `transactionCode` -
    `updateVersionNo` -
  例外:
    `BatchException`

### getKeyPair

    public java.lang.String getKeyPair(java.lang.String key)

### removeKeyPair

    public java.lang.String removeKeyPair(java.lang.String key,
                                          java.lang.String transactionCode)
                                   throws BatchException

  例外:
    `BatchException`

### setTagPair

    public void setTagPair(java.lang.String tag,
                           java.lang.String key,
                           java.lang.String transactionCode)
                    throws BatchException

  例外:
    `BatchException`

### removeTargetTagInKey

    public boolean removeTargetTagInKey(java.lang.String tag,
                                        java.lang.String key,
                                        java.lang.String transactionCode)
                                 throws BatchException

  例外:
    `BatchException`

### getTagPair

    public java.lang.String getTagPair(java.lang.String tag)

### getTargetTagIndexList

    public java.lang.String getTargetTagIndexList(java.lang.String tag)

  対象のTagのデータが存在する位置をKeyMapManager.tagKeySepで連結した文字列を返す<.br> 本メソッドで取得したIndexをgetTargetIndexTagPairに渡すことで指定位置のTagとKeyのペアを取得可能.

  パラメータ:
    `tag` - タグ
  戻り値:
    指定したTag値が分割保存されているIndexの中で実際に値が存在するIndexのKeyMapManager.tagKeySep区切り文字列。Tagが登録されていない場合はnullが返る

### getTargetIndexTagPair

    public java.lang.String getTargetIndexTagPair(java.lang.String tag,
                                                  int index)

### removeTagRelation

    public java.lang.String removeTagRelation(java.lang.String tag,
                                              java.lang.String transactionCode)
                                       throws BatchException

  例外:
    `BatchException`

### calcValue

    public java.lang.String calcValue(java.lang.String key,
                                      int calcVal,
                                      java.lang.String transactionCode)
                               throws BatchException

  キーを指定することで紐付くValueに計算を行う.

  パラメータ:
    `key` - キー値
    `calcVal` - 計算値(数値)
    `transactionCode` -
  例外:
    `BatchException`

### appendValue

    public int appendValue(java.lang.String key,
                           java.lang.String appendValue,
                           java.lang.String appendSep,
                           java.lang.String transactionCode)
                    throws BatchException

  キーを指定することで紐付くValueの後ろに渡されたValueを付加する.
  値が存在しない場合は新規の値としてただ登録される.

  パラメータ:
    `key` - キー値
    `appendValue` - 付加する値(base64でエンコード済み)
    `appendSep` - 値が既に存在する場合にセパレータとして付加する値(ブランク指定(B)の場合は何も付加されない)
    `transactionCode` -
  戻り値:
    boolean 成否 0=成功、1=サイズオーバによりエラー
  例外:
    `BatchException`

### containsKeyPair

    public boolean containsKeyPair(java.lang.String key)

### containsTagPair

    public boolean containsTagPair(java.lang.String tag)

### locking

    public java.lang.String locking(java.lang.String key,
                                    java.lang.String transactionCode,
                                    int lockingTime)
                             throws BatchException

  Lockの取得を行う.

  パラメータ:
    `key` - Key値
    `transactionCode` - 取得時に使用するTransactionCode
    `lockingTime` - Lock継続時間
  戻り値:
    String 成功時はtransactionCode、失敗時はnull
  例外:
    `BatchException`

### removeLock

    public java.lang.String removeLock(java.lang.String key,
                                       java.lang.String transactionCode)
                                throws BatchException

  Lockの開放を行う.

  パラメータ:
    `key` - Key値
    `transactionCode` - 取得時に使用するTransactionCode
  戻り値:
    String 成功時はtransactionCode、失敗時はnull
  例外:
    `BatchException`

### isLock

    public boolean isLock(java.lang.String key)

  Lockの状況を確認する.

  パラメータ:
    `key` - Key値
  戻り値:
    boolean true:ロックされている false:ロックされていない

### getLockedTransactionCode

    public java.lang.String getLockedTransactionCode(java.lang.String key)

  Lockの状況を確認する.

  パラメータ:
    `key` - Key値
  戻り値:
    String TransactionCode

### autoLockRelease

    public void autoLockRelease(long time)
                         throws BatchException

  Lockの自動開放メソッド.
  引数の時間だけ経過しているLockは強制的に開放される

  パラメータ:
    `time` - 現在ミリ秒
  例外:
    `BatchException`

### diffDataMode

    public void diffDataMode(boolean flg,
                             java.io.PrintWriter pw)

### diffDataMode

    public void diffDataMode(boolean flg)

### diffDataModeOff

    public void diffDataModeOff()

### outputKeyMapObj2Stream

    public void outputKeyMapObj2Stream(java.io.PrintWriter pw)
                                throws BatchException

  例外:
    `BatchException`

### outputDiffKeyMapObj2Stream

    public void outputDiffKeyMapObj2Stream(java.io.PrintWriter pw,
                                           java.io.BufferedReader br)
                                    throws BatchException

  例外:
    `BatchException`

### inputKeyMapObj2Stream

    public void inputKeyMapObj2Stream(java.io.BufferedReader br,
                                      java.io.PrintWriter pw,
                                      int dataLineCount)
                               throws BatchException

  例外:
    `BatchException`

### inputDiffKeyMapObj2Stream

    public void inputDiffKeyMapObj2Stream(java.io.BufferedReader br,
                                          java.io.PrintWriter pw)
                                   throws BatchException

  例外:
    `BatchException`

### outputNoMatchKeyMapKey2Stream

    public void outputNoMatchKeyMapKey2Stream(java.io.PrintWriter pw,
                                              int matchNo,
                                              java.lang.String rulesStr)
                                       throws BatchException

  例外:
    `BatchException`

### outputConsistentHashMoveData2Stream

    public void outputConsistentHashMoveData2Stream(java.io.PrintWriter pw,
                                                    java.lang.String targetRangStr)
                                             throws BatchException

  例外:
    `BatchException`

### inputNoMatchKeyMapKey2Stream

    public void inputNoMatchKeyMapKey2Stream(java.io.PrintWriter pw,
                                             java.io.BufferedReader br)
                                      throws BatchException

  例外:
    `BatchException`

### inputConsistentHashMoveData2Stream

    public void inputConsistentHashMoveData2Stream(java.io.PrintWriter pw,
                                                   java.io.BufferedReader br)
                                            throws BatchException

  例外:
    `BatchException`

### removeConsistentHashMoveData2Stream

    public void removeConsistentHashMoveData2Stream(java.io.PrintWriter pw,
                                                    java.lang.String targetRangStr)
                                             throws BatchException

  例外:
    `BatchException`

### removeModMoveData2Stream

    public void removeModMoveData2Stream(java.io.PrintWriter pw,
                                         java.io.BufferedReader br)
                                  throws BatchException

  例外:
    `BatchException`

### getLastDataChangeTime

    public long getLastDataChangeTime()

### getSaveDataCount

    public int getSaveDataCount()

### getSaveDataSize

    public long getSaveDataSize(java.lang.String uniqueKey)

### getAllSaveDataSize

    public java.lang.String[] getAllSaveDataSize()

### checkError

    public boolean checkError()

### dump

    public void dump()

### dataExport

    public void dataExport(java.io.PrintWriter pw)

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド