@Override
  public void cleanRecord(final int recordId) throws IOException {
    checkRecordIdIsValid(recordId);

    //fill record with zeroes, by 4 bytes at once:
    assert RECORD_SIZE_IN_BYTES % Integer.BYTES == 0 : "RECORD_SIZE_IN_BYTES(=" + RECORD_SIZE_IN_BYTES + ") is expected to be 32-aligned";
    final int recordSizeInInts = RECORD_SIZE_IN_BYTES / Integer.BYTES;

    final long recordOffsetInFile = recordOffsetInFile(recordId);
    final int recordOffsetOnPage = storage.toOffsetInPage(recordOffsetInFile);
    try (final PageUnsafe page = (PageUnsafe)storage.pageByOffset(recordOffsetInFile, /*forWrite: */ true)) {
      page.lockPageForWrite();
      try {
        final ByteBuffer pageBuffer = page.rawPageBuffer();
        for (int wordNo = 0; wordNo < recordSizeInInts; wordNo++) {
          final int offsetOfWord = recordOffsetOnPage + wordNo * Integer.BYTES;
          pageBuffer.putInt(offsetOfWord, 0);
        }

        page.regionModified(recordOffsetOnPage, RECORD_SIZE_IN_BYTES);
      }
      finally {
        page.unlockPageForWrite();
      }
    }
  }
@Override
  public void cleanRecord(final int recordId)