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;