public SliceBigArray() { array = new ObjectBigArray<>(); }
public BlockBigArray(Block block) { array = new ObjectBigArray<>(block); }
public LegacyArrayAggregationGroupState(Type type) { this.type = type; this.blockBuilders = new ObjectBigArray<>(); this.size = 0; }
public LegacyArrayAggregationGroupState(Type type) { this.type = type; this.blockBuilders = new ObjectBigArray<>(); this.size = 0; }
public SliceBigArray(Slice slice) { array = new ObjectBigArray<>(slice); }
public SliceBigArray() { array = new ObjectBigArray<>(); }
public BlockBigArray() { array = new ObjectBigArray<>(); }
public BlockBigArray() { array = new ObjectBigArray<>(); }
public BlockBigArray(Block block) { array = new ObjectBigArray<>(block); }
public SliceBigArray(Slice slice) { array = new ObjectBigArray<>(slice); }
private ObjectBigArray<Row> nextGroupedRows() { if (currentGroupNumber < groupCount) { RowHeap rows = groupedRows.get(currentGroupNumber); verify(rows != null && !rows.isEmpty(), "impossible to have inserted a group without a witness row"); groupedRows.set(currentGroupNumber, null); currentGroupSizeInBytes = rows.getEstimatedSizeInBytes(); currentGroupNumber++; currentGroupSize = rows.size(); // sort output rows in a big array in case there are too many rows ObjectBigArray<Row> sortedRows = new ObjectBigArray<>(); sortedRows.ensureCapacity(currentGroupSize); int index = currentGroupSize - 1; while (!rows.isEmpty()) { sortedRows.set(index, rows.dequeue()); index--; } return sortedRows; } return null; } }
private ObjectBigArray<Row> nextGroupedRows() { if (currentGroupNumber < groupCount) { RowHeap rows = groupedRows.get(currentGroupNumber); verify(rows != null && !rows.isEmpty(), "impossible to have inserted a group without a witness row"); groupedRows.set(currentGroupNumber, null); currentGroupSizeInBytes = rows.getEstimatedSizeInBytes(); currentGroupNumber++; currentGroupSize = rows.size(); // sort output rows in a big array in case there are too many rows ObjectBigArray<Row> sortedRows = new ObjectBigArray<>(); sortedRows.ensureCapacity(currentGroupSize); int index = currentGroupSize - 1; while (!rows.isEmpty()) { sortedRows.set(index, rows.dequeue()); index--; } return sortedRows; } return null; } }
long actualSizeInBytes) ObjectBigArray<Object> pageReferences = new ObjectBigArray<>(); pageReferences.ensureCapacity(pagePositions.size()); long pageReferencesSizeInBytes = pageReferences.sizeOf(); ObjectBigArray<Object> groupedRows = new ObjectBigArray<>(); groupedRows.ensureCapacity(rowCounts.size()); long groupedRowsSizeInBytes = groupedRows.sizeOf();
long actualSizeInBytes) ObjectBigArray<Object> pageReferences = new ObjectBigArray<>(); pageReferences.ensureCapacity(pagePositions.size()); long pageReferencesSizeInBytes = pageReferences.sizeOf(); ObjectBigArray<Object> groupedRows = new ObjectBigArray<>(); groupedRows.ensureCapacity(rowCounts.size()); long groupedRowsSizeInBytes = groupedRows.sizeOf();
@Test public void testRetainedSizeWithOverlappingBlocks() { int entries = 123; BlockBuilder blockBuilder = new IntArrayBlockBuilder(null, entries); for (int i = 0; i < entries; i++) { blockBuilder.writeInt(i); } Block block = blockBuilder.build(); // Verify we do not over count int arraySize = 456; int blocks = 7890; BlockBigArray blockBigArray = new BlockBigArray(); blockBigArray.ensureCapacity(arraySize); for (int i = 0; i < blocks; i++) { blockBigArray.set(i % arraySize, block.getRegion(0, entries)); } ReferenceCountMap referenceCountMap = new ReferenceCountMap(); referenceCountMap.incrementAndGet(block); long expectedSize = ClassLayout.parseClass(BlockBigArray.class).instanceSize() + referenceCountMap.sizeOf() + (new ObjectBigArray()).sizeOf() + block.getRetainedSizeInBytes() + (arraySize - 1) * ClassLayout.parseClass(block.getClass()).instanceSize(); assertEquals(blockBigArray.sizeOf(), expectedSize); } }
@Test public void testRetainedSizeWithOverlappingBlocks() { int entries = 123; BlockBuilder blockBuilder = new IntArrayBlockBuilder(null, entries); for (int i = 0; i < entries; i++) { blockBuilder.writeInt(i); } Block block = blockBuilder.build(); // Verify we do not over count int arraySize = 456; int blocks = 7890; BlockBigArray blockBigArray = new BlockBigArray(); blockBigArray.ensureCapacity(arraySize); for (int i = 0; i < blocks; i++) { blockBigArray.set(i % arraySize, block.getRegion(0, entries)); } ReferenceCountMap referenceCountMap = new ReferenceCountMap(); referenceCountMap.incrementAndGet(block); long expectedSize = ClassLayout.parseClass(BlockBigArray.class).instanceSize() + referenceCountMap.sizeOf() + (new ObjectBigArray()).sizeOf() + block.getRetainedSizeInBytes() + (arraySize - 1) * ClassLayout.parseClass(block.getClass()).instanceSize(); assertEquals(blockBigArray.sizeOf(), expectedSize); } }
ObjectBigArray<BlockBuilder> valueArrayBlockBuilders = new ObjectBigArray<>(); valueArrayBlockBuilders.ensureCapacity(state.getEntryCount()); BlockBuilder distinctKeyBlockBuilder = keyType.createBlockBuilder(null, state.getEntryCount(), expectedValueSize(keyType, 100));
ObjectBigArray<BlockBuilder> valueArrayBlockBuilders = new ObjectBigArray<>(); valueArrayBlockBuilders.ensureCapacity(state.getEntryCount()); BlockBuilder distinctKeyBlockBuilder = keyType.createBlockBuilder(null, state.getEntryCount(), expectedValueSize(keyType, 100));