final ObjectDataInput in = reader.getRawDataInput();
key = IOUtil.readNullableData(in);
value = IOUtil.readNullableData(in);
newValue = IOUtil.readNullableData(in);
readDataInner(in);
ttl = in.readLong();
}
protected abstract Predicate getPredicate();
protected abstract void writeDataInner(ObjectDataOutput writer) throws IOException;