final protected void buildBloomFilterForBucketsInPartition(int partNum, HashPartition<BT, PT> partition) { // Find all the buckets which belongs to this partition, and build bloom filter for each bucket(include its overflow buckets). final int bucketsPerSegment = this.bucketsPerSegmentMask + 1; int numSegs = this.buckets.length; // go over all segments that are part of the table for (int i = 0, bucket = 0; i < numSegs && bucket < numBuckets; i++) { final MemorySegment segment = this.buckets[i]; // go over all buckets in the segment for (int k = 0; k < bucketsPerSegment && bucket < numBuckets; k++, bucket++) { final int bucketInSegmentOffset = k * HASH_BUCKET_SIZE; byte partitionNumber = segment.get(bucketInSegmentOffset + HEADER_PARTITION_OFFSET); if (partitionNumber == partNum) { byte status = segment.get(bucketInSegmentOffset + HEADER_STATUS_OFFSET); if (status == BUCKET_STATUS_IN_MEMORY) { buildBloomFilterForBucket(bucketInSegmentOffset, segment, partition); } } } } }
final protected void buildBloomFilterForBucketsInPartition(int partNum, HashPartition<BT, PT> partition) { // Find all the buckets which belongs to this partition, and build bloom filter for each bucket(include its overflow buckets). final int bucketsPerSegment = this.bucketsPerSegmentMask + 1; int numSegs = this.buckets.length; // go over all segments that are part of the table for (int i = 0, bucket = 0; i < numSegs && bucket < numBuckets; i++) { final MemorySegment segment = this.buckets[i]; // go over all buckets in the segment for (int k = 0; k < bucketsPerSegment && bucket < numBuckets; k++, bucket++) { final int bucketInSegmentOffset = k * HASH_BUCKET_SIZE; byte partitionNumber = segment.get(bucketInSegmentOffset + HEADER_PARTITION_OFFSET); if (partitionNumber == partNum) { byte status = segment.get(bucketInSegmentOffset + HEADER_STATUS_OFFSET); if (status == BUCKET_STATUS_IN_MEMORY) { buildBloomFilterForBucket(bucketInSegmentOffset, segment, partition); } } } } }
final protected void buildBloomFilterForBucketsInPartition(int partNum, HashPartition<BT, PT> partition) { // Find all the buckets which belongs to this partition, and build bloom filter for each bucket(include its overflow buckets). final int bucketsPerSegment = this.bucketsPerSegmentMask + 1; int numSegs = this.buckets.length; // go over all segments that are part of the table for (int i = 0, bucket = 0; i < numSegs && bucket < numBuckets; i++) { final MemorySegment segment = this.buckets[i]; // go over all buckets in the segment for (int k = 0; k < bucketsPerSegment && bucket < numBuckets; k++, bucket++) { final int bucketInSegmentOffset = k * HASH_BUCKET_SIZE; byte partitionNumber = segment.get(bucketInSegmentOffset + HEADER_PARTITION_OFFSET); if (partitionNumber == partNum) { byte status = segment.get(bucketInSegmentOffset + HEADER_STATUS_OFFSET); if (status == BUCKET_STATUS_IN_MEMORY) { buildBloomFilterForBucket(bucketInSegmentOffset, segment, partition); } } } } }
final protected void buildBloomFilterForBucketsInPartition(int partNum, HashPartition<BT, PT> partition) { // Find all the buckets which belongs to this partition, and build bloom filter for each bucket(include its overflow buckets). final int bucketsPerSegment = this.bucketsPerSegmentMask + 1; int numSegs = this.buckets.length; // go over all segments that are part of the table for (int i = 0, bucket = 0; i < numSegs && bucket < numBuckets; i++) { final MemorySegment segment = this.buckets[i]; // go over all buckets in the segment for (int k = 0; k < bucketsPerSegment && bucket < numBuckets; k++, bucket++) { final int bucketInSegmentOffset = k * HASH_BUCKET_SIZE; byte partitionNumber = segment.get(bucketInSegmentOffset + HEADER_PARTITION_OFFSET); if (partitionNumber == partNum) { byte status = segment.get(bucketInSegmentOffset + HEADER_STATUS_OFFSET); if (status == BUCKET_STATUS_IN_MEMORY) { buildBloomFilterForBucket(bucketInSegmentOffset, segment, partition); } } } } }