### Question:
TableWriter implements Closeable { public void commit() { commit(defaultCommitMode); } TableWriter(CairoConfiguration configuration, CharSequence name);  TableWriter(CairoConfiguration configuration, CharSequence name, MessageBus messageBus);  TableWriter(
            CairoConfiguration configuration,
            CharSequence name,
            @Nullable MessageBus messageBus,
            boolean lock,
            LifecycleManager lifecycleManager
    );  TableWriter(
            CairoConfiguration configuration,
            CharSequence name,
            @Nullable MessageBus messageBus,
            boolean lock,
            LifecycleManager lifecycleManager,
            CharSequence root
    ); static TimestampFormat selectPartitionDirFmt(int partitionBy); void addColumn(CharSequence name, int type); void addColumn(
            CharSequence name,
            int type,
            int symbolCapacity,
            boolean symbolCacheFlag,
            boolean isIndexed,
            int indexValueBlockCapacity,
            boolean isSequential
    ); void addIndex(CharSequence columnName, int indexValueBlockSize); void changeCacheFlag(int columnIndex, boolean cache); @Override void close(); void commit(); void commit(int commitMode); int getColumnIndex(CharSequence name); long getMaxTimestamp(); RecordMetadata getMetadata(); CharSequence getName(); int getPartitionBy(); long getStructureVersion(); boolean inTransaction(); boolean isOpen(); Row newRow(long timestamp); Row newRow(); long partitionNameToTimestamp(CharSequence partitionName); void removeColumn(CharSequence name); void renameColumn(CharSequence currentName, CharSequence newName); boolean removePartition(long timestamp); void rollback(); void setLifecycleManager(LifecycleManager lifecycleManager); long size(); @Override String toString(); void transferLock(long lockFd); final void truncate(); void updateMetadataVersion(); void warmUp();  }### Answer:
@Test public void tesFrequentCommit() throws Exception { TestUtils.assertMemoryLeak(() -> { int N = 100000; create(FF, PartitionBy.NONE, N); try (TableWriter writer = new TableWriter(configuration, PRODUCT)) { long ts = TimestampFormatUtils.parseDateTime("2013-03-04T00:00:00.000Z"); Rnd rnd = new Rnd(); for (int i = 0; i < N; i++) { ts = populateRow(writer, ts, rnd, 60L * 60000L * 1000L); writer.commit(); } } }); }