okuyama.imdst.util.serializemap
クラス SerializeMap

java.lang.Object
  上位を拡張 java.util.AbstractMap
      上位を拡張 okuyama.imdst.util.serializemap.SerializeMap
すべての実装されたインタフェース:
java.io.Serializable, java.lang.Cloneable, java.util.Map
直系の既知のサブクラス:
PartialSerializeMap

public class SerializeMap
extends java.util.AbstractMap
implements java.lang.Cloneable, java.io.Serializable

データ格納Map.
格納されるKeyとValueはKey値のHash値から導き出された、
特定の集合のHashMapに格納される。そしてそのHashMapはSerializeされさらに圧縮されて
byte配列として、1つのMapに格納される。
Serializeと圧縮を使うことと、全てのKeyとValueを格納するMapの要素数を増やさないことで
メモリ使用量を減らす.
スレッドセーフに並列アクセスが可能なように実装されている

作成者:
T.Okuyama
関連項目:
直列化された形式

入れ子のクラスの概要
 
クラス java.util.AbstractMap から継承された入れ子のクラス/インタフェース
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
インタフェース java.util.Map から継承された入れ子のクラス/インタフェース
java.util.Map.Entry<K,V>
 
フィールドの概要
static long bucketJvm1MBMemoryFactor
           
 
コンストラクタの概要
SerializeMap(int size, int upper, int multi, java.lang.String serializeClassName)
          コンストラクタ
 
メソッドの概要
 void clear()
          clear
 boolean containsKey(java.lang.Object key)
          containsKey
 java.util.Map dataDeserialize(byte[] data, java.lang.Object key, int uniqueNo)
           
 byte[] dataSerialize(java.util.Map data, java.lang.Class keyClazz, java.lang.Class valueClazz, java.lang.Object key, int uniqueNo)
           
 java.util.Set entrySet()
          entrySet
 java.lang.Object get(java.lang.Object key)
          get
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          set
 java.lang.Object remove(java.lang.Object key)
          remove
 int size()
          size.
 
クラス java.util.AbstractMap から継承されたメソッド
clone, containsValue, equals, hashCode, isEmpty, keySet, putAll, toString, values
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

bucketJvm1MBMemoryFactor

public static long bucketJvm1MBMemoryFactor
コンストラクタの詳細

SerializeMap

public SerializeMap(int size,
                    int upper,
                    int multi,
                    java.lang.String serializeClassName)
コンストラクタ

パラメータ:
size - 予想格納最大数(現在内部的には利用しない)
upper - 格納上限拡張閾値(現在内部的には利用しない)
multi - 実際に格納に使用する集合バケット数 (現在の検証で1GBのJVMへのメモリ割当で40万程度、1MBで400件程度が適正値)
メソッドの詳細

dataSerialize

public byte[] dataSerialize(java.util.Map data,
                            java.lang.Class keyClazz,
                            java.lang.Class valueClazz,
                            java.lang.Object key,
                            int uniqueNo)

dataDeserialize

public java.util.Map dataDeserialize(byte[] data,
                                     java.lang.Object key,
                                     int uniqueNo)

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
set

定義:
インタフェース java.util.Map 内の put
オーバーライド:
クラス java.util.AbstractMap 内の put
パラメータ:
key -
value -

get

public java.lang.Object get(java.lang.Object key)
get

定義:
インタフェース java.util.Map 内の get
オーバーライド:
クラス java.util.AbstractMap 内の get
パラメータ:
key -
戻り値:
Object

remove

public java.lang.Object remove(java.lang.Object key)
remove

定義:
インタフェース java.util.Map 内の remove
オーバーライド:
クラス java.util.AbstractMap 内の remove
パラメータ:
key -
戻り値:
Object

containsKey

public boolean containsKey(java.lang.Object key)
containsKey

定義:
インタフェース java.util.Map 内の containsKey
オーバーライド:
クラス java.util.AbstractMap 内の containsKey
パラメータ:
key -
戻り値:
boolean

clear

public void clear()
clear

定義:
インタフェース java.util.Map 内の clear
オーバーライド:
クラス java.util.AbstractMap 内の clear

size

public int size()
size.

定義:
インタフェース java.util.Map 内の size
オーバーライド:
クラス java.util.AbstractMap 内の size
パラメータ:
-
戻り値:
int
例外:

entrySet

public java.util.Set entrySet()
entrySet

定義:
インタフェース java.util.Map 内の entrySet
定義:
クラス java.util.AbstractMap 内の entrySet
戻り値:
Set