[Monetdb-developers] MonetDB: holindex - Initial step for holistic indexing.

Stefan Manegold Stefan.Manegold at cwi.nl
Tue Apr 24 10:32:48 CEST 2012


Eleni,

you might also want to checkin your new files that are required to compile
your code ;-)

Thanks,
Stefan

On Tue, Apr 24, 2012 at 10:06:06AM +0200, Eleni Petraki wrote:
> Changeset: 71b71ebda4e6 for MonetDB
> URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=71b71ebda4e6
> Modified Files:
> 	monetdb5/extras/crackers/60_crackers.mal
> 	monetdb5/extras/crackers/Makefile.ag
> 	monetdb5/extras/crackers/crackers.mx
> 	monetdb5/optimizer/opt_pipes.c
> 	monetdb5/optimizer/opt_support.c
> 	monetdb5/optimizer/opt_support.h
> Branch: holindex
> Log Message:
> 
> Initial step for holistic indexing.
> I implemented an operator that initializes with zero the weights in a list.
> 
> 
> diffs (175 lines):
> 
> diff --git a/monetdb5/extras/crackers/60_crackers.mal b/monetdb5/extras/crackers/60_crackers.mal
> --- a/monetdb5/extras/crackers/60_crackers.mal
> +++ b/monetdb5/extras/crackers/60_crackers.mal
> @@ -19,5 +19,6 @@
>  library crackers;
>  include opt_selcrack;
>  include opt_selcrackst;
> +include opt_selcrackhol;
>  include crackers;
>  
> diff --git a/monetdb5/extras/crackers/Makefile.ag b/monetdb5/extras/crackers/Makefile.ag
> --- a/monetdb5/extras/crackers/Makefile.ag
> +++ b/monetdb5/extras/crackers/Makefile.ag
> @@ -35,9 +35,13 @@ lib_crackers = {
>  			  crackers_index.mx \
>  			  crackers_core_unordered.mx \
>  			  crackers_select_ops.mx \
> +			  crackers_holistic.c \
> +			  crackers_holistic.h \
>  			  crackers_selectst_ops.mx \
> +			  crackers_selecthol_ops.mx \
>  			  opt_selcrack.mx \
> -			  opt_selcrackst.mx 
> +			  opt_selcrackst.mx \
> +			  opt_selcrackhol.mx 
>  	LIBS = ../../tools/libmonetdb5 \
>  		   ../../../gdk/libbat \
>  		   ../../../common/stream/libstream \
> @@ -49,7 +53,8 @@ headers_mal = {
>  	DIR = libdir/monetdb5
>  	SOURCES = crackers.mx \
>  			  opt_selcrack.mx \
> -			  opt_selcrackst.mx
> +			  opt_selcrackst.mx \
> +			  opt_selcrackhol.mx
>  }
>  
>  headers_crackersautoload = {
> diff --git a/monetdb5/extras/crackers/crackers.mx b/monetdb5/extras/crackers/crackers.mx
> --- a/monetdb5/extras/crackers/crackers.mx
> +++ b/monetdb5/extras/crackers/crackers.mx
> @@ -239,6 +239,55 @@ address CRKthetaselectst_ at 2
>  comment "Retrieve the subset using a cracker
>          index producing preferably a BATview.";
>  
> +
> +command selecthol(b:bat[:oid,:@2],l:@2,h:@2):bat[:oid,:@2]
> +address CRKselecthol_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command selecthol(b:bat[:oid,:@2],l:@2):bat[:oid,:@2]
> +address CRKselectholValue_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command selecthol(b:bat[:oid,:@2],l:@2,h:@2,li:bit,hi:bit):bat[:oid,:@2]
> +address CRKselectholBounds_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command uselecthol(b:bat[:any_1,:@2],l:@2,h:@2):bat[:any_1,:void]
> +address CRKuselecthol_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command uselecthol(b:bat[:any_1,:@2],l:@2):bat[:any_1,:void]
> +address CRKuselectholValue_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command uselecthol(b:bat[:any_1,:@2],l:@2,h:@2,li:bit,hi:bit):bat[:any_1,:void]
> +address CRKuselectholBounds_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command thetauselecthol(b:bat[:any_1,:@2],v:@2,op:str):bat[:any_1,:void]
> +address CRKthetauselecthol_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command thetaselecthol(b:bat[:any_1,:@2],v:@2,op:str):bat[:any_1,:@2]
> +address CRKthetaselecthol_ at 2
> +comment "Retrieve the subset using a cracker
> +        index producing preferably a BATview.";
> +
> +command initFrequencyStruct(b:bat[:any_1,:@2]):void
> +address CRKinitFrequencyStruct_ at 2
> +comment "Initialize the struct(lifo) with zero values.";
> +
> +command selectNode(l:int,h:int):void
> +address CRKselectNode
> +comment "Select node/BAT to crack (randomly).";
> +
>  @
>  @= Index
>  command printCrackerIndexBATpart(b:bat[:any_1,:@2]):void
> @@ -296,12 +345,15 @@ comment "Break a BAT into three pieces w
>  #include "crackers_index.h"
>  #include "crackers_select_ops.h"
>  #include "crackers_selectst_ops.h"
> +#include "crackers_selecthol_ops.h"
> +#include "crackers_holistic.h"
>  #include "crackers_core_unordered.h"
>  #include "crackers_AVL_tree.h"
>  
>  #ifdef LIBCRACKERS 
>  extern int maxCrackMap;
>  extern CrackerIndexNode *CrackerIndex;
> +extern FrequencyNode *FrequencyStruct;
>  extern int IndexEntries;
>  extern int IndexSize;
>  extern int IndexStop;
> @@ -323,6 +375,7 @@ extern struct storageManagement *Storage
>  int maxCrackMap = 0;
>  
>  CrackerIndexNode *CrackerIndex;
> +FrequencyNode *FrequencyStruct;
>  
>  struct storageManagement *StorageInfo = NULL;
>  
> diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
> --- a/monetdb5/optimizer/opt_pipes.c
> +++ b/monetdb5/optimizer/opt_pipes.c
> @@ -296,6 +296,28 @@ struct PIPELINES {
>           "optimizer.multiplex();"
>           "optimizer.garbageCollector();",
>           "experimental", "OPTselcrackst", 0},
> +/*The HOLISTIC indexing pipeline*/
> +        {"crackerhol_pipe",
> +         "optimizer.inline();"
> +         "optimizer.remap();"
> +         "optimizer.evaluate();"
> +         "optimizer.costModel();"
> +         "optimizer.coercions();"
> +         "optimizer.emptySet();"
> +         "optimizer.aliases();"
> +         "optimizer.selcrackhol();"
> +         "optimizer.deadcode();"
> +         "optimizer.commonTerms();"
> +         "optimizer.groups();"
> +         "optimizer.joinPath();"
> +         "optimizer.reorder();"
> +         "optimizer.deadcode();"
> +         "optimizer.reduce();"
> +         "optimizer.dataflow();"
> +         "optimizer.history();"
> +         "optimizer.multiplex();"
> +         "optimizer.garbageCollector();",
> +         "experimental", "OPTselcrackhol", 0},
>  
>  
>  	{"sidcrack_pipe",
> diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
> --- a/monetdb5/optimizer/opt_support.c
> +++ b/monetdb5/optimizer/opt_support.c
> @@ -603,6 +603,7 @@ struct OPTcatalog {
>  {"replication",	0,	0,	0,	DEBUG_OPT_REPLICATION},
>  {"selcrack",	0,	0,	0,	DEBUG_OPT_SELCRACK},
>  {"selcrackst",  0,      0,      0,      DEBUG_OPT_SELCRACKST},
> +{"selcrackhol",  0,      0,      0,      DEBUG_OPT_SELCRACKHOL},
>  {"sidcrack",	0,	0,	0,	DEBUG_OPT_SIDCRACK},
>  {"singleton",	0,	0,	0,	DEBUG_OPT_SINGLETON},
>  {"strengthreduction",	0,	0,	0,	DEBUG_OPT_STRENGTHREDUCTION},
> diff --git a/monetdb5/optimizer/opt_support.h b/monetdb5/optimizer/opt_support.h
> --- a/monetdb5/optimizer/opt_support.h
> +++ b/monetdb5/optimizer/opt_support.h
> @@ -93,6 +93,7 @@
>  #define DEBUG_OPT_HEURISTIC			49
>  #define DEBUG_OPT_CENTIPEDE			50
>  #define DEBUG_OPT_SELCRACKST                    51
> +#define DEBUG_OPT_SELCRACKHOL                   52
>  
>  #define DEBUG_OPT(X) ((lng) 1 << (X))
>  opt_export lng optDebug;
> _______________________________________________
> Checkin-list mailing list
> Checkin-list at monetdb.org
> http://mail.monetdb.org/mailman/listinfo/checkin-list

-- 
| Stefan.Manegold @ CWI.nl | DB Architectures (INS1) |
| http://CWI.nl/~manegold/ | Science Park 123 (L321) |
| Tel.: +31 (0)20 592-4212 | 1098 XG Amsterdam  (NL) |




More information about the developers-list mailing list