@Override public PeekingResultIterator newIterator(StatementContext context, ResultIterator scanner, Scan scan, String physicalTableName, QueryPlan plan) throws SQLException { ReadMetricQueue readRequestMetric = context.getReadMetricsQueue(); SpoolingMetricsHolder spoolMetrics = new SpoolingMetricsHolder(readRequestMetric, physicalTableName); MemoryMetricsHolder memoryMetrics = new MemoryMetricsHolder(readRequestMetric, physicalTableName); return new SpoolingResultIterator(spoolMetrics, memoryMetrics, scanner, services); } }
private void testSpooling(int threshold, long maxSizeSpool) throws Throwable { Tuple[] results = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1))), }; PeekingResultIterator iterator = new MaterializedResultIterator(Arrays.asList(results)); Tuple[] expectedResults = new Tuple[] { new SingleKeyValueTuple(new KeyValue(A, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1))), new SingleKeyValueTuple(new KeyValue(B, SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, Bytes.toBytes(1))), }; MemoryManager memoryManager = new DelegatingMemoryManager(new GlobalMemoryManager(threshold)); ResultIterator scanner = new SpoolingResultIterator( SpoolingMetricsHolder.NO_OP_INSTANCE, new MemoryMetricsHolder(new ReadMetricQueue(false,LogLevel.OFF), ""), iterator, memoryManager, threshold, maxSizeSpool, "/tmp"); AssertResults.assertResults(scanner, expectedResults); }
@Override public PeekingResultIterator newIterator(StatementContext context, ResultIterator scanner, Scan scan, String physicalTableName, QueryPlan plan) throws SQLException { ReadMetricQueue readRequestMetric = context.getReadMetricsQueue(); SpoolingMetricsHolder spoolMetrics = new SpoolingMetricsHolder(readRequestMetric, physicalTableName); MemoryMetricsHolder memoryMetrics = new MemoryMetricsHolder(readRequestMetric, physicalTableName); return new SpoolingResultIterator(spoolMetrics, memoryMetrics, scanner, services); } }
@Override public PeekingResultIterator newIterator(StatementContext context, ResultIterator scanner, Scan scan, String physicalTableName, QueryPlan plan) throws SQLException { ReadMetricQueue readRequestMetric = context.getReadMetricsQueue(); SpoolingMetricsHolder spoolMetrics = new SpoolingMetricsHolder(readRequestMetric, physicalTableName); MemoryMetricsHolder memoryMetrics = new MemoryMetricsHolder(readRequestMetric, physicalTableName); return new SpoolingResultIterator(spoolMetrics, memoryMetrics, scanner, services); } }