You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2017/03/13 20:56:09 UTC

[60/60] [abbrv] incubator-quickstep git commit: Refactored block loading order in StorageManager::loadBlockOrBlob.

Refactored block loading order in StorageManager::loadBlockOrBlob.


Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/5c3f12f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/5c3f12f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/5c3f12f2

Branch: refs/heads/dist-patch
Commit: 5c3f12f27bac417b290b6e40a725aab176788b2e
Parents: 7341952
Author: Zuyu Zhang <zu...@apache.org>
Authored: Sat Feb 11 11:24:54 2017 -0800
Committer: Zuyu Zhang <zu...@apache.org>
Committed: Mon Mar 13 13:54:57 2017 -0700

----------------------------------------------------------------------
 storage/StorageManager.cpp | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/5c3f12f2/storage/StorageManager.cpp
----------------------------------------------------------------------
diff --git a/storage/StorageManager.cpp b/storage/StorageManager.cpp
index c70eafa..cd4df40 100644
--- a/storage/StorageManager.cpp
+++ b/storage/StorageManager.cpp
@@ -663,10 +663,11 @@ StorageManager::BlockHandle StorageManager::loadBlockOrBlob(
   // already loaded before this function gets called.
   BlockHandle loaded_handle;
 
+  size_t num_slots = file_manager_->numSlots(block);
+  if (num_slots == 0) {
 #ifdef QUICKSTEP_DISTRIBUTED
-  // TODO(quickstep-team): Use a cost model to determine whether to load from
-  // a remote peer or the disk.
-  if (BlockIdUtil::Domain(block) != block_domain_) {
+    // TODO(quickstep-team): Use a cost model to determine whether to load from
+    // a remote peer or the disk.
     DLOG(INFO) << "Pulling Block " << BlockIdUtil::ToString(block) << " from a remote peer";
     const vector<string> peer_domain_network_addresses = getPeerDomainNetworkAddresses(block);
     for (const string &peer_domain_network_address : peer_domain_network_addresses) {
@@ -679,14 +680,13 @@ StorageManager::BlockHandle StorageManager::loadBlockOrBlob(
         return loaded_handle;
       }
     }
-
-    DLOG(INFO) << "Failed to pull Block " << BlockIdUtil::ToString(block)
-               << " from remote peers, so try to load from disk.";
-  }
+    LOG(WARNING) << "Failed to pull Block " << BlockIdUtil::ToString(block)
+                 << " from remote peers.";
 #endif
+  }
 
-  const size_t num_slots = file_manager_->numSlots(block);
-  DEBUG_ASSERT(num_slots != 0);
+  num_slots = file_manager_->numSlots(block);
+  CHECK_NE(num_slots, 0u);
   void *block_buffer = allocateSlots(num_slots, numa_node);
 
   const bool status = file_manager_->readBlockOrBlob(block, block_buffer, kSlotSizeBytes * num_slots);
@@ -713,6 +713,8 @@ void StorageManager::insertBlockHandleAfterLoad(const block_id block,
 
 void* StorageManager::allocateSlots(const std::size_t num_slots,
                                     const int numa_node) {
+  CHECK_NE(num_slots, 0u);
+
 #if defined(QUICKSTEP_HAVE_MMAP_LINUX_HUGETLB)
   static constexpr int kLargePageMmapFlags
       = MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB;