You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When global memstore memory limit exceeded tablet with the oldest most recent unflushed operation is picked and requested to flush.
But it is separate operations, so the tablet could be flushed after the pick.
And near-empty memtable would be marked for flush.
It could cause write to stop for some time since we will have 2 flushing memtables.
The text was updated successfully, but these errors were encountered:
Summary:
When global memstore memory limit exceeded tablet with the oldest most recent unflushed operation is picked and requested to flush.
But it is separate operations, so the tablet could be flushed after the pick.
And near-empty memtable would be marked for the flush.
It could cause write to stop for some time since we will have 2 flushing memtables.
Another similar problem that picked tablet could could already have flushing mem table.
So when flush is requested because of global memory limit it will result in 2 flushing mem tables.
The problem with 2 flushing memtables that rocksdb stops write in this case.
Fixed by preventing flushes of such tablets.
Test Plan: ybd debug --gtest_filter QLTabletTest.DoubleFlush
Reviewers: mikhail, timur, amitanand
Reviewed By: amitanand
Subscribers: ybase, bogdan
Differential Revision: https://phabricator.dev.yugabyte.com/D6948
When global memstore memory limit exceeded tablet with the oldest most recent unflushed operation is picked and requested to flush.
But it is separate operations, so the tablet could be flushed after the pick.
And near-empty memtable would be marked for flush.
It could cause write to stop for some time since we will have 2 flushing memtables.
The text was updated successfully, but these errors were encountered: