ignite-3 icon indicating copy to clipboard operation
ignite-3 copied to clipboard

IGNITE-16538 Enable RocksDB to control memory usage better with stalling write if memory usage exceeds limit

Open Myasuka opened this issue 3 years ago • 4 comments

https://issues.apache.org/jira/browse/IGNITE-16538

Myasuka avatar Feb 13 '22 15:02 Myasuka

cc @ibessonov

Myasuka avatar Feb 13 '22 15:02 Myasuka

I checked the guide of how to contribute, why I cannot view the CI test results?

Myasuka avatar Feb 13 '22 16:02 Myasuka

Hi @Myasuka, CI report can be found here: https://ci.ignite.apache.org/buildConfiguration/ignite3_Test_RunAllTests?focusLine=0&branch=pull%2F655&mode=builds#all-projects It's also available on this page in "checks" section. I see a problem in logs and I don't quite get it, the process is stuck:

   java.lang.Thread.State: RUNNABLE
	at org.rocksdb.RocksDB.write0(Native Method)
	at org.rocksdb.RocksDB.write(RocksDB.java:1784)
	at org.apache.ignite.internal.storage.rocksdb.RocksDbPartitionStorage.removeAllExact(RocksDbPartitionStorage.java:287)
	at org.apache.ignite.internal.storage.AbstractPartitionStorageTest.testRemoveAllExact(AbstractPartitionStorageTest.java:543)

Do you now any possible reasons for this? Main branch works just fine.

EDIT: Oh, I think I get it, you can't batch write more than it is configured in write buffer size, otherwise it'll stall in the middle.

Is there any way to preemptively detect such situation? I would not want large transactions to break the cluster. Should we just avoid using batches when it's possible? Looking forward to your reply, thank you!

ibessonov avatar Feb 14 '22 07:02 ibessonov

@ibessonov Thanks for your guid for the CI result.

The test hangs as we make the write buffer manager could stall, I need to invistigate the reason.

Myasuka avatar Feb 17 '22 03:02 Myasuka