Changyu Bi

Results 42 comments of Changyu Bi

I don't think we can simply reset error on the last WAL. In this repro, nothing is written to memtable and WAL has a partial write batch record. After error...

> where in the code do we insert the partial record? maybe we should undo the inserting when encountering `no space error`? Sorry for the late reply. When writing a...

Thanks for the review. > What about even smaller, like `level0_file_num_compaction_trigger=1`? Good point, I added the benchmark result in PR summary. The WA is just slightly worst. > Actually you...

Hi thanks for the PR. The change makes sense to me. I wonder if you have results for the performance improvement for each step (1. Parallelize SetState vs 2. Wake...

> We wonder why their gap so much? > @cbi42 We have a doubt besides. > > there are 2 commands: > > ``` > Command 1: > ./db_bench --benchmarks=fillrandom[-X5]...

LGTM, could you update the PR summary with only step 1 and benchmark, and add a change log under https://github.com/facebook/rocksdb/tree/main/unreleased_history/performance_improvements?

> @cbi42 We have updated the PR summary and added a change log. Hi - for PR summary, I still see two optimizations listed, it should only have the first...

I think flushing the CF with the max memtable makes sense, but we don't have such support yet.

> @cbi42 is there a way if we don't rely on WriteBufferManager but instead flush the memtables ourselves. The only hiccup I see is accurately tracking the memtable size because...

Can you repro it? I tried the following and it works fine. ``` TEST_P(OptimisticTransactionTest, Flush) { WriteOptions write_options; write_options.disableWAL = true; ASSERT_OK(txn_db->Put(write_options, Slice("foo"), Slice("bar"))); ASSERT_OK(txn_db->Put(write_options, Slice("foo2"), Slice("bar"))); ASSERT_OK(txn_db->Flush({})); std::vector meta;...