@Override
 public void read(PortableReader reader) throws IOException {
   super.read(reader);
   ttlMillis = reader.readLong("ttlMillis");
   ObjectDataInput in = reader.getRawDataInput();
   key = in.readData();
   value = in.readData();
 }
 @Override
 public void write(PortableWriter writer) throws IOException {
   super.write(writer);
   writer.writeLong("ttlMillis", ttlMillis);
   ObjectDataOutput out = writer.getRawDataOutput();
   out.writeData(key);
   out.writeData(value);
 }
 @Override
 public void read(PortableReader reader) throws IOException {
   super.read(reader);
   ObjectDataInput in = reader.getRawDataInput();
   key = in.readObject();
 }
 @Override
 public void write(PortableWriter writer) throws IOException {
   super.write(writer);
   ObjectDataOutput out = writer.getRawDataOutput();
   out.writeObject(key);
 }