Changeset: 9ed89e343077 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9ed89e343077
Added Files:
sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.stable.err
sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.stable.out
Modified Files:
NT/installer32/cv64-32.sh
NT/installer64/cv32-64.sh
clients/mapiclient/stethoscope.c
clients/mapiclient/tomograph.c
clients/odbc/setup/Makefile.ag
clients/odbc/winsetup/Makefile.ag
gdk/gdk_atoms.c
monetdb5/mal/mal.h
monetdb5/mal/mal_dataflow.c
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_profiler.h
sql/backends/monet5/sql_scenario.c
sql/benchmarks/tpch/Tests/01-explain.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out
sql/common/sql_types.c
sql/server/rel_optimizer.c
sql/server/sql_mvc.c
sql/server/sql_parser.y
sql/server/sql_scan.c
sql/server/sql_scan.h
sql/storage/store.c
sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view1.sql
sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view2.sql
sql/test/BugTracker-2014/Tests/All
sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.sql
sql/test/BugTracker/Tests/between_with_column.SF-1959410.stable.err
sql/test/pg_regress/Tests/date.sql
sql/test/pg_regress/Tests/date.stable.err
sql/test/pg_regress/Tests/date.stable.out
sql/test/pg_regress/Tests/load.SQL.sh
sql/test/pg_regress/Tests/time.sql
sql/test/pg_regress/Tests/time.stable.err
sql/test/pg_regress/Tests/time.stable.out
sql/test/pg_regress/Tests/timestamp.sql
sql/test/pg_regress/Tests/timestamp.stable.err
sql/test/pg_regress/Tests/timestamp.stable.out
sql/test/pg_regress/Tests/timestamptz.sql
sql/test/pg_regress/Tests/timestamptz.stable.err
sql/test/pg_regress/Tests/timestamptz.stable.out
sql/test/pg_regress/Tests/timetz.sql
sql/test/pg_regress/Tests/timetz.stable.err
sql/test/pg_regress/Tests/timetz.stable.out
sql/test/pg_regress/postgresql2sql99.sh
testing/quicktest
Branch: transaction-replication
Log Message:
Merge with default branch
diffs (truncated from 8055 to 300 lines):
diff --git a/NT/installer32/cv64-32.sh b/NT/installer32/cv64-32.sh
--- a/NT/installer32/cv64-32.sh
+++ b/NT/installer32/cv64-32.sh
@@ -19,13 +19,13 @@
# this script is mostly to document what I did, not for regular use.
cp ../installer64/*.{vdproj,sln} .
-sed -i -e '/TargetPlatform/s/3:1/3:0/' \
- -e 's/win64/win32/' \
- -e 's/\[ProgramFiles64Folder\]/[ProgramFilesFolder]/' \
- -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge
Modules\\\\Microsoft_VC100_CRT_x64.msm/C:\\\\Program Files\\\\Common
Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86.msm/' \
- -e 's/"ProductCode" = "8:{.*/"ProductCode" =
"8:{66BABD32-D69D-4A89-A7F3-2655D4CD0641}"/' \
- -e 's/"PackageCode" = "8:{.*/"PackageCode" =
"8:{D9B2D386-1461-43BC-9A63-93F1BA0D7921}"/' \
- -e 's/"UpgradeCode" =
"8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/"UpgradeCode" =
"8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/' \
- -e 's/"UpgradeCode" =
"8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/"UpgradeCode" =
"8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/' \
- -e 's/"UpgradeCode" =
"8:{839D3C90-B578-41E2-A004-431440F9E899}"/"UpgradeCode" =
"8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/' \
+sed -i~ -e '/TargetPlatform/s/3:1/3:0/' \
+ -e 's/win64/win32/' \
+ -e 's/\[ProgramFiles64Folder\]/[ProgramFilesFolder]/' \
+ -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge
Modules\\\\Microsoft_VC100_CRT_x64.msm/C:\\\\Program Files\\\\Common
Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86.msm/' \
+ -e 's/"ProductCode" = "8:{.*/"ProductCode" =
"8:{66BABD32-D69D-4A89-A7F3-2655D4CD0641}"/' \
+ -e 's/"PackageCode" = "8:{.*/"PackageCode" =
"8:{D9B2D386-1461-43BC-9A63-93F1BA0D7921}"/' \
+ -e 's/"UpgradeCode" =
"8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/"UpgradeCode" =
"8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/' \
+ -e 's/"UpgradeCode" =
"8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/"UpgradeCode" =
"8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/' \
+ -e 's/"UpgradeCode" =
"8:{839D3C90-B578-41E2-A004-431440F9E899}"/"UpgradeCode" =
"8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/' \
*.vdproj
diff --git a/NT/installer64/cv32-64.sh b/NT/installer64/cv32-64.sh
--- a/NT/installer64/cv32-64.sh
+++ b/NT/installer64/cv32-64.sh
@@ -19,13 +19,13 @@
# this script is mostly to document what I did, not for regular use.
cp ../installer32/*.{vdproj,sln} .
-sed -i -e '/TargetPlatform/s/3:0/3:1/' \
- -e 's/win32/win64/' \
- -e 's/\[ProgramFilesFolder\]/[ProgramFiles64Folder]/' \
- -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge
Modules\\\\Microsoft_VC100_CRT_x86.msm/C:\\\\Program Files\\\\Common
Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86_x64.msm/' \
- -e 's/"ProductCode" = "8:{.*/"ProductCode" =
"8:{ACC32EDD-13CE-4079-A6E7-D9DD94DA42EE}"/' \
- -e 's/"PackageCode" = "8:{.*/"PackageCode" =
"8:{332EB6D8-73DD-48CA-83E7-BB1922FFE3BD}"/' \
- -e 's/"UpgradeCode" =
"8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/"UpgradeCode" =
"8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/' \
- -e 's/"UpgradeCode" =
"8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/"UpgradeCode" =
"8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/' \
- -e 's/"UpgradeCode" =
"8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/"UpgradeCode" =
"8:{839D3C90-B578-41E2-A004-431440F9E899}"/' \
+sed -i~ -e '/TargetPlatform/s/3:0/3:1/' \
+ -e 's/win32/win64/' \
+ -e 's/\[ProgramFilesFolder\]/[ProgramFiles64Folder]/' \
+ -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge
Modules\\\\Microsoft_VC100_CRT_x86.msm/C:\\\\Program Files\\\\Common
Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86_x64.msm/' \
+ -e 's/"ProductCode" = "8:{.*/"ProductCode" =
"8:{ACC32EDD-13CE-4079-A6E7-D9DD94DA42EE}"/' \
+ -e 's/"PackageCode" = "8:{.*/"PackageCode" =
"8:{332EB6D8-73DD-48CA-83E7-BB1922FFE3BD}"/' \
+ -e 's/"UpgradeCode" =
"8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/"UpgradeCode" =
"8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/' \
+ -e 's/"UpgradeCode" =
"8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/"UpgradeCode" =
"8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/' \
+ -e 's/"UpgradeCode" =
"8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/"UpgradeCode" =
"8:{839D3C90-B578-41E2-A004-431440F9E899}"/' \
*.vdproj
diff --git a/clients/mapiclient/stethoscope.c b/clients/mapiclient/stethoscope.c
--- a/clients/mapiclient/stethoscope.c
+++ b/clients/mapiclient/stethoscope.c
@@ -39,7 +39,7 @@
# endif
#endif
-#define COUNTERSDEFAULT "ISTest"
+#define COUNTERSDEFAULT "ISTestn"
/* #define _DEBUG_STETHOSCOPE_*/
@@ -84,7 +84,8 @@ static struct {
/* 2 */ { 'D', "dot", "dot", 0 },
/* 3 */ { 'F', "flow", "flow", 0 },
/* 4 */ { 'M', "footprint", "footprint", 0 },
- /* 5 */ { 0, 0, 0, 0 }
+ /* 5 */ { 'n', "numa","numa",0},
+ /* 6 */ { 0, 0, 0, 0 }
};
static stream *conn = NULL;
@@ -112,6 +113,7 @@ usage(void)
fprintf(stderr, " c = cpu statistics (utime,ctime,stime,cstime)\n");
fprintf(stderr, " m = rss memory as provided by OS (in MB)\n");
fprintf(stderr, " M = memory footprint of non-persistent objects\n");
+ fprintf(stderr, " n = numa intra socket data flow\n");
fprintf(stderr, " r = block reads\n");
fprintf(stderr, " w = block writes\n");
fprintf(stderr, " b = bytes read/written\n");
diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -58,13 +58,11 @@
/* #define FOOTPRINT */
#ifdef FOOTPRINT
-#define COUNTERSDEFAULT "ISTestMmrw"
+#define COUNTERSDEFAULT "ISTestMmrwn"
#else
-#define COUNTERSDEFAULT "ISTestmrw"
+#define COUNTERSDEFAULT "ISTestmrwn"
#endif
-/* #define _DEBUG_TOMOGRAPH_*/
-
static struct {
char tag;
char *ptag; /* which profiler group counter is needed */
@@ -110,7 +108,8 @@ profileCounter[] = {
#ifdef FOOTPRINT
/* 5 */ { 'M', "footprint", "footprint", 0 },
#endif
- /* 6 */ { 0, 0, 0, 0 }
+ /* 6 */ { 'n', "numa", "numa", 0 },
+ /* 7 */ { 0, 0, 0, 0 }
};
typedef struct _wthread {
@@ -157,6 +156,57 @@ static FILE *gnudata;
static int capturing=0;
+#define MAXTHREADS 1048
+#define MAXBOX 32678 /* should be > MAXTHREADS */
+
+static int crossings[MAXTHREADS][MAXTHREADS];
+static int target[MAXTHREADS];
+static int source[MAXTHREADS];
+
+static void
+showNumaHeatmap(void){
+ int i,j =0;
+ int max= 0;
+ FILE *f;
+
+
+ f= fopen("tomograph_heatmap.csv","a");
+ if( f == NULL){
+ fprintf(stderr,"Can not create tomograph_heatmap.csv\n");
+ return;
+ }
+ for( i=0; i< MAXTHREADS; i++){
+ if( target[i])
+ for(j=MAXTHREADS-1; j>0 && crossings[i][j]; j--)
+ ;
+ if (j > max) max =j;
+ }
+ for( i=0; i< max; i++)
+ if( target[i] && source[i] ){
+ for(j=0; j< max; j++)
+ if( target[j] && source[j])
+ fprintf(stderr,"%d\t", crossings[i][j]);
+ fprintf(stderr,"\n");
+ }
+/*
+ for( i=0; i< max; i++)
+ if( target[i] || source[i])
+ fprintf(stderr,"%d\t",target[i]);
+ fprintf(stderr,"\n");
+ for( i=0; i< max; i++)
+ if( target[i] || source[i])
+ fprintf(stderr,"%d\t",source[i]);
+ fprintf(stderr,"\n");
+*/
+
+ for( i=0; i< MAXTHREADS; i++){
+ for(j=0; j< MAXTHREADS; j++)
+ crossings[i][j]=0;
+ target[i]=0;
+ source[i]=0;
+ }
+}
+
static void
usage(void)
{
@@ -293,8 +343,6 @@ stop_disconnect:
}
}
-#define MAXTHREADS 2048
-#define MAXBOX 32678 /* should be > MAXTHREADS */
#define START 1
#define DONE 2
@@ -303,6 +351,8 @@ stop_disconnect:
#define WAIT 5
#define GCOLLECT 6
+static char *statenames[]=
{"","start","done","action","ping","wait","gccollect"};
+
typedef struct BOX {
int row;
int color;
@@ -314,6 +364,7 @@ typedef struct BOX {
lng reads, writes;
char *stmt;
char *fcn;
+ char *numa;
int state;
} Box;
@@ -1548,6 +1599,7 @@ static void createTomogram(void)
}
+
fprintf(gnudata, "plot 0 notitle with lines\n");
fprintf(gnudata, "unset for[i=%d:%d] object i\n", prevobject, object -
1);
prevobject = object - 1;
@@ -1556,6 +1608,7 @@ static void createTomogram(void)
keepdata(filename);
(void) fclose(gnudata);
gnudata = 0;
+ showNumaHeatmap();
// show follow up action only once
if (atlas && atlaspage == atlas-1) {
@@ -1576,6 +1629,23 @@ static void createTomogram(void)
}
}
+/* The intra-thread flow is collected for later presentation */
+
+
+static void
+updateNumaHeatmap(int thread, char *numa){
+ char *c;
+ int t;
+ for( c= numa; *c && *c == '@';){
+ c++;
+ t =atoi(c);
+ crossings[thread][t]++;
+ target[thread]++;
+ source[t]++;
+ while(*c && *c !='@') c++;
+ }
+}
+
/* the main issue to deal with in the analysis is
* that the tomograph start can appear while the
* system is already processing. This leads to
@@ -1586,19 +1656,23 @@ static void createTomogram(void)
*/
static void
-update(int state, int thread, lng clkticks, lng ticks, lng memory, lng
footprint, lng reads, lng writes, char *fcn, char *stmt)
+update(int state, int thread, lng clkticks, lng ticks, lng memory, char *numa,
lng footprint, lng reads, lng writes, char *fcn, char *stmt)
{
int idx;
Box b;
char *s;
+ if (debug)
+ fprintf(stderr, "Update %s batch %d input %s %s" LLFMT"
%s\n",(state>=0?statenames[state]:"unknown"),batch,
(fcn?fcn:"(null)"),currentfunction,starttime,numa);
/* ignore the flow of control statements 'function' and 'end' */
- if (fcn && strncmp(fcn, "end ", 4) == 0) {
+ if (fcn && strncmp(fcn, "end ", 4) == 0)
return;
- }
+
if (starttime == 0) {
/* ignore all instructions up to the first function call,
unless input comes from a file */
- if (inputfile == NULL && (state >= PING || fcn == 0 ||
strncmp(fcn, "function", 8))) {
+ if (inputfile == NULL && (state >= PING || fcn == 0 )) {
+ if (debug)
+ fprintf(stderr, "Skip %s input
%s\n",(state>=0?statenames[state]:"unknown"),fcn);
return;
}
if (debug)
@@ -1618,11 +1692,12 @@ update(int state, int thread, lng clktic
return;
}
if (state == DONE && fcn && strncmp(fcn, "function", 8) == 0) {
+ if(debug)
+ fprintf(stderr, "Leave function \"%s\" capture
\"%s\"?\n", (currentfunction?currentfunction:""), fcn+9);
if (currentfunction && strcmp(currentfunction, fcn+9) == 0) {
capturing--;
-#ifdef _DEBUG_TOMOGRAPH_
- fprintf(stderr, "Leave function %s capture %d\n",
currentfunction, capturing);
-#endif
+ if(debug)
+ fprintf(stderr, "Leave function %s capture
%d\n", currentfunction, capturing);
free(currentfunction);
currentfunction = 0;
} else
@@ -1642,9 +1717,8 @@ update(int state, int thread, lng clktic
}
if (state == DONE && fcn && strncmp(fcn, "profiler.tomograph", 18) ==
0) {
-#ifdef _DEBUG_TOMOGRAPH_
- fprintf(stderr, "Profiler.tomograph ends %d\n", batch);
-#endif
+ if( debug)
+ fprintf(stderr, "Profiler.tomograph ends %d\n", batch);
deactivateBeat();
createTomogram();
totalclkticks = 0; /* number of clock ticks reported */
@@ -1700,22 +1774,22 @@ update(int state, int thread, lng clktic
idx = threads[thread];
/* start of instruction box */
if (state == START && thread < MAXTHREADS) {
-#ifdef _DEBUG_TOMOGRAPH_
- fprintf(stderr, "Start box %s thread %d idx %d box %d\n",
currentfunction, thread,idx,topbox);
-#endif
+ if(debug)
+ fprintf(stderr, "Start box %s thread %d idx %d box
%d\n", currentfunction, thread,idx,topbox);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list