@@ -201,8 +201,12 @@ private static List<Slice> serializePages(BenchmarkData data)
201201 public abstract static class TypeBenchmarkData
202202 extends BenchmarkData
203203 {
204+ private static final int OFFSET_LENGTH = 3 ;
205+
204206 @ Param ({"0" , ".01" , ".10" , ".50" , ".90" , ".99" })
205207 private double nullChance ;
208+ @ Param ({"true" , "false" })
209+ private boolean offset ;
206210
207211 public void setup (Type type , Function <Random , ?> valueGenerator )
208212 {
@@ -218,13 +222,21 @@ public void setup(Type type, Function<Random, ?> valueGenerator)
218222 writeValue (type , values .next (), blockBuilder );
219223 pageBuilder .declarePosition ();
220224 if (pageBuilder .isFull ()) {
221- pagesBuilder .add (pageBuilder .build ());
225+ Page page = pageBuilder .build ();
226+ if (offset && page .getPositionCount () > (OFFSET_LENGTH * 2 )) {
227+ page = page .getRegion (OFFSET_LENGTH , page .getPositionCount () - (OFFSET_LENGTH * 2 ));
228+ }
229+ pagesBuilder .add (page );
222230 pageBuilder .reset ();
223231 blockBuilder = pageBuilder .getBlockBuilder (0 );
224232 }
225233 }
226234 if (pageBuilder .getPositionCount () > 0 ) {
227- pagesBuilder .add (pageBuilder .build ());
235+ Page page = pageBuilder .build ();
236+ if (offset && page .getPositionCount () > (OFFSET_LENGTH * 2 )) {
237+ page = page .getRegion (OFFSET_LENGTH , page .getPositionCount () - (OFFSET_LENGTH * 2 ));
238+ }
239+ pagesBuilder .add (page );
228240 }
229241
230242 List <Page > pages = pagesBuilder .build ();
0 commit comments