| #if !adc_h |
| #define adc_h 1 |
| |
| /* For checking of L2-cache performance influence */ |
| /*#define IN_CORE_*/ |
| /*#define VIEW_FILE_OUTPUT*/ /* it can be used with IN_CORE only */ |
| |
| /* Optimizations: prefixed views and share-sorted views */ |
| /*#define OPTIMIZATION*/ |
| |
| #ifdef WINNT |
| #ifndef HAS_INT64 |
| typedef __int64 int64; |
| typedef int int32; |
| #endif |
| typedef unsigned __int64 uint64; |
| typedef unsigned int uint32; |
| #else |
| #ifndef HAS_INT64 |
| typedef long long int64; |
| typedef int int32; |
| #endif |
| typedef unsigned long long uint64; |
| typedef unsigned int uint32; |
| #endif |
| |
| #include "adcc.h" |
| #include "rbt.h" |
| |
| static int measbound=31415; /* upper limit on a view measre bound */ |
| |
| enum { smallestParent, prefixedParent, sharedSortParent, noneParent }; |
| |
| static const char* adcKeyword[]={ |
| "attrNum", |
| "measuresNum", |
| "tuplesNum", |
| "INVERSE_ENDIAN", |
| "fileName", |
| "class", |
| NULL |
| }; |
| |
| typedef struct ADCpar{ |
| int ndid; |
| int dim; |
| int mnum; |
| long long int tuplenum; |
| int inverse_endian; |
| const char *filename; |
| char clss; |
| } ADC_PAR; |
| |
| typedef struct { |
| int32 ndid; |
| char clss; |
| char adcName[MAX_FILE_FULL_PATH_SIZE]; |
| char adcInpFileName[MAX_FILE_FULL_PATH_SIZE]; |
| uint32 nd; |
| uint32 nm; |
| uint32 nInputRecs; |
| uint32 memoryLimit; |
| uint32 nTasks; |
| /* FILE *statf; */ |
| } ADC_VIEW_PARS; |
| |
| typedef struct job_pool{ |
| uint32 grpb; |
| uint32 nv; |
| uint32 nRows; |
| int64 viewOffset; |
| } JOB_POOL; |
| |
| typedef struct layer{ |
| uint32 layerIndex; |
| uint32 layerQuantityLimit; |
| uint32 layerCurrentPopulation; |
| } LAYER; |
| |
| typedef struct chunks{ |
| uint32 curChunkNum; |
| int64 chunkOffset; |
| uint32 posSubChunk; |
| uint32 curSubChunk; |
| } CHUNKS; |
| |
| typedef struct tuplevsize { |
| uint64 viewsize; |
| uint64 tuple; |
| } TUPLE_VIEWSIZE; |
| |
| typedef struct tupleones { |
| uint32 nOnes; |
| uint64 tuple; |
| } TUPLE_ONES; |
| |
| typedef struct { |
| char adcName[MAX_FILE_FULL_PATH_SIZE]; |
| uint32 retCode; |
| uint32 verificationFailed; |
| uint32 swapIt; |
| uint32 nTasks; |
| uint32 taskNumber; |
| int32 ndid; |
| |
| uint32 nTopDims; /* given number of dimension attributes */ |
| uint32 nm; /* number of measures */ |
| uint32 nd; /* number of parent's dimensions */ |
| uint32 nv; /* number of child's dimensions */ |
| |
| uint32 nInputRecs; |
| uint32 nViewRows; |
| uint32 totalOfViewRows; |
| uint32 nParentViewRows; |
| |
| int64 viewOffset; |
| int64 accViewFileOffset; |
| |
| uint32 inpRecSize; |
| uint32 outRecSize; |
| |
| uint32 memoryLimit; |
| unsigned char * memPool; |
| uint32 * inpDataBuffer; |
| |
| RBTree *tree; |
| |
| uint32 numberOfChunks; |
| CHUNKS *chunksParams; |
| |
| char adcLogFileName[MAX_FILE_FULL_PATH_SIZE]; |
| char inpFileName[MAX_FILE_FULL_PATH_SIZE]; |
| char viewFileName[MAX_FILE_FULL_PATH_SIZE]; |
| char chunksFileName[MAX_FILE_FULL_PATH_SIZE]; |
| char groupbyFileName[MAX_FILE_FULL_PATH_SIZE]; |
| char adcViewSizesFileName[MAX_FILE_FULL_PATH_SIZE]; |
| char viewSizesFileName[MAX_FILE_FULL_PATH_SIZE]; |
| |
| FILE *logf; |
| FILE *inpf; |
| FILE *viewFile; |
| FILE *fileOfChunks; |
| FILE *groupbyFile; |
| FILE *adcViewSizesFile; |
| FILE *viewSizesFile; |
| |
| int64 mSums[MAX_NUM_OF_MEAS]; |
| uint32 selection[MAX_NUM_OF_DIMS]; |
| int64 checksums[MAX_NUM_OF_MEAS]; /* view checksums */ |
| int64 totchs[MAX_NUM_OF_MEAS]; /* checksums of a group of views */ |
| |
| JOB_POOL *jpp; |
| LAYER *lpp; |
| uint32 nViewLimit; |
| uint32 groupby; |
| uint32 smallestParentLevel; |
| uint32 parBinRepTuple; |
| uint32 nRowsToRead; |
| uint32 fromParent; |
| |
| uint64 totalViewFileSize; /* in bytes */ |
| uint32 numberOfMadeViews; |
| uint32 numberOfViewsMadeFromInput; |
| uint32 numberOfPrefixedGroupbys; |
| uint32 numberOfSharedSortGroupbys; |
| } ADC_VIEW_CNTL; |
| #endif /* adc_h */ |