Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Data TypeType IdValueSerialized BytesDescription
Null41 = 0x29null
typeId0x29
 
Boolean 53 = 0x35true
typeId0x35
bytes0x01
 
Character 54 = 0x36'a'
typeId0x36
bytes

0x00 0x61

 
Byte 55 = 0x371
typeId0x37
bytes0x01
 
Short 56 = 0x381000
typeId0x38
bytes0x03 0xE8
 
Integer 57 = 0x391000
typeId0x39
bytes0x00 0x00 0x03 0xE8
 
Long 58 = 0x3A1000
typeId0x3A
bytes0x00 0x00 0x00 0x00 0x00 0x00 0x03 0xE8
 
Float 59 = 0x3B1000f
typeId0x3B
bytes

0x44 0x7A 0x00 0x00

 
Double 60 = 0x3C1000d



typeId0x3C
bytes

0x40 0xF1 0x40 0x00 0x00 0x00 0x00 0x00

 
ASCII_STRING87 = 0x57"hello"
typeid0x57
len0x00 0x05
bytes0x68 0x65 0x40 0x40 0x6F
This represents ASCII string with maximum length 0xFFFF.
UTF_STRING 42 = 0x2A  This represents UTF string with maximum length 0xFFFF.
HUGE_ASCII_STRING 88 = 0x58  This represents ASCII string with length greater than 0xFFFF.
HUGE_UTF_STRING 89 = 0x59  This represents UTF string with length greater than 0xFFFF.
byte[] 46 = 0x2Ebyte[] {1,2}
typeId0x2E
len0x02
bytes0x01 0x02
 
short[]47 = 0x2Fshort[] {1,2}
typeId0x2F
len0x02
bytes

0x00 0x01 0x00 0x02

 
int[]48 = 0x30int[] {1,2}
typeId0x30
len0x02
bytes

0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x02

 
long[]49 = 0x31long[] {1}
typeId0x31
len0x01
bytes

0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01

 
float[]50 = 0x32float[] {2.0f}
typeId0x32
len0x01
bytes

0x40 0x00 0x00 0x00

 
double[]51 = 0x33double[] {2.0d}
typeId0x33
len0x01
bytes

0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00

 
string[]64 = 0x40 String[]{"hello", "world"}
typeId0x40
len0x02

"hello"

bytes

0x57 - ASCII_STRING

0x00 0x05

0x68 0x65 0x6c 0x6c 0x6f

 

"world"

bytes

0x57 -  ASCII_STRING

0x00 0x05 - len

0x77 0x6f 0x72 0x6c 0x64


 
Map67 = 0x43

Map s = new HashMap<>();

 s.put("hello", "world")

typeId0x43
len0x01

"hello"

bytes

0x57 - ASCII_STRING

0x00 0x05

0x68 0x65 0x6c 0x6c 0x6f

 

"world"

bytes

0x57 -  ASCII_STRING

0x00 0x05 - len

0x77 0x6f 0x72 0x6c 0x64

 
Set66 = 0x42

Set s = new HashSet();

 s.add("hello");

s.add("world");


typeId0x42
len0x02

"hello"

bytes

0x57 - ASCII_STRING

0x00 0x05

0x68 0x65 0x6c 0x6c 0x6f

"world"

bytes

0x57 -  ASCII_STRING

0x00 0x05 - len

0x77 0x6f 0x72 0x6c 0x64

 
List10 = 0x0a

List s = new LinkedList();
s.add("hello");
s.add("world");

typeId0x0a
len0x02

"hello"

bytes

0x57 - ASCII_STRING

0x00 0x05

0x68 0x65 0x6c 0x6c 0x6f

"world"

bytes

0x57 -  ASCII_STRING

0x00 0x05 - len

0x77 0x6f 0x72 0x6c 0x64

 
ArrayList65=0x41

List s = new ArrayList();
s.add("hello");
s.add("world");

typeId0x41
len0x02

"hello"

bytes

0x57 - ASCII_STRING

0x00 0x05

0x68 0x65 0x6c 0x6c 0x6f

"world"

bytes

0x57 -  ASCII_STRING

0x00 0x05 - len

0x77 0x6f 0x72 0x6c 0x64

 
PDX_SERIALIZATION93=0x5D  Java Object can implement PdxSerializable interface to serialize data in pdx format
PDX_SERIALIZER   

The application can implement PdxSerializer interface and then install with geode cache

to serialize data in pdx format.

DATA_SERIALIZATION    Java Object can implement DataSerializable interface to serialize data.
USER_SERIALIZATION    

The application can implement DataSerializer interface and then install with geode cache

to serialize data.

 

Calculate Collection/Array Size

Geode calculate the size of collection or Array in following way

Write Array Length functionRead Array Length Function
Code Block
 public static final byte NULL_ARRAY = -1; // array is null
  /**
   * @since GemFire 5.7
   */
  private static final byte SHORT_ARRAY_LEN = -2; // array len encoded as unsigned short in next 2
                                                  // bytes
  /**
   * @since GemFire 5.7
   */
  public static final byte INT_ARRAY_LEN = -3; // array len encoded as int in next 4 bytes
  private static final int MAX_BYTE_ARRAY_LEN = ((byte) -4) & 0xFF;
  public static void writeArrayLength(int len, DataOutput out) throws IOException {
    if (len == -1) {
      out.writeByte(NULL_ARRAY);
    } else if (len <= MAX_BYTE_ARRAY_LEN) {
      out.writeByte(len);
    } else if (len <= 0xFFFF) {
      out.writeByte(SHORT_ARRAY_LEN);
      out.writeShort(len);
    } else {
      out.writeByte(INT_ARRAY_LEN);
      out.writeInt(len);
    }
  }
Code Block
  public static int readArrayLength(DataInput in) throws IOException {
    byte code = in.readByte();
    if (code == NULL_ARRAY) {
      return -1;
    } else {
      int result = ubyteToInt(code);
      if (result > MAX_BYTE_ARRAY_LEN) {
        if (code == SHORT_ARRAY_LEN) {
          result = in.readUnsignedShort();
        } else if (code == INT_ARRAY_LEN) {
          result = in.readInt();
        } else {
          throw new IllegalStateException("unexpected array length code=" + code);
        }
      }
      return result;
    }
  }