throws HiveException, IOException { int size = indexes.size(); int index = size < topN ? size : evicted; keys[index] = Arrays.copyOf(key.getBytes(), key.getLength()); distKeyLengths[index] = key.getDistKeyLength(); hashes[index] = key.hashCode(); Integer collisionIndex = indexes.store(index); if (null != collisionIndex) { indexes.store(collisionIndex); batchIndexToResult[batchIndex] = index; if (size != topN) return; evicted = indexes.removeBiggest(); // remove the biggest key if (index == evicted) { excluded++;
throws HiveException, IOException { int size = indexes.size(); int index = size < topN ? size : evicted; keys[index] = Arrays.copyOf(key.getBytes(), key.getLength()); distKeyLengths[index] = key.getDistKeyLength(); hashes[index] = key.hashCode(); Integer collisionIndex = indexes.store(index); if (null != collisionIndex) { indexes.store(collisionIndex); batchIndexToResult[batchIndex] = index; if (size != topN) return; evicted = indexes.removeBiggest(); // remove the biggest key if (index == evicted) { excluded++;
int size = indexes.size(); int index = size < topN ? size : evicted; keys[index] = Arrays.copyOf(key.getBytes(), key.getLength()); distKeyLengths[index] = key.getDistKeyLength(); hashes[index] = key.hashCode(); if (null != indexes.store(index)) { evicted = indexes.removeBiggest(); // remove the biggest key if (index == evicted) { excluded++;
private void flushInternal() throws IOException, HiveException { for (int index : indexes.indexes()) { if (index != evicted && values[index] != null) { collector.collect(keys[index], values[index], hashes[index]); usage -= values[index].length; values[index] = null; hashes[index] = -1; } } excluded = 0; }
throws HiveException, IOException { int size = indexes.size(); int index = size < topN ? size : evicted; keys[index] = Arrays.copyOf(key.getBytes(), key.getLength()); distKeyLengths[index] = key.getDistKeyLength(); hashes[index] = key.hashCode(); Integer collisionIndex = indexes.store(index); if (null != collisionIndex) { indexes.store(collisionIndex); batchIndexToResult[batchIndex] = index; if (size != topN) return; evicted = indexes.removeBiggest(); // remove the biggest key if (index == evicted) { excluded++;
int size = indexes.size(); int index = size < topN ? size : evicted; keys[index] = Arrays.copyOf(key.getBytes(), key.getLength()); distKeyLengths[index] = key.getDistKeyLength(); hashes[index] = key.hashCode(); if (null != indexes.store(index)) { evicted = indexes.removeBiggest(); // remove the biggest key if (index == evicted) { excluded++;
int size = indexes.size(); int index = size < topN ? size : evicted; keys[index] = Arrays.copyOf(key.getBytes(), key.getLength()); distKeyLengths[index] = key.getDistKeyLength(); hashes[index] = key.hashCode(); if (null != indexes.store(index)) { evicted = indexes.removeBiggest(); // remove the biggest key if (index == evicted) { excluded++;
private void flushInternal() throws IOException, HiveException { for (int index : indexes.indexes()) { if (index != evicted && values[index] != null) { collector.collect(keys[index], values[index], hashes[index]); usage -= values[index].length; values[index] = null; hashes[index] = -1; } } excluded = 0; }
private void flushInternal() throws IOException, HiveException { for (int index : indexes.indexes()) { if (index != evicted && values[index] != null) { collector.collect(keys[index], values[index], hashes[index]); usage -= values[index].length; values[index] = null; hashes[index] = -1; } } excluded = 0; }