[ASTERIXDB-3435][STO] Use syncWrite instead of doSyncWrite on persist

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

Details:
Query threads could persist a page when reading from cloud.
As such threads could be interrupted, this may also
interrupt when persisting a page locally -- leading
to closing the file channel.

Change-Id: Iab15b9cd89339713dbe120fd1212ddd89f8db97a
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18380
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/AbstractCloudIOManager.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/AbstractCloudIOManager.java
index 4ca9f59..c0823af 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/AbstractCloudIOManager.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/AbstractCloudIOManager.java
@@ -182,7 +182,8 @@
 
     @Override
     public final int localWriter(IFileHandle fHandle, long offset, ByteBuffer data) throws HyracksDataException {
-        return localIoManager.doSyncWrite(fHandle, offset, data);
+        // Using syncWrite here to avoid closing the file channel when the thread is interrupted
+        return localIoManager.syncWrite(fHandle, offset, data);
     }
 
     @Override
diff --git a/hyracks-fullstack/hyracks/hyracks-cloud/src/main/java/org/apache/hyracks/cloud/buffercache/context/BufferCacheCloudReadContextUtil.java b/hyracks-fullstack/hyracks/hyracks-cloud/src/main/java/org/apache/hyracks/cloud/buffercache/context/BufferCacheCloudReadContextUtil.java
index 5674797..e209ff4 100644
--- a/hyracks-fullstack/hyracks/hyracks-cloud/src/main/java/org/apache/hyracks/cloud/buffercache/context/BufferCacheCloudReadContextUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-cloud/src/main/java/org/apache/hyracks/cloud/buffercache/context/BufferCacheCloudReadContextUtil.java
@@ -51,7 +51,6 @@
         // Next, write the header. This is like a "commit" for the page
         buffer.position(0);
         buffer.limit(RESERVED_HEADER_BYTES);
-        // TODO what if this failed to write fully? (e.g., it wrote the first 3 bytes of the multiplier)
         cloudIOManager.localWriter(fileHandle, offset, buffer);
 
         // After this point the header is written. We are sure the page is valid and has the correct multiplier