rpuch commented on code in PR #6229:
URL: https://github.com/apache/ignite-3/pull/6229#discussion_r2197847533
##########
modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/engine/AbstractPersistentStorageEngineTest.java:
##########
@@ -70,6 +70,9 @@
* because it doesn't limit the usage of the engine with a single table.
*/
public abstract class AbstractPersistentStorageEngineTest extends
AbstractStorageEngineTest {
+ /** Makes sure that table destruction is persisted durably. */
+ protected abstract void persistTableDestructionIfNeeded();
Review Comment:
Technically, it can, but
1. It's not needed (we'll ensure durability of destruction on the higher
level; this PR is about building this higher-level mechanism)
2. It's not free (it will require a flush, which we don't need per item 1)
3. It will bring additional complexity to the code (necessity to call flush,
some methods' return values will be `CompletableFuture<Void>` vs void)
So it seems more rational to not introduce such guarantees.
The fact that pagemem-based storages give these guarantees is a lucky
coincidence (we use file/dir removal there, which is fast). Also, pagemem-based
storages provide these guarantees only while we only think about Ignite
restart/crash; if a machine or OS crashes, those file-based guarantees vanish
as it seems that we don't do dir fsync when deleting files, and not all FSs use
journals.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]