Murtadha Hubail has posted comments on this change.

Change subject: [ASTERIXDB-1995][STO] Abort write txn when index cannot be 
flushed
......................................................................


Patch Set 4:

(7 comments)

https://asterix-gerrit.ics.uci.edu/#/c/1896/4/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
File 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java:

PS4, Line 226: ("target", "io", "dir")
> Can we keep this defined in one place?
Done


PS4, Line 229: getDefaultStoragePath
Will rename this method to getStoragePath later to avoid breaking extensions.


https://asterix-gerrit.ics.uci.edu/#/c/1896/4/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/DiskIsFullTest.java
File 
asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/DiskIsFullTest.java:

PS4, Line 156: Assert.assertEquals(cause.getErrorCode(), 
expectedException.getErrorCode());
> check both error code and component?
Done


https://asterix-gerrit.ics.uci.edu/#/c/1896/1/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java
File 
asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java:

Line 199:             throw HyracksDataException.create(CANNOT_CREATE_FILE, 
parent.getAbsolutePath());
> MAJOR SonarQube violation:
Done


https://asterix-gerrit.ics.uci.edu/#/c/1896/4/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
File 
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java:

PS4, Line 511: lsmIndex.markAsValid(newComponent);
> If I recall correctly, in markAsValid, we wait for the pages to be flushed 
That's correct. Which also makes the operation in our afterFinalize wrong. I 
fixed it for for exitComponents and will file an issue for afterFinalize.


PS4, Line 677: final Optional<ILSMMemoryComponent> any = 
lsmIndex.getMemoryComponents().stream()
             :                 .filter(c -> c.getState() == 
ComponentState.INACTIVE || c.getState() == ComponentState.READABLE_WRITABLE
             :                         || c.getState() == 
ComponentState.READABLE_UNWRITABLE_FLUSHING).findAny();
> double check object creation in this since it is called frequently!
Here is what I remember. This does interface pointer allocation, which is a 
very cheap operation on modern JVMs. I modified it anyway.


PS4, Line 681: "Disk is full"
> This probably should be part of the error message in the text file as it is
Done


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1896
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I28592c30c788f4a6f44db8b47a84bc77f6b3f8f3
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail <[email protected]>
Gerrit-Reviewer: Dmitry Lychagin <[email protected]>
Gerrit-Reviewer: Ian Maxon <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>
Gerrit-Reviewer: Murtadha Hubail <[email protected]>
Gerrit-Reviewer: Till Westmann <[email protected]>
Gerrit-Reviewer: Yingyi Bu <[email protected]>
Gerrit-Reviewer: abdullah alamoudi <[email protected]>
Gerrit-HasComments: Yes

Reply via email to