@Override public R put(T key, R value) { try { byte[] val = SerializationUtils.serialize(value); Integer valueSize = val.length; Long timestamp = new Date().getTime(); this.valueMetadataMap.put(key, new DiskBasedMap.ValueMetadata(this.filePath, valueSize, filePosition.get(), timestamp)); byte[] serializedKey = SerializationUtils.serialize(key); filePosition.set(SpillableMapUtils.spillToDisk(writeOnlyFileHandle, new FileEntry(SpillableMapUtils.generateChecksum(val), serializedKey.length, valueSize, serializedKey, val, timestamp))); } catch (IOException io) { throw new HoodieIOException("Unable to store data in Disk Based map", io); } return value; }