/* * +-----------------+ * | END OF WAL DATA | <---+ * +-----------------+ | * | | | * | Tracker | | * | | | * +-----------------+ | * | version | | * +-----------------+ | * | TRAILER_MAGIC | | * +-----------------+ | * | offset |-----+ * +-----------------+ */ public static long writeTrailer(FSDataOutputStream stream, ProcedureStoreTracker tracker) throws IOException { long offset = stream.getPos(); // Write EOF Entry ProcedureWALEntry.newBuilder() .setType(ProcedureWALEntry.Type.PROCEDURE_WAL_EOF) .build() .writeDelimitedTo(stream); // Write Tracker tracker.writeTo(stream); stream.write(TRAILER_VERSION); StreamUtils.writeLong(stream, TRAILER_MAGIC); StreamUtils.writeLong(stream, offset); return stream.getPos() - offset; }