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 2016/05/27 03:22:59 UTC
[08/50] [abbrv] incubator-quickstep git commit: Cleanup in Preloader
thread.
Cleanup in Preloader thread.
- Added missing include
- More informational log messages.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/d41da165
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/d41da165
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/d41da165
Branch: refs/heads/preloader-cleanup
Commit: d41da165a3cb5511852778ed915dfdc12875d87d
Parents: a3889a3
Author: Harshad Deshmukh <ha...@cs.wisc.edu>
Authored: Wed May 4 21:20:29 2016 -0500
Committer: Harshad Deshmukh <ha...@cs.wisc.edu>
Committed: Wed May 4 21:20:29 2016 -0500
----------------------------------------------------------------------
storage/PreloaderThread.cpp | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/d41da165/storage/PreloaderThread.cpp
----------------------------------------------------------------------
diff --git a/storage/PreloaderThread.cpp b/storage/PreloaderThread.cpp
index 8f600b8..8960e65 100644
--- a/storage/PreloaderThread.cpp
+++ b/storage/PreloaderThread.cpp
@@ -29,6 +29,7 @@
#include "catalog/CatalogTypedefs.hpp"
#include "storage/StorageBlock.hpp"
#include "storage/StorageBlockInfo.hpp"
+#include "storage/StorageConfig.h"
#include "storage/StorageManager.hpp"
#include "threading/ThreadUtil.hpp"
@@ -55,22 +56,27 @@ void PreloaderThread::run() {
std::vector<block_id> blocks = relation.getBlocksSnapshot();
for (block_id current_block_id : blocks) {
try {
- BlockReference current_block = storage_manager_->getBlock(current_block_id, relation);
+ BlockReference current_block =
+ storage_manager_->getBlock(current_block_id, relation);
} catch (...) {
LOG(ERROR) << "Error after loading " << blocks_loaded << "blocks\n";
throw;
}
++blocks_loaded;
if (blocks_loaded == num_slots) {
- // The buffer pool has filled up. But, some database blocks are not loaded.
- printf(" The database is larger than the buffer pool. Only %lu blocks were loaded ",
- blocks_loaded);
+ // The buffer pool has filled up. But, some database blocks are not
+ // loaded.
+ printf(
+ " The database is larger than the buffer pool. Only %lu blocks "
+ "were loaded", blocks_loaded);
return;
}
}
+ LOG(INFO) << "Relation " << relation.getName()
+ << " completely preloaded in buffer pool\n";
}
}
- printf(" Loaded %lu blocks ", blocks_loaded);
+ printf("Loaded %lu blocks", blocks_loaded);
}
std::size_t PreloaderThread::preloadNUMAAware(
@@ -79,7 +85,8 @@ std::size_t PreloaderThread::preloadNUMAAware(
const std::size_t num_slots) {
#ifdef QUICKSTEP_HAVE_LIBNUMA
std::size_t blocks_loaded = 0;
- const NUMAPlacementScheme *placement_scheme = relation.getNUMAPlacementSchemePtr();
+ const NUMAPlacementScheme *placement_scheme =
+ relation.getNUMAPlacementSchemePtr();
DCHECK(placement_scheme != nullptr);
DCHECK(relation.hasPartitionScheme());
const PartitionScheme &part_scheme = relation.getPartitionScheme();
@@ -98,13 +105,14 @@ std::size_t PreloaderThread::preloadNUMAAware(
} catch (...) {
LOG(ERROR) << "Error after loading "
<< blocks_loaded + num_previously_loaded_blocks
- << " blocks\n";
+ << " blocks of relation " << relation.getName() << "\n";
throw;
}
++blocks_loaded;
num_blocks_loaded[partition_numa_node_id]++;
if ((blocks_loaded + num_previously_loaded_blocks) == num_slots) {
- // The buffer pool has filled up. But, some database blocks are not loaded.
+ // The buffer pool has filled up. But, some database blocks are not
+ // loaded.
printf(
" The database is larger than the buffer pool. Only %lu blocks "
"were loaded ",
@@ -116,8 +124,11 @@ std::size_t PreloaderThread::preloadNUMAAware(
LOG(INFO) << "For relation: " << relation.getName();
for (auto numa_block_loaded_info : num_blocks_loaded) {
LOG(INFO) << "NUMA node: " << numa_block_loaded_info.first
- << " Number of loaded blocks: " << numa_block_loaded_info.second;
+ << " Number of loaded blocks: "
+ << numa_block_loaded_info.second;
}
+ LOG(INFO) << "Relation " << relation.getName()
+ << " completely preloaded in buffer pool in a NUMA aware fashion";
return blocks_loaded;
#else
LOG(INFO) << "Relation: " << relation.getName()