private synchronized void lookup(List<Range> ranges, ResultReceiver receiver) throws AccumuloException, AccumuloSecurityException, TableNotFoundException { List<Column> columns = new ArrayList<>(options.fetchedColumns); ranges = Range.mergeOverlapping(ranges); Map<String,Map<KeyExtent,List<Range>>> binnedRanges = new HashMap<>(); binRanges(locator, ranges, binnedRanges); doLookups(binnedRanges, receiver, columns); }
lookups = Range.mergeOverlapping(lookups);
.mergeOverlapping(Lists.transform(entry.getValue(), tm -> tm.getExtent().toDataRange())); List<TRowRange> ranges = merged.stream().map(r -> toClippedExtent(r).toThrift())
ranges = Range.mergeOverlapping(ranges); if (ranges.size() > 1) { Collections.sort(ranges);
"AutoAdjustRanges must be enabled when using BatchScanner optimization"); List<Range> ranges = autoAdjust ? Range.mergeOverlapping(tableConfig.getRanges()) : tableConfig.getRanges(); if (ranges.isEmpty()) {
"AutoAdjustRanges must be enabled when using BatchScanner optimization"); List<Range> ranges = autoAdjust ? Range.mergeOverlapping(tableConfig.getRanges()) : tableConfig.getRanges(); if (ranges.isEmpty()) {
/** Set the target ranges that we will iterator over, before applying a "seek range mask". * Merges overlapping ranges together. Infinite range by default. */ public void setTargetRanges(Collection<Range> ranges) { targetRanges = new TreeSet<>(Range.mergeOverlapping(new TreeSet<>(ranges))); }
/** * Parse string s in the Matlab format "row1,row5,row7,:,row9,w,:,z,zz,:," * Does not have to be ordered but cannot overlap. * * @param s - * @return a bunch of ranges */ static SortedSet<Range> parseRanges(String s) { Collection<Range> rngs = GraphuloUtil.d4mRowToRanges(s); rngs = Range.mergeOverlapping(rngs); return new TreeSet<>(rngs); }
/** * Parse string s in the Matlab format "row1,row5,row7,:,row9,w,:,z,zz,:," * Does not have to be ordered but cannot overlap. * * @param s - * @return a bunch of ranges */ static SortedSet<Range> parseRanges(String s) { SortedSet<Range> rngs = GraphuloUtil.d4mRowToRanges(s); return new TreeSet<>(Range.mergeOverlapping(rngs)); }
private synchronized void lookup(List<Range> ranges, ResultReceiver receiver) throws AccumuloException, AccumuloSecurityException, TableNotFoundException { List<Column> columns = new ArrayList<>(options.fetchedColumns); ranges = Range.mergeOverlapping(ranges); Map<String,Map<KeyExtent,List<Range>>> binnedRanges = new HashMap<>(); binRanges(locator, ranges, binnedRanges); doLookups(binnedRanges, receiver, columns); }
protected Object processOrOpNode(Node nd, Object[] nodeOutputs) { List<Range> orRanges = new ArrayList<Range>(nodeOutputs.length); for (Object nodeOutput : nodeOutputs) { if (nodeOutput instanceof Range) { orRanges.add((Range) nodeOutput); } else if (nodeOutput instanceof List) { @SuppressWarnings("unchecked") List<Range> childRanges = (List<Range>) nodeOutput; orRanges.addAll(childRanges); } else { LOG.error("Expected Range from {} but got {}", nd, nodeOutput); throw new IllegalArgumentException("Expected Range but got " + nodeOutput.getClass().getName()); } } // Try to merge multiple ranges together if (orRanges.size() > 1) { return Range.mergeOverlapping(orRanges); } else if (1 == orRanges.size()) { // Return just the single Range return orRanges.get(0); } else { // No ranges, just return the empty list return orRanges; } }
protected Object processOrOpNode(Node nd, Object[] nodeOutputs) { List<Range> orRanges = new ArrayList<Range>(nodeOutputs.length); for (Object nodeOutput : nodeOutputs) { if (nodeOutput instanceof Range) { orRanges.add((Range) nodeOutput); } else if (nodeOutput instanceof List) { @SuppressWarnings("unchecked") List<Range> childRanges = (List<Range>) nodeOutput; orRanges.addAll(childRanges); } else { LOG.error("Expected Range from {} but got {}", nd, nodeOutput); throw new IllegalArgumentException("Expected Range but got " + nodeOutput.getClass().getName()); } } // Try to merge multiple ranges together if (orRanges.size() > 1) { return Range.mergeOverlapping(orRanges); } else if (1 == orRanges.size()) { // Return just the single Range return orRanges.get(0); } else { // No ranges, just return the empty list return orRanges; } }
public static String rangesToD4MString(Collection<Range> ranges, char sep) { if (ranges == null || ranges.isEmpty()) return ""; ranges = Range.mergeOverlapping(ranges); StringBuilder sb = new StringBuilder(); String infEnd = null; for (Range range : ranges) { if (range.isInfiniteStartKey() && range.isInfiniteStopKey()) return sb.append(':').append(sep).toString(); else if (range.isInfiniteStartKey()) { String endRow = normalizeEndRow(range); assert endRow != null; sb.insert(0, ":" + sep+endRow+sep); } else if (range.isInfiniteStopKey()) { infEnd = normalizeStartRow(range); assert infEnd != null; } else { String startRow = normalizeStartRow(range), endRow = normalizeEndRow(range); assert startRow != null && endRow != null; if (startRow.equals(endRow)) sb.append(startRow).append(sep); else sb.append(startRow).append(sep).append(':').append(sep).append(endRow).append(sep); } } if (infEnd != null) sb.append(infEnd).append(sep).append(':').append(sep); return sb.toString(); }
/** * create a predicate within a certain id ranges * * @param query element query * @param <T> epgm element type * @return accumulo predicate */ public static <T extends EPGMElement> AccumuloQueryHolder<T> create( @Nonnull ElementQuery<AccumuloElementFilter<T>> query ) { List<Range> ranges = Range.mergeOverlapping(Optional.ofNullable(query.getQueryRanges()) .orElse(GradoopIdSet.fromExisting()) .stream() .map(GradoopId::toString) .map(Range::exact) .collect(Collectors.toList())); return new AccumuloQueryHolder<>( query.getQueryRanges() == null ? null : ranges, query.getFilterPredicate()); }
lookups = Range.mergeOverlapping(lookups);
public MerkleTreeNode(List<MerkleTreeNode> children, String digestAlgorithm) throws NoSuchAlgorithmException { level = 0; this.children = new ArrayList<>(children.size()); MessageDigest digest = MessageDigest.getInstance(digestAlgorithm); Range childrenRange = null; for (MerkleTreeNode child : children) { this.children.add(child.getRange()); level = Math.max(child.getLevel(), level); digest.update(child.getHash()); if (null == childrenRange) { childrenRange = child.getRange(); } else { List<Range> overlappingRanges = Range .mergeOverlapping(Arrays.asList(childrenRange, child.getRange())); if (1 != overlappingRanges.size()) { log.error("Tried to merge non-contiguous ranges: {} {}", childrenRange, child.getRange()); throw new IllegalArgumentException( "Ranges must be contiguous: " + childrenRange + ", " + child.getRange()); } childrenRange = overlappingRanges.get(0); } } // Our actual level is one more than the highest level of our children level++; // Roll the hash up the tree hash = digest.digest(); // Set the range to be the merged result of the children range = childrenRange; }
/** * Return the lists of computed slit points */ public List<InputSplit> getSplits(JobContext job) throws IOException { AccumuloHelper cbHelper = new AccumuloHelper(); cbHelper.setup(job.getConfiguration()); String tableName = BulkInputFormat.getTablename(job.getConfiguration()); boolean autoAdjust = BulkInputFormat.getAutoAdjustRanges(job.getConfiguration()); List<Range> ranges = autoAdjust ? Range.mergeOverlapping(BulkInputFormat.getRanges(job.getConfiguration())) : BulkInputFormat.getRanges(job .getConfiguration()); if (ranges.isEmpty()) { ranges = Lists.newArrayListWithCapacity(1); ranges.add(new Range()); } List<InputSplit> inputSplits = Lists.newArrayList(); try { inputSplits = computeSplitPoints(job, tableName, ranges); } catch (TableNotFoundException | AccumuloException | AccumuloSecurityException | InterruptedException e) { throw new IOException(e); } return inputSplits; }
List<Range> ranges = autoAdjust ? Range.mergeOverlapping(BulkInputFormat.getRanges(job.getConfiguration())) : BulkInputFormat.getRanges(job .getConfiguration());
ranges = Range.mergeOverlapping(ranges); if (ranges.size() > 1) { Collections.sort(ranges);
ranges = Range.mergeOverlapping(ranges); if (ranges.size() > 1) { Collections.sort(ranges);