public List<EntryList> edgeMultiQuery(LongArrayList vids, SliceQuery query, BackendTransaction tx) { Preconditions.checkArgument(vids != null && !vids.isEmpty()); List<StaticBuffer> vertexIds = new ArrayList<StaticBuffer>(vids.size()); for (int i = 0; i < vids.size(); i++) { Preconditions.checkArgument(vids.get(i) > 0); vertexIds.add(idManager.getKey(vids.get(i))); } Map<StaticBuffer,EntryList> result = tx.edgeStoreMultiQuery(vertexIds, query); List<EntryList> resultList = new ArrayList<EntryList>(result.size()); for (StaticBuffer v : vertexIds) resultList.add(result.get(v)); return resultList; }
public List<EntryList> edgeMultiQuery(LongArrayList vertexIdsAsLongs, SliceQuery query, BackendTransaction tx) { Preconditions.checkArgument(vertexIdsAsLongs != null && !vertexIdsAsLongs.isEmpty()); final List<StaticBuffer> vertexIds = new ArrayList<>(vertexIdsAsLongs.size()); for (int i = 0; i < vertexIdsAsLongs.size(); i++) { Preconditions.checkArgument(vertexIdsAsLongs.get(i) > 0); vertexIds.add(idManager.getKey(vertexIdsAsLongs.get(i))); } final Map<StaticBuffer,EntryList> result = tx.edgeStoreMultiQuery(vertexIds, query); final List<EntryList> resultList = new ArrayList<>(result.size()); for (StaticBuffer v : vertexIds) resultList.add(result.get(v)); return resultList; }
@Override public void add(TitanVertex n) { if (!vertices.isEmpty()) sorted = sorted && vertices.get(vertices.size()-1)<=n.longId(); vertices.add(n.longId()); }
@Override public void add(JanusGraphVertex n) { if (!vertices.isEmpty()) sorted = sorted && vertices.get(vertices.size()-1)<=n.longId(); vertices.add(n.longId()); }
if (!vids.isEmpty()) { if (externalVertexRetriever.hasVerifyExistence()) { List<EntryList> existence = graph.edgeMultiQuery(vids,graph.vertexExistenceQuery,txHandle);
public void executeMultiQuery(final Collection<InternalVertex> vertices, final SliceQuery sq, final QueryProfiler profiler) { LongArrayList vids = new LongArrayList(vertices.size()); for (InternalVertex v : vertices) { if (!v.isNew() && v.hasId() && (v instanceof CacheVertex) && !v.hasLoadedRelations(sq)) vids.add(v.longId()); } if (!vids.isEmpty()) { List<EntryList> results = QueryProfiler.profile(profiler, sq, true, q -> graph.edgeMultiQuery(vids, q, txHandle)); int pos = 0; for (TitanVertex v : vertices) { if (pos<vids.size() && vids.get(pos) == v.longId()) { final EntryList vresults = results.get(pos); ((CacheVertex) v).loadRelations(sq, new Retriever<SliceQuery, EntryList>() { @Override public EntryList get(SliceQuery query) { return vresults; } }); pos++; } } } }
public void executeMultiQuery(final Collection<InternalVertex> vertices, final SliceQuery sq, final QueryProfiler profiler) { LongArrayList vertexIds = new LongArrayList(vertices.size()); for (InternalVertex v : vertices) { if (!v.isNew() && v.hasId() && (v instanceof CacheVertex) && !v.hasLoadedRelations(sq)) vertexIds.add(v.longId()); } if (!vertexIds.isEmpty()) { List<EntryList> results = QueryProfiler.profile(profiler, sq, true, q -> graph.edgeMultiQuery(vertexIds, q, txHandle)); int pos = 0; for (JanusGraphVertex v : vertices) { if (pos<vertexIds.size() && vertexIds.get(pos) == v.longId()) { final EntryList vresults = results.get(pos); ((CacheVertex) v).loadRelations(sq, query -> vresults); pos++; } } } }
if (!vertexIds.isEmpty()) { if (externalVertexRetriever.hasVerifyExistence()) { List<EntryList> existence = graph.edgeMultiQuery(vertexIds,graph.vertexExistenceQuery,txHandle);
public static LongArrayList mergeSort(LongArrayList a, LongArrayList b) { int posa=0, posb=0; LongArrayList result = new LongArrayList(a.size()+b.size()); while (posa<a.size() || posb<b.size()) { long next; if (posa>=a.size()) { next=b.get(posb++); } else if (posb>=b.size()) { next=a.get(posa++); } else if (a.get(posa)<=b.get(posb)) { next=a.get(posa++); } else { next=b.get(posb++); } Preconditions.checkArgument(result.isEmpty() || result.get(result.size()-1)<=next, "The input lists are not sorted"); result.add(next); } return result; }
public static LongArrayList mergeSort(LongArrayList a, LongArrayList b) { int positionA=0, positionB=0; LongArrayList result = new LongArrayList(a.size()+b.size()); while (positionA<a.size() || positionB<b.size()) { long next; if (positionA>=a.size()) { next=b.get(positionB++); } else if (positionB>=b.size()) { next=a.get(positionA++); } else if (a.get(positionA)<=b.get(positionB)) { next=a.get(positionA++); } else { next=b.get(positionB++); } Preconditions.checkArgument(result.isEmpty() || result.get(result.size()-1)<=next, "The input lists are not sorted"); result.add(next); } return result; }
void processBufferedChildBuckets() throws IOException { if (bucketBuffer.isEmpty()) { return; } final int prevParentDoc = parentDocs.prevSetBit(currentParentDoc - 1); int childDocId = childDocs.docID(); if (childDocId <= prevParentDoc) { childDocId = childDocs.advance(prevParentDoc + 1); } for (; childDocId < currentParentDoc; childDocId = childDocs.nextDoc()) { cachedScorer.doc = childDocId; final long[] buffer = bucketBuffer.buffer; final int size = bucketBuffer.size(); for (int i = 0; i < size; i++) { collectBucket(sub, childDocId, buffer[i]); } } bucketBuffer.clear(); } }
public List<EntryList> edgeMultiQuery(LongArrayList vids, SliceQuery query, BackendTransaction tx) { Preconditions.checkArgument(vids != null && !vids.isEmpty()); List<StaticBuffer> vertexIds = new ArrayList<StaticBuffer>(vids.size()); for (int i = 0; i < vids.size(); i++) { Preconditions.checkArgument(vids.get(i) > 0); vertexIds.add(idManager.getKey(vids.get(i))); } Map<StaticBuffer,EntryList> result = tx.edgeStoreMultiQuery(vertexIds, query); List<EntryList> resultList = new ArrayList<EntryList>(result.size()); for (StaticBuffer v : vertexIds) resultList.add(result.get(v)); return resultList; }
public List<EntryList> edgeMultiQuery(LongArrayList vids, SliceQuery query, BackendTransaction tx) { Preconditions.checkArgument(vids != null && !vids.isEmpty()); List<StaticBuffer> vertexIds = new ArrayList<StaticBuffer>(vids.size()); for (int i = 0; i < vids.size(); i++) { Preconditions.checkArgument(vids.get(i) > 0); vertexIds.add(idManager.getKey(vids.get(i))); } Map<StaticBuffer,EntryList> result = tx.edgeStoreMultiQuery(vertexIds, query); List<EntryList> resultList = new ArrayList<EntryList>(result.size()); for (StaticBuffer v : vertexIds) resultList.add(result.get(v)); return resultList; }
@Override public void add(TitanVertex n) { if (!vertices.isEmpty()) sorted = sorted && vertices.get(vertices.size()-1)<=n.longId(); vertices.add(n.longId()); }
@Override public void add(TitanVertex n) { if (!vertices.isEmpty()) sorted = sorted && vertices.get(vertices.size()-1)<=n.getLongId(); vertices.add(n.getLongId()); }
void processBufferedChildBuckets() throws IOException { if (bucketBuffer.isEmpty()) { return; } final int prevParentDoc = parentDocs.prevSetBit(currentParentDoc - 1); int childDocId = childDocs.docID(); if (childDocId <= prevParentDoc) { childDocId = childDocs.advance(prevParentDoc + 1); } for (; childDocId < currentParentDoc; childDocId = childDocs.nextDoc()) { final long[] buffer = bucketBuffer.buffer; final int size = bucketBuffer.size(); for (int i = 0; i < size; i++) { collectBucket(sub, childDocId, buffer[i]); } } bucketBuffer.clear(); }
void processBufferedChildBuckets() throws IOException { if (bucketBuffer.isEmpty()) { return; } final int prevParentDoc = parentDocs.prevSetBit(currentParentDoc - 1); int childDocId = childDocs.docID(); if (childDocId <= prevParentDoc) { childDocId = childDocs.advance(prevParentDoc + 1); } for (; childDocId < currentParentDoc; childDocId = childDocs.nextDoc()) { final long[] buffer = bucketBuffer.buffer; final int size = bucketBuffer.size(); for (int i = 0; i < size; i++) { collectBucket(sub, childDocId, buffer[i]); } } bucketBuffer.clear(); }
public static LongArrayList mergeSort(LongArrayList a, LongArrayList b) { int posa=0, posb=0; LongArrayList result = new LongArrayList(a.size()+b.size()); while (posa<a.size() || posb<b.size()) { long next; if (posa>=a.size()) { next=b.get(posb++); } else if (posb>=b.size()) { next=a.get(posa++); } else if (a.get(posa)<=b.get(posb)) { next=a.get(posa++); } else { next=b.get(posb++); } Preconditions.checkArgument(result.isEmpty() || result.get(result.size()-1)<=next, "The input lists are not sorted"); result.add(next); } return result; }
public static LongArrayList mergeSort(LongArrayList a, LongArrayList b) { int posa=0, posb=0; LongArrayList result = new LongArrayList(a.size()+b.size()); while (posa<a.size() || posb<b.size()) { long next; if (posa>=a.size()) { next=b.get(posb++); } else if (posb>=b.size()) { next=a.get(posa++); } else if (a.get(posa)<=b.get(posb)) { next=a.get(posa++); } else { next=b.get(posb++); } Preconditions.checkArgument(result.isEmpty() || result.get(result.size()-1)<=next, "The input lists are not sorted"); result.add(next); } return result; }