public class MultiSliceQueriesGroupingUtil extends Object
Modifier and Type | Class and Description |
---|---|
static class |
MultiSliceQueriesGroupingUtil.DataTreeNode<Q> |
static class |
MultiSliceQueriesGroupingUtil.TreeNode |
Constructor and Description |
---|
MultiSliceQueriesGroupingUtil() |
Modifier and Type | Method and Description |
---|---|
static <K> void |
moveQueriesToNewLeafNode(List<org.apache.commons.lang3.tuple.Pair<SliceQuery,List<K>>> updatedQueryGroup,
K[] allVertices,
MultiSliceQueriesGroupingUtil.TreeNode groupingRootTreeNode,
List<KeysQueriesGroup<K,SliceQuery>> remainingQueryGroups)
Moves queries `updatedQueryGroup` to either existing leaf nodes or generates new leaf nodes for the necessary key sets.
|
static <C,N> void |
replaceCurrentLeafNodeWithUpdatedTypeLeafNodes(List<MultiSliceQueriesGroupingUtil.TreeNode> allLeafParents,
Map<C,N> oldToNewKeysMap)
Replaces child leaf nodes which have data
KeysQueriesGroup<C> with new leaf nodes which have keys replaces
by `oldToNewKeysMap`. |
static MultiKeysQueryGroups<Object,SliceQuery> |
toMultiKeysQueryGroups(Collection<InternalVertex> vertices,
List<BackendQueryHolder<SliceQuery>> queries)
Queries grouping algorithm for the same sets of keys (vertices).
|
public static <K> void moveQueriesToNewLeafNode(List<org.apache.commons.lang3.tuple.Pair<SliceQuery,List<K>>> updatedQueryGroup, K[] allVertices, MultiSliceQueriesGroupingUtil.TreeNode groupingRootTreeNode, List<KeysQueriesGroup<K,SliceQuery>> remainingQueryGroups)
updatedQueryGroup
- Query groups to which a query should be moved.allVertices
- All verticesgroupingRootTreeNode
- Root tree node which represents chains where each left node represents a missing key
from `allVertices` array, and each right node represents existing key from `allVertices`
array.remainingQueryGroups
- Remaining groups where queries from `updatedQueryGroup` should be added. Notice, if
a new leaf node is added into `groupingRootTreeNode` then a new group is added to
`remainingQueryGroups`.public static <C,N> void replaceCurrentLeafNodeWithUpdatedTypeLeafNodes(List<MultiSliceQueriesGroupingUtil.TreeNode> allLeafParents, Map<C,N> oldToNewKeysMap)
KeysQueriesGroup<C>
with new leaf nodes which have keys replaces
by `oldToNewKeysMap`. The resulting data of child nodes will be KeysQueriesGroup<N>
.C
- current key typeN
- new key typeallLeafParents
- parent nodesoldToNewKeysMap
- map to replace old type keys with new type keyspublic static MultiKeysQueryGroups<Object,SliceQuery> toMultiKeysQueryGroups(Collection<InternalVertex> vertices, List<BackendQueryHolder<SliceQuery>> queries)
vertices
- all vertices.queries
- all queries which should be executed for all vertices.Copyright © 2012–2024. All rights reserved.