[Monetdb-developers] [Monetdb-checkins] MonetDB5/src/optimizer opt_joinpath.mx, , 1.21, 1.22

Romulo Goncalves R.A.Goncalves at cwi.nl
Thu Feb 7 20:00:24 CET 2008


Sjoerd Mullender wrote:
> On 2008-02-07 18:45, Romulo Goncalves wrote:
>> Update of /cvsroot/monetdb/MonetDB5/src/optimizer
>> In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv22937
>>
>> Modified Files:
>> 	opt_joinpath.mx 
>> Log Message:
>> Revert Martin code because it does not work. The code will remain, but commented
>> for future improvements as Martin suggested...
> 
> A better way to comment larger sections of code is to use #if 0/#endif. 
#ifdef 0

#endif

does not work:
mizer_la-opt_joinpath.o
/ufs/goncalve/MonetDB/MonetDB5/src/optimizer/opt_joinpath.mx:257:8: 
error: macro names must be identifiers
make[5]: *** [lib_optimizer_la-opt_joinpath.lo] Error 1
make[5]: Leaving directory 
`/export/scratch1/goncalve/MonetDB/debug/MonetDB5/build/src/optimizer'
make[4]: *** [all] Error 2
make[4]: Leaving directory 
`/export/scratch1/goncalve/MonetDB/debug/MonetDB5/build/src/optimizer'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory 
`/export/scratch1/goncalve/MonetDB/debug/MonetDB5/build/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory 
`/export/scratch1/goncalve/MonetDB/debug/MonetDB5/build/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory 
`/export/scratch1/goncalve/MonetDB/debug/MonetDB5/build'
make: *** [all] Error 2
[goncalve at amelia build]$ vim 
~/MonetDB/MonetDB5/src/optimizer/opt_joinpath.mx

Romulo
>   That nests.
> 
>>
>>
>> Index: opt_joinpath.mx
>> ===================================================================
>> RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_joinpath.mx,v
>> retrieving revision 1.21
>> retrieving revision 1.22
>> diff -u -d -r1.21 -r1.22
>> --- opt_joinpath.mx	7 Feb 2008 16:57:18 -0000	1.21
>> +++ opt_joinpath.mx	7 Feb 2008 17:44:59 -0000	1.22
>> @@ -231,22 +231,30 @@
>>  The join path optimizer takes a join sequence and
>>  attempts to minimize the intermediate result.
>>  The choice depends on a good estimate of intermediate
>> -results.SAMPLE_THRESHOLD_lOG
>> +results.
>>  For the time being, we use a simplistic model, based
>>  on the assumption that most joins are foreign key joins anyway.
>> +
>>  We use a sample based approach for sizeable  tables.
>> -The model is derived from the select statement.
>> +The model is derived from the select statement. However, we did not succeed.
>> +The code is now commented for future improvement.
>> +Final conclusion from this exercise is:
>> +The difference between the join input size and the join output size is not 
>> +the correct (or unique) metric which should be used to decide which order 
>> +should be used in the joinPath. 
>> +
>>  @c
>> -#define SAMPLE_THRESHOLD_lOG 17
>> +/*#define SAMPLE_THRESHOLD_lOG 17*/
>>  size_t
>>  ALGjoinCost(BAT *l, BAT *r)
>>  {
>> -	size_t lc, rc, lsize,rsize;
>> -	BAT *lsample, *rsample, *j;
>> +	size_t lc, rc;
>> +/*	size_t lsize,rsize;
>> +	BAT *lsample, *rsample, *j; */
>>  
>>  	lc = BATcount(l);
>>  	rc = BATcount(r);
>> -	if( lc > 100000 || rc > 100000){
>> +/*	if( lc > 100000 || rc > 100000){
>>  		lsize= MIN(lc/100, (1<<SAMPLE_THRESHOLD_lOG)/3);
>>  		lsample= BATsample(l,lsize);
>>  		BBPreclaim(lsample);
>> @@ -257,7 +265,7 @@
>>  		lsize= BATcount(j);
>>  		BBPreclaim(j);
>>  		return lsize;
>> -	}
>> +	}*/
>>  	if( l->ttype== TYPE_oid || r->htype== TYPE_oid )
>>  		return MIN(lc,rc);
>>  	return lc * rc;
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> Monetdb-checkins mailing list
>> Monetdb-checkins at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
> 
> 





More information about the developers-list mailing list