You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by hu...@apache.org on 2015/12/29 04:29:46 UTC
incubator-hawq git commit: HAWQ-287. Control whether to pass data
locality prefer list to resource manager.
Repository: incubator-hawq
Updated Branches:
refs/heads/master 4835ec284 -> 2e604a223
HAWQ-287. Control whether to pass data locality prefer list to resource manager.
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/2e604a22
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/2e604a22
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/2e604a22
Branch: refs/heads/master
Commit: 2e604a223c4726b2a59a00feca145c1984ec03bc
Parents: 4835ec2
Author: hubertzhang <hz...@pivotal.io>
Authored: Tue Dec 29 11:26:15 2015 +0800
Committer: hubertzhang <hz...@pivotal.io>
Committed: Tue Dec 29 11:26:15 2015 +0800
----------------------------------------------------------------------
src/backend/cdb/cdbdatalocality.c | 29 +++++++++++++++++------------
src/backend/cdb/cdbvars.c | 1 +
src/backend/utils/misc/guc.c | 10 ++++++++++
src/include/cdb/cdbvars.h | 2 ++
4 files changed, 30 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2e604a22/src/backend/cdb/cdbdatalocality.c
----------------------------------------------------------------------
diff --git a/src/backend/cdb/cdbdatalocality.c b/src/backend/cdb/cdbdatalocality.c
index 3ab90b3..5951ba7 100644
--- a/src/backend/cdb/cdbdatalocality.c
+++ b/src/backend/cdb/cdbdatalocality.c
@@ -3991,19 +3991,24 @@ calculate_planner_segment_num(Query *query, QueryResourceLife resourceLife,
/*generate hostname-volumn pair to help RM to choose a host with
*maximum data locality(only when the vseg number less than host number)
*/
- context.host_context.size = context.dds_context.size;
- MemoryContextSwitchTo(context.datalocality_memorycontext);
- context.host_context.hostnameVolInfos = (HostnameVolumnInfo *) palloc(
- sizeof(HostnameVolumnInfo) * context.host_context.size);
- for (int i = 0; i < context.host_context.size; i++) {
- MemSet(&(context.host_context.hostnameVolInfos[i].hostname), 0,
- HOSTNAME_MAX_LENGTH);
- strncpy(context.host_context.hostnameVolInfos[i].hostname,
- context.dds_context.volInfos[i].hashEntry->key.hostname,
- HOSTNAME_MAX_LENGTH-1);
- context.host_context.hostnameVolInfos[i].datavolumn = context.dds_context.volInfos[i].datavolumn;
+ if(enable_prefer_list_to_rm){
+ context.host_context.size = context.dds_context.size;
+ MemoryContextSwitchTo(context.datalocality_memorycontext);
+ context.host_context.hostnameVolInfos = (HostnameVolumnInfo *) palloc(
+ sizeof(HostnameVolumnInfo) * context.host_context.size);
+ for (int i = 0; i < context.host_context.size; i++) {
+ MemSet(&(context.host_context.hostnameVolInfos[i].hostname), 0,
+ HOSTNAME_MAX_LENGTH);
+ strncpy(context.host_context.hostnameVolInfos[i].hostname,
+ context.dds_context.volInfos[i].hashEntry->key.hostname,
+ HOSTNAME_MAX_LENGTH-1);
+ context.host_context.hostnameVolInfos[i].datavolumn = context.dds_context.volInfos[i].datavolumn;
+ }
+ MemoryContextSwitchTo(context.old_memorycontext);
+ }else{
+ context.host_context.size = 0;
+ context.host_context.hostnameVolInfos = NULL;
}
- MemoryContextSwitchTo(context.old_memorycontext);
/* determine the random table segment number by the following 4 steps*/
/* Step1 we expect one split(block) processed by one virtual segment*/
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2e604a22/src/backend/cdb/cdbvars.c
----------------------------------------------------------------------
diff --git a/src/backend/cdb/cdbvars.c b/src/backend/cdb/cdbvars.c
index c2406c6..3b3c4be 100644
--- a/src/backend/cdb/cdbvars.c
+++ b/src/backend/cdb/cdbvars.c
@@ -289,6 +289,7 @@ bool datalocality_remedy_enable;
bool get_tmpdir_from_rm;
bool debug_fake_segmentnum;
bool debug_datalocality_time;
+bool enable_prefer_list_to_rm;
/* New HAWQ 2.0 basic GUCs. Some of these are duplicate variables, they are
* reserved to facilitate showing settings in hawq-site.xml. */
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2e604a22/src/backend/utils/misc/guc.c
----------------------------------------------------------------------
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 4caeee9..a08a812 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -4155,6 +4155,16 @@ static struct config_bool ConfigureNamesBool[] =
},
{
+ {"enable_prefer_list_to_rm;", PGC_USERSET, DEVELOPER_OPTIONS,
+ gettext_noop("Sets whether enable data locality prefer list passed to rm"),
+ NULL,
+ GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
+ },
+ &enable_prefer_list_to_rm,
+ true, NULL, NULL
+ },
+
+ {
{"datalocality_remedy_enable", PGC_USERSET, DEVELOPER_OPTIONS,
gettext_noop("Sets whether enable data locality remedy when nonlocal read"),
NULL,
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2e604a22/src/include/cdb/cdbvars.h
----------------------------------------------------------------------
diff --git a/src/include/cdb/cdbvars.h b/src/include/cdb/cdbvars.h
index ff55d75..8456337 100644
--- a/src/include/cdb/cdbvars.h
+++ b/src/include/cdb/cdbvars.h
@@ -1222,6 +1222,8 @@ extern int min_datasize_to_combine_segment;
extern int datalocality_algorithm_version;
extern int min_cost_for_each_query;
+extern bool enable_prefer_list_to_rm;
+
typedef enum
{
HASH_TO_RANDOM_BASEDON_DATALOCALITY = 0,