|
Multi-core Hash Joins
Main-memory hash join implementations for multi-core CPUs
|
Macros | |
| #define | CACHE_LINE_SIZE 64 |
| #define | L1_CACHE_SIZE 32768 |
| #define | L1_ASSOCIATIVITY 8 |
| #define | L1_CACHE_TUPLES (L1_CACHE_SIZE/sizeof(tuple_t)) |
| #define | THRESHOLD1(NTHR) (NTHR*L1_CACHE_TUPLES) |
| #define | THRESHOLD2(NTHR) (NTHR*NTHR*L1_CACHE_TUPLES) |
| #define | PASS1RADIXBITS (NUM_RADIX_BITS/NUM_PASSES) |
| #define | PASS2RADIXBITS (NUM_RADIX_BITS-(NUM_RADIX_BITS/NUM_PASSES)) |
| #define | FANOUT_PASS1 (1 << (NUM_RADIX_BITS/NUM_PASSES)) |
| #define | FANOUT_PASS2 (1 << (NUM_RADIX_BITS-(NUM_RADIX_BITS/NUM_PASSES))) |
| #define | SMALL_PADDING_TUPLES (3 * CACHE_LINE_SIZE/sizeof(tuple_t)) |
| #define | PADDING_TUPLES (SMALL_PADDING_TUPLES*(FANOUT_PASS2+1)) |
| #define | RELATION_PADDING (PADDING_TUPLES*FANOUT_PASS1*sizeof(tuple_t)) |
Whether to use software write-combining optimized partitioning, see –enable-optimized-part config option
Various system specific parameters such as cache/cache-line sizes, associativity, etc.
| #define CACHE_LINE_SIZE 64 |
L1 cache parameters.
Definition at line 43 of file prj_params.h.
| #define FANOUT_PASS1 (1 << (NUM_RADIX_BITS/NUM_PASSES)) |
Definition at line 79 of file prj_params.h.
| #define FANOUT_PASS2 (1 << (NUM_RADIX_BITS-(NUM_RADIX_BITS/NUM_PASSES))) |
Definition at line 81 of file prj_params.h.
| #define L1_ASSOCIATIVITY 8 |
L1 associativity
Definition at line 53 of file prj_params.h.
| #define L1_CACHE_SIZE 32768 |
L1 cache size
Definition at line 48 of file prj_params.h.
| #define L1_CACHE_TUPLES (L1_CACHE_SIZE/sizeof(tuple_t)) |
number of tuples fitting into L1
Definition at line 57 of file prj_params.h.
| #define PADDING_TUPLES (SMALL_PADDING_TUPLES*(FANOUT_PASS2+1)) |
Definition at line 89 of file prj_params.h.
| #define PASS1RADIXBITS (NUM_RADIX_BITS/NUM_PASSES) |
}
Definition at line 75 of file prj_params.h.
| #define PASS2RADIXBITS (NUM_RADIX_BITS-(NUM_RADIX_BITS/NUM_PASSES)) |
Definition at line 76 of file prj_params.h.
| #define RELATION_PADDING (PADDING_TUPLES*FANOUT_PASS1*sizeof(tuple_t)) |
Definition at line 92 of file prj_params.h.
| #define SMALL_PADDING_TUPLES (3 * CACHE_LINE_SIZE/sizeof(tuple_t)) |
Put an odd number of cache lines between partitions in pass-2: Here we put 3 cache lines.
Definition at line 88 of file prj_params.h.
| #define THRESHOLD1 | ( | NTHR | ) | (NTHR*L1_CACHE_TUPLES) |
thresholds for skewed partitions in 3-phase parallel join
Definition at line 63 of file prj_params.h.
| #define THRESHOLD2 | ( | NTHR | ) | (NTHR*NTHR*L1_CACHE_TUPLES) |
Definition at line 64 of file prj_params.h.