[NO ISSUE][STO] Make IO operation completed state volatile
authorMurtadha Hubail <murtadha.hubail@couchbase.com>
Fri, 11 Mar 2022 17:45:35 +0000 (20:45 +0300)
committerMurtadha Hubail <mhubail@apache.org>
Fri, 11 Mar 2022 21:42:22 +0000 (21:42 +0000)
commita8083203047003d706d482e4e91685133c44b891
tree244773d7ff1423b9ff70fb2ea2c5221694b125c2
parentb50d4add90acb7e8cf13e7b4168f92bcf35348dc
[NO ISSUE][STO] Make IO operation completed state volatile

- user model changes: no
- storage format changes: no
- interface changes: no

Details:

- To avoid a deadlock between checking an IO operation completed
  state and scheduling another flush operation using the same
  IO scheduler, make the IO operation state volatile rather
  synchronizing on the operation.

Change-Id: Ibef0fe3dc52a5a6b36cc29bbac0fb38936944cee
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/15663
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractIoOperation.java