diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudColumnReadContext.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudColumnReadContext.java
index 7623698..fb3019f 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudColumnReadContext.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudColumnReadContext.java
@@ -154,12 +154,12 @@
         // TODO What if every other page is requested. That would do N/2 request, where N is the number of pages.
         // TODO This should be optimized in a way that minimizes the number of requests
 
-        int[] columnsOrders = columnRanges.getColumnsOrder();
+        int[] columnsOrder = columnRanges.getColumnsOrder();
         int i = 0;
-        int columnIndex = columnsOrders[i];
+        int columnIndex = columnsOrder[i];
         while (columnIndex > -1) {
             if (columnIndex < columnRanges.getNumberOfPrimaryKeys()) {
-                columnIndex = columnsOrders[++i];
+                columnIndex = columnsOrder[++i];
                 continue;
             }
 
@@ -168,7 +168,7 @@
             int lastPageIdx = firstPageIdx + columnRanges.getColumnNumberOfPages(columnIndex) - 1;
 
             // Advance to the next column to check if it has contiguous pages
-            columnIndex = columnsOrders[++i];
+            columnIndex = columnsOrder[++i];
             while (columnIndex > -1) {
                 int sharedPageCount = 0;
                 // Get the next column's start page ID
@@ -183,7 +183,7 @@
 
                 lastPageIdx += columnRanges.getColumnNumberOfPages(columnIndex) - sharedPageCount;
                 // Advance to the next column
-                columnIndex = columnsOrders[++i];
+                columnIndex = columnsOrder[++i];
             }
 
             if (lastPageIdx >= columnRanges.getTotalNumberOfPages()) {
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudMegaPageReadContext.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudMegaPageReadContext.java
index 21d5ce7..f28b2fd 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudMegaPageReadContext.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/buffercache/read/CloudMegaPageReadContext.java
@@ -116,7 +116,7 @@
              * - The operation is not a merge operation (the component will be deleted anyway)
              * - The disk has space
              *
-             * Note: 'emtpy' can be false while 'cloudOnly is true'. We cannot read from disk as the page can be
+             * Note: 'empty' can be false while 'cloudOnly is true'. We cannot read from disk as the page can be
              * evicted at any moment. In other words, the sweeper told us that it is going to evict this page; hence
              * 'cloudOnly' is true.
              */
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/tuples/ColumnMultiBufferProvider.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/tuples/ColumnMultiBufferProvider.java
index d7b0764..2a2926f 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/tuples/ColumnMultiBufferProvider.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/lsm/tuples/ColumnMultiBufferProvider.java
@@ -68,14 +68,14 @@
         ByteBuffer firstPage = readNext().duplicate();
         // Read the column's length
         length = ColumnUtil.readColumnLength(firstPage, startOffset, pageSize);
+        // +4-bytes after reading the length
+        startOffset += Integer.BYTES;
+        // -4-bytes after reading the length
+        length -= Integer.BYTES;
         // Get the remaining length of the column
         int remainingLength = length - firstPage.remaining();
         // Get the number of remaining pages this column occupies
         numberOfRemainingPages = getNumberOfRemainingPages(remainingLength, pageSize);
-        //+4-bytes after reading the length
-        startOffset += Integer.BYTES;
-        //-4-bytes after reading the length
-        length -= Integer.BYTES;
     }
 
     @Override
