1
0
Эх сурвалжийг харах

Clean up BlockFactory.adjustBreaker (#103854)

* Remove unused parameter isDataAlreadyCreated.
* Update javadoc and add "throws CircuitBreakingException".
Alexander Spies 1 жил өмнө
parent
commit
ad8ec68658
35 өөрчлөгдсөн 106 нэмэгдсэн , 120 устгасан
  1. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanArrayBlock.java
  2. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanBigArrayBlock.java
  3. 1 1
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanBlockBuilder.java
  4. 2 2
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanVectorFixedBuilder.java
  5. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayBlock.java
  6. 1 1
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayVector.java
  7. 2 2
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefBlockBuilder.java
  8. 2 2
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefVectorBuilder.java
  9. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleArrayBlock.java
  10. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleBigArrayBlock.java
  11. 1 1
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleBlockBuilder.java
  12. 2 2
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleVectorFixedBuilder.java
  13. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntArrayBlock.java
  14. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntBigArrayBlock.java
  15. 1 1
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntBlockBuilder.java
  16. 2 2
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntVectorFixedBuilder.java
  17. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongArrayBlock.java
  18. 3 3
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongBigArrayBlock.java
  19. 1 1
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongBlockBuilder.java
  20. 2 2
      x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongVectorFixedBuilder.java
  21. 1 1
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/AbstractBlockBuilder.java
  22. 1 1
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/AbstractVector.java
  23. 1 1
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/AbstractVectorBuilder.java
  24. 29 40
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/BlockFactory.java
  25. 1 1
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/ConstantNullBlock.java
  26. 4 7
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/DocVector.java
  27. 5 5
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/SingletonOrdinalsBuilder.java
  28. 3 3
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayBlock.java.st
  29. 1 1
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayVector.java.st
  30. 3 3
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-BigArrayBlock.java.st
  31. 3 3
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-BlockBuilder.java.st
  32. 2 2
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-VectorBuilder.java.st
  33. 2 2
      x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-VectorFixedBuilder.java.st
  34. 4 4
      x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockFactoryTests.java
  35. 2 2
      x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/MockBlockFactory.java

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanArrayBlock.java

@@ -109,7 +109,7 @@ final class BooleanArrayBlock extends AbstractArrayBlock implements BooleanBlock
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         BooleanArrayBlock expanded = new BooleanArrayBlock(
             vector,
@@ -119,7 +119,7 @@ final class BooleanArrayBlock extends AbstractArrayBlock implements BooleanBlock
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -167,7 +167,7 @@ final class BooleanArrayBlock extends AbstractArrayBlock implements BooleanBlock
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanBigArrayBlock.java

@@ -110,7 +110,7 @@ public final class BooleanBigArrayBlock extends AbstractArrayBlock implements Bo
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         BooleanBigArrayBlock expanded = new BooleanBigArrayBlock(
             vector,
@@ -120,7 +120,7 @@ public final class BooleanBigArrayBlock extends AbstractArrayBlock implements Bo
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -168,7 +168,7 @@ public final class BooleanBigArrayBlock extends AbstractArrayBlock implements Bo
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 1 - 1
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanBlockBuilder.java

@@ -201,7 +201,7 @@ final class BooleanBlockBuilder extends AbstractBlockBuilder implements BooleanB
         * still technically be open, meaning the calling code should close it
         * which will return all used memory to the breaker.
         */
-        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed(), false);
+        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed());
         return theBlock;
     }
 

+ 2 - 2
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanVectorFixedBuilder.java

@@ -27,7 +27,7 @@ final class BooleanVectorFixedBuilder implements BooleanVector.FixedBuilder {
 
     BooleanVectorFixedBuilder(int size, BlockFactory blockFactory) {
         preAdjustedBytes = ramBytesUsed(size);
-        blockFactory.adjustBreaker(preAdjustedBytes, false);
+        blockFactory.adjustBreaker(preAdjustedBytes);
         this.blockFactory = blockFactory;
         this.values = new boolean[size];
     }
@@ -70,7 +70,7 @@ final class BooleanVectorFixedBuilder implements BooleanVector.FixedBuilder {
         if (nextIndex >= 0) {
             // If nextIndex < 0 we've already built the vector
             nextIndex = -1;
-            blockFactory.adjustBreaker(-preAdjustedBytes, false);
+            blockFactory.adjustBreaker(-preAdjustedBytes);
         }
     }
 

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayBlock.java

@@ -113,7 +113,7 @@ final class BytesRefArrayBlock extends AbstractArrayBlock implements BytesRefBlo
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         BytesRefArrayBlock expanded = new BytesRefArrayBlock(
             vector,
@@ -123,7 +123,7 @@ final class BytesRefArrayBlock extends AbstractArrayBlock implements BytesRefBlo
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -171,7 +171,7 @@ final class BytesRefArrayBlock extends AbstractArrayBlock implements BytesRefBlo
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 1 - 1
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayVector.java

@@ -90,7 +90,7 @@ final class BytesRefArrayVector extends AbstractVector implements BytesRefVector
     public void closeInternal() {
         // The circuit breaker that tracks the values {@link BytesRefArray} is adjusted outside
         // of this class.
-        blockFactory().adjustBreaker(-ramBytesUsed() + values.bigArraysRamBytesUsed(), true);
+        blockFactory().adjustBreaker(-ramBytesUsed() + values.bigArraysRamBytesUsed());
         Releasables.closeExpectNoException(values);
     }
 }

+ 2 - 2
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefBlockBuilder.java

@@ -203,7 +203,7 @@ final class BytesRefBlockBuilder extends AbstractBlockBuilder implements BytesRe
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes, false);
+            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes);
             Releasables.closeExpectNoException(values);
         } else {
             if (isDense() && singleValued()) {
@@ -219,7 +219,7 @@ final class BytesRefBlockBuilder extends AbstractBlockBuilder implements BytesRe
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - values.bigArraysRamBytesUsed(), false);
+            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - values.bigArraysRamBytesUsed());
         }
         return theBlock;
     }

+ 2 - 2
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefVectorBuilder.java

@@ -67,7 +67,7 @@ final class BytesRefVectorBuilder extends AbstractVectorBuilder implements Bytes
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(vector.ramBytesUsed(), false);
+            blockFactory.adjustBreaker(vector.ramBytesUsed());
             Releasables.closeExpectNoException(values);
         } else {
             vector = new BytesRefArrayVector(values, valueCount, blockFactory);
@@ -79,7 +79,7 @@ final class BytesRefVectorBuilder extends AbstractVectorBuilder implements Bytes
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(vector.ramBytesUsed() - values.bigArraysRamBytesUsed(), false);
+            blockFactory.adjustBreaker(vector.ramBytesUsed() - values.bigArraysRamBytesUsed());
         }
         values = null;
         built();

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleArrayBlock.java

@@ -109,7 +109,7 @@ final class DoubleArrayBlock extends AbstractArrayBlock implements DoubleBlock {
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         DoubleArrayBlock expanded = new DoubleArrayBlock(
             vector,
@@ -119,7 +119,7 @@ final class DoubleArrayBlock extends AbstractArrayBlock implements DoubleBlock {
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -167,7 +167,7 @@ final class DoubleArrayBlock extends AbstractArrayBlock implements DoubleBlock {
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleBigArrayBlock.java

@@ -110,7 +110,7 @@ public final class DoubleBigArrayBlock extends AbstractArrayBlock implements Dou
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         DoubleBigArrayBlock expanded = new DoubleBigArrayBlock(
             vector,
@@ -120,7 +120,7 @@ public final class DoubleBigArrayBlock extends AbstractArrayBlock implements Dou
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -168,7 +168,7 @@ public final class DoubleBigArrayBlock extends AbstractArrayBlock implements Dou
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 1 - 1
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleBlockBuilder.java

@@ -199,7 +199,7 @@ final class DoubleBlockBuilder extends AbstractBlockBuilder implements DoubleBlo
         * still technically be open, meaning the calling code should close it
         * which will return all used memory to the breaker.
         */
-        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed(), false);
+        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed());
         return theBlock;
     }
 

+ 2 - 2
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleVectorFixedBuilder.java

@@ -27,7 +27,7 @@ final class DoubleVectorFixedBuilder implements DoubleVector.FixedBuilder {
 
     DoubleVectorFixedBuilder(int size, BlockFactory blockFactory) {
         preAdjustedBytes = ramBytesUsed(size);
-        blockFactory.adjustBreaker(preAdjustedBytes, false);
+        blockFactory.adjustBreaker(preAdjustedBytes);
         this.blockFactory = blockFactory;
         this.values = new double[size];
     }
@@ -70,7 +70,7 @@ final class DoubleVectorFixedBuilder implements DoubleVector.FixedBuilder {
         if (nextIndex >= 0) {
             // If nextIndex < 0 we've already built the vector
             nextIndex = -1;
-            blockFactory.adjustBreaker(-preAdjustedBytes, false);
+            blockFactory.adjustBreaker(-preAdjustedBytes);
         }
     }
 

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntArrayBlock.java

@@ -109,7 +109,7 @@ final class IntArrayBlock extends AbstractArrayBlock implements IntBlock {
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         IntArrayBlock expanded = new IntArrayBlock(
             vector,
@@ -119,7 +119,7 @@ final class IntArrayBlock extends AbstractArrayBlock implements IntBlock {
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -167,7 +167,7 @@ final class IntArrayBlock extends AbstractArrayBlock implements IntBlock {
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntBigArrayBlock.java

@@ -110,7 +110,7 @@ public final class IntBigArrayBlock extends AbstractArrayBlock implements IntBlo
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         IntBigArrayBlock expanded = new IntBigArrayBlock(
             vector,
@@ -120,7 +120,7 @@ public final class IntBigArrayBlock extends AbstractArrayBlock implements IntBlo
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -168,7 +168,7 @@ public final class IntBigArrayBlock extends AbstractArrayBlock implements IntBlo
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 1 - 1
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntBlockBuilder.java

@@ -199,7 +199,7 @@ final class IntBlockBuilder extends AbstractBlockBuilder implements IntBlock.Bui
         * still technically be open, meaning the calling code should close it
         * which will return all used memory to the breaker.
         */
-        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed(), false);
+        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed());
         return theBlock;
     }
 

+ 2 - 2
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntVectorFixedBuilder.java

@@ -27,7 +27,7 @@ final class IntVectorFixedBuilder implements IntVector.FixedBuilder {
 
     IntVectorFixedBuilder(int size, BlockFactory blockFactory) {
         preAdjustedBytes = ramBytesUsed(size);
-        blockFactory.adjustBreaker(preAdjustedBytes, false);
+        blockFactory.adjustBreaker(preAdjustedBytes);
         this.blockFactory = blockFactory;
         this.values = new int[size];
     }
@@ -70,7 +70,7 @@ final class IntVectorFixedBuilder implements IntVector.FixedBuilder {
         if (nextIndex >= 0) {
             // If nextIndex < 0 we've already built the vector
             nextIndex = -1;
-            blockFactory.adjustBreaker(-preAdjustedBytes, false);
+            blockFactory.adjustBreaker(-preAdjustedBytes);
         }
     }
 

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongArrayBlock.java

@@ -109,7 +109,7 @@ final class LongArrayBlock extends AbstractArrayBlock implements LongBlock {
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         LongArrayBlock expanded = new LongArrayBlock(
             vector,
@@ -119,7 +119,7 @@ final class LongArrayBlock extends AbstractArrayBlock implements LongBlock {
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -167,7 +167,7 @@ final class LongArrayBlock extends AbstractArrayBlock implements LongBlock {
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 3 - 3
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongBigArrayBlock.java

@@ -110,7 +110,7 @@ public final class LongBigArrayBlock extends AbstractArrayBlock implements LongB
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         LongBigArrayBlock expanded = new LongBigArrayBlock(
             vector,
@@ -120,7 +120,7 @@ public final class LongBigArrayBlock extends AbstractArrayBlock implements LongB
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -168,7 +168,7 @@ public final class LongBigArrayBlock extends AbstractArrayBlock implements LongB
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 1 - 1
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongBlockBuilder.java

@@ -199,7 +199,7 @@ final class LongBlockBuilder extends AbstractBlockBuilder implements LongBlock.B
         * still technically be open, meaning the calling code should close it
         * which will return all used memory to the breaker.
         */
-        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed(), false);
+        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed());
         return theBlock;
     }
 

+ 2 - 2
x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongVectorFixedBuilder.java

@@ -27,7 +27,7 @@ final class LongVectorFixedBuilder implements LongVector.FixedBuilder {
 
     LongVectorFixedBuilder(int size, BlockFactory blockFactory) {
         preAdjustedBytes = ramBytesUsed(size);
-        blockFactory.adjustBreaker(preAdjustedBytes, false);
+        blockFactory.adjustBreaker(preAdjustedBytes);
         this.blockFactory = blockFactory;
         this.values = new long[size];
     }
@@ -70,7 +70,7 @@ final class LongVectorFixedBuilder implements LongVector.FixedBuilder {
         if (nextIndex >= 0) {
             // If nextIndex < 0 we've already built the vector
             nextIndex = -1;
-            blockFactory.adjustBreaker(-preAdjustedBytes, false);
+            blockFactory.adjustBreaker(-preAdjustedBytes);
         }
     }
 

+ 1 - 1
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/AbstractBlockBuilder.java

@@ -165,7 +165,7 @@ abstract class AbstractBlockBuilder implements Block.Builder {
     }
 
     protected void adjustBreaker(long deltaBytes) {
-        blockFactory.adjustBreaker(deltaBytes, false);
+        blockFactory.adjustBreaker(deltaBytes);
         estimatedBytes += deltaBytes;
         assert estimatedBytes >= 0;
     }

+ 1 - 1
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/AbstractVector.java

@@ -41,7 +41,7 @@ abstract class AbstractVector extends AbstractNonThreadSafeRefCounted implements
 
     @Override
     protected void closeInternal() {
-        blockFactory.adjustBreaker(-ramBytesUsed(), true);
+        blockFactory.adjustBreaker(-ramBytesUsed());
     }
 
     @Override

+ 1 - 1
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/AbstractVectorBuilder.java

@@ -48,7 +48,7 @@ abstract class AbstractVectorBuilder implements Vector.Builder {
     }
 
     protected void adjustBreaker(long deltaBytes) {
-        blockFactory.adjustBreaker(deltaBytes, false);
+        blockFactory.adjustBreaker(deltaBytes);
         estimatedBytes += deltaBytes;
     }
 

+ 29 - 40
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/BlockFactory.java

@@ -78,25 +78,14 @@ public class BlockFactory {
 
     /**
      * Adjust the circuit breaker with the given delta, if the delta is negative, the breaker will
-     * be adjusted without tripping.  If the data was already created before calling this method,
-     * and the breaker trips, we add the delta without breaking to account for the created data.
-     * If the data has not been created yet, we do not add the delta to the breaker if it trips.
+     * be adjusted without tripping.
+     * @throws CircuitBreakingException if the breaker was put above its limit
      */
-    void adjustBreaker(final long delta, final boolean isDataAlreadyCreated) {
+    void adjustBreaker(final long delta) throws CircuitBreakingException {
         // checking breaker means potentially tripping, but it doesn't
         // have to if the delta is negative
         if (delta > 0) {
-            try {
-                breaker.addEstimateBytesAndMaybeBreak(delta, "<esql_block_factory>");
-            } catch (CircuitBreakingException e) {
-                // if (isDataAlreadyCreated) { // TODO: remove isDataAlreadyCreated
-                // since we've already created the data, we need to
-                // add it so closing the stream re-adjusts properly
-                // breaker.addWithoutBreaking(delta);
-                // }
-                // re-throw the original exception
-                throw e;
-            }
+            breaker.addEstimateBytesAndMaybeBreak(delta, "<esql_block_factory>");
         } else {
             breaker.addWithoutBreaking(delta);
         }
@@ -105,25 +94,25 @@ public class BlockFactory {
     /** Pre-adjusts the breaker for the given position count and element type. Returns the pre-adjusted amount. */
     public long preAdjustBreakerForBoolean(int positionCount) {
         long bytes = (long) positionCount * Byte.BYTES;
-        adjustBreaker(bytes, false);
+        adjustBreaker(bytes);
         return bytes;
     }
 
     public long preAdjustBreakerForInt(int positionCount) {
         long bytes = (long) positionCount * Integer.BYTES;
-        adjustBreaker(bytes, false);
+        adjustBreaker(bytes);
         return bytes;
     }
 
     public long preAdjustBreakerForLong(int positionCount) {
         long bytes = (long) positionCount * Long.BYTES;
-        adjustBreaker(bytes, false);
+        adjustBreaker(bytes);
         return bytes;
     }
 
     public long preAdjustBreakerForDouble(int positionCount) {
         long bytes = (long) positionCount * Double.BYTES;
-        adjustBreaker(bytes, false);
+        adjustBreaker(bytes);
         return bytes;
     }
 
@@ -144,7 +133,7 @@ public class BlockFactory {
 
     public BooleanBlock newBooleanArrayBlock(boolean[] values, int pc, int[] fvi, BitSet nulls, MvOrdering mvOrder, long preAdjustedBytes) {
         var b = new BooleanArrayBlock(values, pc, fvi, nulls, mvOrder, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -158,7 +147,7 @@ public class BlockFactory {
 
     public BooleanVector newBooleanArrayVector(boolean[] values, int positionCount, long preAdjustedBytes) {
         var b = new BooleanArrayVector(values, positionCount, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -168,12 +157,12 @@ public class BlockFactory {
 
     public BooleanBlock newConstantBooleanBlockWith(boolean value, int positions, long preAdjustedBytes) {
         var b = new ConstantBooleanVector(value, positions, this).asBlock();
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
     public BooleanVector newConstantBooleanVector(boolean value, int positions) {
-        adjustBreaker(ConstantBooleanVector.RAM_BYTES_USED, false);
+        adjustBreaker(ConstantBooleanVector.RAM_BYTES_USED);
         var v = new ConstantBooleanVector(value, positions, this);
         assert v.ramBytesUsed() == ConstantBooleanVector.RAM_BYTES_USED;
         return v;
@@ -189,7 +178,7 @@ public class BlockFactory {
 
     public IntBlock newIntArrayBlock(int[] values, int pc, int[] fvi, BitSet nulls, MvOrdering mvOrdering, long preAdjustedBytes) {
         var b = new IntArrayBlock(values, pc, fvi, nulls, mvOrdering, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -225,7 +214,7 @@ public class BlockFactory {
      */
     public IntVector newIntArrayVector(int[] values, int positionCount, long preAdjustedBytes) {
         var b = new IntArrayVector(values, positionCount, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -235,12 +224,12 @@ public class BlockFactory {
 
     public IntBlock newConstantIntBlockWith(int value, int positions, long preAdjustedBytes) {
         var b = new ConstantIntVector(value, positions, this).asBlock();
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
     public IntVector newConstantIntVector(int value, int positions) {
-        adjustBreaker(ConstantIntVector.RAM_BYTES_USED, false);
+        adjustBreaker(ConstantIntVector.RAM_BYTES_USED);
         var v = new ConstantIntVector(value, positions, this);
         assert v.ramBytesUsed() == ConstantIntVector.RAM_BYTES_USED;
         return v;
@@ -256,7 +245,7 @@ public class BlockFactory {
 
     public LongBlock newLongArrayBlock(long[] values, int pc, int[] fvi, BitSet nulls, MvOrdering mvOrdering, long preAdjustedBytes) {
         var b = new LongArrayBlock(values, pc, fvi, nulls, mvOrdering, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -277,7 +266,7 @@ public class BlockFactory {
 
     public LongVector newLongArrayVector(long[] values, int positionCount, long preAdjustedBytes) {
         var b = new LongArrayVector(values, positionCount, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -287,12 +276,12 @@ public class BlockFactory {
 
     public LongBlock newConstantLongBlockWith(long value, int positions, long preAdjustedBytes) {
         var b = new ConstantLongVector(value, positions, this).asBlock();
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
     public LongVector newConstantLongVector(long value, int positions) {
-        adjustBreaker(ConstantLongVector.RAM_BYTES_USED, false);
+        adjustBreaker(ConstantLongVector.RAM_BYTES_USED);
         var v = new ConstantLongVector(value, positions, this);
         assert v.ramBytesUsed() == ConstantLongVector.RAM_BYTES_USED;
         return v;
@@ -309,7 +298,7 @@ public class BlockFactory {
 
     public DoubleBlock newDoubleArrayBlock(double[] values, int pc, int[] fvi, BitSet nulls, MvOrdering mvOrdering, long preAdjustedBytes) {
         var b = new DoubleArrayBlock(values, pc, fvi, nulls, mvOrdering, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -330,7 +319,7 @@ public class BlockFactory {
 
     public DoubleVector newDoubleArrayVector(double[] values, int positionCount, long preAdjustedBytes) {
         var b = new DoubleArrayVector(values, positionCount, this);
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
@@ -340,12 +329,12 @@ public class BlockFactory {
 
     public DoubleBlock newConstantDoubleBlockWith(double value, int positions, long preAdjustedBytes) {
         var b = new ConstantDoubleVector(value, positions, this).asBlock();
-        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes, true);
+        adjustBreaker(b.ramBytesUsed() - preAdjustedBytes);
         return b;
     }
 
     public DoubleVector newConstantDoubleVector(double value, int positions) {
-        adjustBreaker(ConstantDoubleVector.RAM_BYTES_USED, false);
+        adjustBreaker(ConstantDoubleVector.RAM_BYTES_USED);
         var v = new ConstantDoubleVector(value, positions, this);
         assert v.ramBytesUsed() == ConstantDoubleVector.RAM_BYTES_USED;
         return v;
@@ -357,7 +346,7 @@ public class BlockFactory {
 
     public BytesRefBlock newBytesRefArrayBlock(BytesRefArray values, int pc, int[] firstValueIndexes, BitSet nulls, MvOrdering mvOrdering) {
         var b = new BytesRefArrayBlock(values, pc, firstValueIndexes, nulls, mvOrdering, this);
-        adjustBreaker(b.ramBytesUsed() - values.bigArraysRamBytesUsed(), true);
+        adjustBreaker(b.ramBytesUsed() - values.bigArraysRamBytesUsed());
         return b;
     }
 
@@ -367,19 +356,19 @@ public class BlockFactory {
 
     public BytesRefVector newBytesRefArrayVector(BytesRefArray values, int positionCount) {
         var b = new BytesRefArrayVector(values, positionCount, this);
-        adjustBreaker(b.ramBytesUsed() - values.bigArraysRamBytesUsed(), true);
+        adjustBreaker(b.ramBytesUsed() - values.bigArraysRamBytesUsed());
         return b;
     }
 
     public BytesRefBlock newConstantBytesRefBlockWith(BytesRef value, int positions) {
         var b = new ConstantBytesRefVector(value, positions, this).asBlock();
-        adjustBreaker(b.ramBytesUsed(), true);
+        adjustBreaker(b.ramBytesUsed());
         return b;
     }
 
     public BytesRefVector newConstantBytesRefVector(BytesRef value, int positions) {
         long preadjusted = ConstantBytesRefVector.ramBytesUsed(value);
-        adjustBreaker(preadjusted, false);
+        adjustBreaker(preadjusted);
         var v = new ConstantBytesRefVector(value, positions, this);
         assert v.ramBytesUsed() == preadjusted;
         return v;
@@ -387,7 +376,7 @@ public class BlockFactory {
 
     public Block newConstantNullBlock(int positions) {
         var b = new ConstantNullBlock(positions, this);
-        adjustBreaker(b.ramBytesUsed(), true);
+        adjustBreaker(b.ramBytesUsed());
         return b;
     }
 

+ 1 - 1
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/ConstantNullBlock.java

@@ -124,7 +124,7 @@ final class ConstantNullBlock extends AbstractBlock implements BooleanBlock, Int
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsed(), true);
+        blockFactory().adjustBreaker(-ramBytesUsed());
     }
 
     static class Builder implements Block.Builder {

+ 4 - 7
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/DocVector.java

@@ -62,7 +62,7 @@ public final class DocVector extends AbstractVector implements Vector {
                 "invalid position count [" + shards.getPositionCount() + " != " + docs.getPositionCount() + "]"
             );
         }
-        blockFactory().adjustBreaker(BASE_RAM_BYTES_USED, true);
+        blockFactory().adjustBreaker(BASE_RAM_BYTES_USED);
     }
 
     public IntVector shards() {
@@ -130,7 +130,7 @@ public final class DocVector extends AbstractVector implements Vector {
 
         boolean success = false;
         long estimatedSize = sizeOfSegmentDocMap();
-        blockFactory().adjustBreaker(estimatedSize, true);
+        blockFactory().adjustBreaker(estimatedSize);
         int[] forwards = null;
         int[] backwards = null;
         try {
@@ -176,7 +176,7 @@ public final class DocVector extends AbstractVector implements Vector {
             shardSegmentDocMapBackwards = backwards;
         } finally {
             if (success == false) {
-                blockFactory().adjustBreaker(-estimatedSize, true);
+                blockFactory().adjustBreaker(-estimatedSize);
             }
         }
     }
@@ -264,10 +264,7 @@ public final class DocVector extends AbstractVector implements Vector {
     @Override
     public void closeInternal() {
         Releasables.closeExpectNoException(
-            () -> blockFactory().adjustBreaker(
-                -BASE_RAM_BYTES_USED - (shardSegmentDocMapForwards == null ? 0 : sizeOfSegmentDocMap()),
-                true
-            ),
+            () -> blockFactory().adjustBreaker(-BASE_RAM_BYTES_USED - (shardSegmentDocMapForwards == null ? 0 : sizeOfSegmentDocMap())),
             shards,
             segments,
             docs

+ 5 - 5
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/SingletonOrdinalsBuilder.java

@@ -27,7 +27,7 @@ public class SingletonOrdinalsBuilder implements BlockLoader.SingletonOrdinalsBu
     public SingletonOrdinalsBuilder(BlockFactory blockFactory, SortedDocValues docValues, int count) {
         this.blockFactory = blockFactory;
         this.docValues = docValues;
-        blockFactory.adjustBreaker(ordsSize(count), false);
+        blockFactory.adjustBreaker(ordsSize(count));
         this.ords = new int[count];
     }
 
@@ -62,7 +62,7 @@ public class SingletonOrdinalsBuilder implements BlockLoader.SingletonOrdinalsBu
         try {
             long breakerSize = ordsSize(ords.length);
             // Increment breaker for sorted ords.
-            blockFactory.adjustBreaker(breakerSize, false);
+            blockFactory.adjustBreaker(breakerSize);
             try {
                 int[] sortedOrds = ords.clone();
                 Arrays.sort(sortedOrds);
@@ -70,7 +70,7 @@ public class SingletonOrdinalsBuilder implements BlockLoader.SingletonOrdinalsBu
 
                 try (BreakingBytesRefBuilder copies = new BreakingBytesRefBuilder(blockFactory.breaker(), "ords")) {
                     long offsetsAndLength = RamUsageEstimator.NUM_BYTES_ARRAY_HEADER + (uniqueCount + 1) * Integer.BYTES;
-                    blockFactory.adjustBreaker(offsetsAndLength, false);
+                    blockFactory.adjustBreaker(offsetsAndLength);
                     breakerSize += offsetsAndLength;
                     int[] offsets = new int[uniqueCount + 1];
                     for (int o = 0; o < uniqueCount; o++) {
@@ -102,7 +102,7 @@ public class SingletonOrdinalsBuilder implements BlockLoader.SingletonOrdinalsBu
                     }
                 }
             } finally {
-                blockFactory.adjustBreaker(-breakerSize, false);
+                blockFactory.adjustBreaker(-breakerSize);
             }
         } catch (IOException e) {
             throw new UncheckedIOException("error resolving ordinals", e);
@@ -111,7 +111,7 @@ public class SingletonOrdinalsBuilder implements BlockLoader.SingletonOrdinalsBu
 
     @Override
     public void close() {
-        blockFactory.adjustBreaker(-ordsSize(ords.length), false);
+        blockFactory.adjustBreaker(-ordsSize(ords.length));
     }
 
     @Override

+ 3 - 3
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayBlock.java.st

@@ -128,7 +128,7 @@ $endif$
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         $Type$ArrayBlock expanded = new $Type$ArrayBlock(
             vector,
@@ -138,7 +138,7 @@ $endif$
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -186,7 +186,7 @@ $endif$
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 1 - 1
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayVector.java.st

@@ -123,7 +123,7 @@ $if(BytesRef)$
     public void closeInternal() {
         // The circuit breaker that tracks the values {@link BytesRefArray} is adjusted outside
         // of this class.
-        blockFactory().adjustBreaker(-ramBytesUsed() + values.bigArraysRamBytesUsed(), true);
+        blockFactory().adjustBreaker(-ramBytesUsed() + values.bigArraysRamBytesUsed());
         Releasables.closeExpectNoException(values);
     }
 $endif$

+ 3 - 3
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-BigArrayBlock.java.st

@@ -110,7 +110,7 @@ public final class $Type$BigArrayBlock extends AbstractArrayBlock implements $Ty
         // The following line is correct because positions with multi-values are never null.
         int expandedPositionCount = vector.getPositionCount();
         long bitSetRamUsedEstimate = Math.max(nullsMask.size(), BlockRamUsageEstimator.sizeOfBitSet(expandedPositionCount));
-        blockFactory().adjustBreaker(bitSetRamUsedEstimate, false);
+        blockFactory().adjustBreaker(bitSetRamUsedEstimate);
 
         $Type$BigArrayBlock expanded = new $Type$BigArrayBlock(
             vector,
@@ -120,7 +120,7 @@ public final class $Type$BigArrayBlock extends AbstractArrayBlock implements $Ty
             MvOrdering.DEDUPLICATED_AND_SORTED_ASCENDING,
             blockFactory()
         );
-        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate, true);
+        blockFactory().adjustBreaker(expanded.ramBytesUsedOnlyBlock() - bitSetRamUsedEstimate);
         // We need to incRef after adjusting any breakers, otherwise we might leak the vector if the breaker trips.
         vector.incRef();
         return expanded;
@@ -168,7 +168,7 @@ public final class $Type$BigArrayBlock extends AbstractArrayBlock implements $Ty
 
     @Override
     public void closeInternal() {
-        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock(), true);
+        blockFactory().adjustBreaker(-ramBytesUsedOnlyBlock());
         Releasables.closeExpectNoException(vector);
     }
 }

+ 3 - 3
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-BlockBuilder.java.st

@@ -261,7 +261,7 @@ $if(BytesRef)$
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes, false);
+            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes);
             Releasables.closeExpectNoException(values);
         } else {
             if (isDense() && singleValued()) {
@@ -277,7 +277,7 @@ $if(BytesRef)$
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - values.bigArraysRamBytesUsed(), false);
+            blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - values.bigArraysRamBytesUsed());
         }
         return theBlock;
     }
@@ -311,7 +311,7 @@ $else$
         * still technically be open, meaning the calling code should close it
         * which will return all used memory to the breaker.
         */
-        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed(), false);
+        blockFactory.adjustBreaker(theBlock.ramBytesUsed() - estimatedBytes - array.ramBytesUsed());
         return theBlock;
     }
 $endif$

+ 2 - 2
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-VectorBuilder.java.st

@@ -97,7 +97,7 @@ $if(BytesRef)$
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(vector.ramBytesUsed(), false);
+            blockFactory.adjustBreaker(vector.ramBytesUsed());
             Releasables.closeExpectNoException(values);
         } else {
             vector = new $Type$ArrayVector(values, valueCount, blockFactory);
@@ -109,7 +109,7 @@ $if(BytesRef)$
              * still technically be open, meaning the calling code should close it
              * which will return all used memory to the breaker.
              */
-            blockFactory.adjustBreaker(vector.ramBytesUsed() - values.bigArraysRamBytesUsed(), false);
+            blockFactory.adjustBreaker(vector.ramBytesUsed() - values.bigArraysRamBytesUsed());
         }
         values = null;
 $else$

+ 2 - 2
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-VectorFixedBuilder.java.st

@@ -27,7 +27,7 @@ final class $Type$VectorFixedBuilder implements $Type$Vector.FixedBuilder {
 
     $Type$VectorFixedBuilder(int size, BlockFactory blockFactory) {
         preAdjustedBytes = ramBytesUsed(size);
-        blockFactory.adjustBreaker(preAdjustedBytes, false);
+        blockFactory.adjustBreaker(preAdjustedBytes);
         this.blockFactory = blockFactory;
         this.values = new $type$[size];
     }
@@ -70,7 +70,7 @@ final class $Type$VectorFixedBuilder implements $Type$Vector.FixedBuilder {
         if (nextIndex >= 0) {
             // If nextIndex < 0 we've already built the vector
             nextIndex = -1;
-            blockFactory.adjustBreaker(-preAdjustedBytes, false);
+            blockFactory.adjustBreaker(-preAdjustedBytes);
         }
     }
 

+ 4 - 4
x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockFactoryTests.java

@@ -87,19 +87,19 @@ public class BlockFactoryTests extends ESTestCase {
             int positions = randomIntBetween(1, 16384);
             long preAdjustBytes = blockFactory.preAdjustBreakerForBoolean(positions);
             assertThat(preAdjustBytes, is((long) positions));
-            blockFactory.adjustBreaker(-preAdjustBytes, true);
+            blockFactory.adjustBreaker(-preAdjustBytes);
 
             preAdjustBytes = blockFactory.preAdjustBreakerForInt(positions);
             assertThat(preAdjustBytes, is((long) positions * 4));
-            blockFactory.adjustBreaker(-preAdjustBytes, true);
+            blockFactory.adjustBreaker(-preAdjustBytes);
 
             preAdjustBytes = blockFactory.preAdjustBreakerForLong(positions);
             assertThat(preAdjustBytes, is((long) positions * 8));
-            blockFactory.adjustBreaker(-preAdjustBytes, true);
+            blockFactory.adjustBreaker(-preAdjustBytes);
 
             preAdjustBytes = blockFactory.preAdjustBreakerForDouble(positions);
             assertThat(preAdjustBytes, is((long) positions * 8));
-            blockFactory.adjustBreaker(-preAdjustBytes, true);
+            blockFactory.adjustBreaker(-preAdjustBytes);
         }
     }
 

+ 2 - 2
x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/MockBlockFactory.java

@@ -86,9 +86,9 @@ public class MockBlockFactory extends BlockFactory {
     }
 
     @Override
-    void adjustBreaker(final long delta, final boolean isDataAlreadyCreated) {
+    void adjustBreaker(final long delta) {
         purgeTrackBlocks();
-        super.adjustBreaker(delta, isDataAlreadyCreated);
+        super.adjustBreaker(delta);
     }
 
     void purgeTrackBlocks() {