当前位置: 首页>>代码示例>>Java>>正文


Java BTree类代码示例

本文整理汇总了Java中org.apache.cassandra.utils.btree.BTree的典型用法代码示例。如果您正苦于以下问题:Java BTree类的具体用法?Java BTree怎么用?Java BTree使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


BTree类属于org.apache.cassandra.utils.btree包,在下文中一共展示了BTree类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: build

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
protected static Holder build(UnfilteredRowIterator iterator, int initialRowCapacity, boolean ordered)
{
    CFMetaData metadata = iterator.metadata();
    PartitionColumns columns = iterator.columns();
    boolean reversed = iterator.isReverseOrder();

    BTree.Builder<Row> builder = BTree.builder(metadata.comparator, initialRowCapacity);
    builder.auto(!ordered);
    MutableDeletionInfo.Builder deletionBuilder = MutableDeletionInfo.builder(iterator.partitionLevelDeletion(), metadata.comparator, reversed);

    while (iterator.hasNext())
    {
        Unfiltered unfiltered = iterator.next();
        if (unfiltered.kind() == Unfiltered.Kind.ROW)
            builder.add((Row)unfiltered);
        else
            deletionBuilder.add((RangeTombstoneMarker)unfiltered);
    }

    if (reversed)
        builder.reverse();

    return new Holder(columns, builder.build(), deletionBuilder.build(), iterator.staticRow(), iterator.stats());
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:25,代码来源:AbstractBTreePartition.java

示例2: mergeTo

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
/**
 * Returns the result of merging this {@code Columns} object with the
 * provided one.
 *
 * @param other the other {@code Columns} to merge this object with.
 *
 * @return the result of merging/taking the union of {@code this} and
 * {@code other}. The returned object may be one of the operand and that
 * operand is a subset of the other operand.
 */
public Columns mergeTo(Columns other)
{
    if (this == other || other == NONE)
        return this;
    if (this == NONE)
        return other;

    Object[] tree = BTree.<ColumnDefinition>merge(this.columns, other.columns, Comparator.naturalOrder(),
                                                  UpdateFunction.noOp());
    if (tree == this.columns)
        return this;
    if (tree == other.columns)
        return other;

    return new Columns(tree, findFirstComplexIdx(tree));
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:27,代码来源:Columns.java

示例3: deserialize

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
public Columns deserialize(DataInputPlus in, CFMetaData metadata) throws IOException
{
    int length = (int)in.readUnsignedVInt();
    BTree.Builder<ColumnDefinition> builder = BTree.builder(Comparator.naturalOrder());
    builder.auto(false);
    for (int i = 0; i < length; i++)
    {
        ByteBuffer name = ByteBufferUtil.readWithVIntLength(in);
        ColumnDefinition column = metadata.getColumnDefinition(name);
        if (column == null)
        {
            // If we don't find the definition, it could be we have data for a dropped column, and we shouldn't
            // fail deserialization because of that. So we grab a "fake" ColumnDefinition that ensure proper
            // deserialization. The column will be ignore later on anyway.
            column = metadata.getDroppedColumnDefinition(name);
            if (column == null)
                throw new RuntimeException("Unknown column " + UTF8Type.instance.getString(name) + " during deserialization");
        }
        builder.add(column);
    }
    return new Columns(builder.build());
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:23,代码来源:Columns.java

示例4: collection

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
private <V> Collection<V> collection(final boolean forwards, final Function<Cell, V> f)
{
    final Holder ref = this.ref;
    return new AbstractCollection<V>()
    {
        public Iterator<V> iterator()
        {
            return Iterators.transform(BTree.<Cell>slice(ref.tree, forwards), f);
        }

        public int size()
        {
            return BTree.slice(ref.tree, true).count();
        }
    };
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:17,代码来源:AtomicBTreeColumns.java

示例5: testSlicingAllSmallTrees

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
@Test
public void testSlicingAllSmallTrees() throws ExecutionException, InterruptedException
{
    Object[] cur = BTree.empty();
    TreeSet<Integer> canon = new TreeSet<>();
    // we set FAN_FACTOR to 4, so 128 items is four levels deep, three fully populated
    for (int i = 0 ; i < 128 ; i++)
    {
        String id = String.format("[0..%d)", canon.size());
        System.out.println("Testing " + id);
        Futures.allAsList(testAllSlices(id, cur, canon)).get();
        Object[] next = null;
        while (next == null)
            next = BTree.update(cur, ICMP, Arrays.asList(i), true, SPORADIC_ABORT);
        cur = next;
        canon.add(i);
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:19,代码来源:LongBTreeTest.java

示例6: testClearOnAbort

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
@Test
public void testClearOnAbort()
{
    final Comparator<String> cmp = new Comparator<String>()
    {
        public int compare(String o1, String o2)
        {
            return o1.compareTo(o2);
        }
    };

    Object[] btree = BTree.build(ranges(range(0, 8)), cmp, true, UpdateFunction.NoOp.<String>instance());
    BTree.update(btree, cmp, ranges(range(0, 94)), false, new AbortAfterX(90));
    btree = BTree.update(btree, cmp, ranges(range(0, 94)), false, UpdateFunction.NoOp.<String>instance());
    Assert.assertTrue(BTree.isWellFormed(btree, cmp));
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:17,代码来源:BTreeTest.java

示例7: build

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
protected static Holder build(UnfilteredRowIterator iterator, int initialRowCapacity)
{
    CFMetaData metadata = iterator.metadata();
    PartitionColumns columns = iterator.columns();
    boolean reversed = iterator.isReverseOrder();

    BTree.Builder<Row> builder = BTree.builder(metadata.comparator, initialRowCapacity);
    builder.auto(false);
    MutableDeletionInfo.Builder deletionBuilder = MutableDeletionInfo.builder(iterator.partitionLevelDeletion(), metadata.comparator, reversed);

    while (iterator.hasNext())
    {
        Unfiltered unfiltered = iterator.next();
        if (unfiltered.kind() == Unfiltered.Kind.ROW)
            builder.add((Row)unfiltered);
        else
            deletionBuilder.add((RangeTombstoneMarker)unfiltered);
    }

    if (reversed)
        builder.reverse();

    return new Holder(columns, builder.build(), deletionBuilder.build(), iterator.staticRow(), iterator.stats());
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:25,代码来源:AbstractBTreePartition.java

示例8: testBuilding_UpdateFunctionCallBack

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
/**
 * Tests that the apply method of the <code>UpdateFunction</code> is only called once per value with each build call.
 */
@Test
public void testBuilding_UpdateFunctionCallBack()
{
    CallsMonitor monitor = new CallsMonitor();
    Object[] btree = BTree.build(Arrays.asList(1), monitor);
    assertArrayEquals(new Object[] {1}, btree);
    assertEquals(1, monitor.getNumberOfCalls(1));

    monitor.clear();
    btree = BTree.build(Arrays.asList(1, 2), monitor);
    assertArrayEquals(new Object[] {1, 2, null}, btree);
    assertEquals(1, monitor.getNumberOfCalls(1));
    assertEquals(1, monitor.getNumberOfCalls(2));

    monitor.clear();
    btree = BTree.build(Arrays.asList(1, 2, 3), monitor);
    assertArrayEquals(new Object[] {1, 2, 3}, btree);
    assertEquals(1, monitor.getNumberOfCalls(1));
    assertEquals(1, monitor.getNumberOfCalls(2));
    assertEquals(1, monitor.getNumberOfCalls(3));
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:25,代码来源:BTreeTest.java

示例9: sliceIterator

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
private UnfilteredRowIterator sliceIterator(ColumnFilter selection, Slice slice, boolean reversed, Holder current, Row staticRow)
{
    ClusteringBound start = slice.start() == ClusteringBound.BOTTOM ? null : slice.start();
    ClusteringBound end = slice.end() == ClusteringBound.TOP ? null : slice.end();
    Iterator<Row> rowIter = BTree.slice(current.tree, metadata.comparator, start, true, end, true, desc(reversed));
    Iterator<RangeTombstone> deleteIter = current.deletionInfo.rangeIterator(slice, reversed);
    return merge(rowIter, deleteIter, selection, reversed, current, staticRow);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:9,代码来源:AbstractBTreePartition.java

示例10: lastRow

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
public Row lastRow()
{
    Object[] tree = holder().tree;
    if (BTree.isEmpty(tree))
        return null;

    return BTree.findByIndex(tree, BTree.size(tree) - 1);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:9,代码来源:AbstractBTreePartition.java

示例11: PartitionUpdate

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
private PartitionUpdate(CFMetaData metadata,
                        DecoratedKey key,
                        PartitionColumns columns,
                        MutableDeletionInfo deletionInfo,
                        int initialRowCapacity,
                        boolean canHaveShadowedData)
{
    super(metadata, key);
    this.deletionInfo = deletionInfo;
    this.holder = new Holder(columns, BTree.empty(), deletionInfo, Rows.EMPTY_STATIC_ROW, EncodingStats.NO_STATS);
    this.canHaveShadowedData = canHaveShadowedData;
    rowBuilder = builder(initialRowCapacity);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:14,代码来源:PartitionUpdate.java

示例12: findFirstComplexIdx

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
private static int findFirstComplexIdx(Object[] tree)
{
    // have fast path for common no-complex case
    int size = BTree.size(tree);
    if (!BTree.isEmpty(tree) && BTree.<ColumnDefinition>findByIndex(tree, size - 1).isSimple())
        return size;
    return BTree.ceilIndex(tree, Comparator.naturalOrder(), FIRST_COMPLEX);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:9,代码来源:Columns.java

示例13: containsAll

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
/**
 * Whether this object is a superset of the provided other {@code Columns object}.
 *
 * @param other the other object to test for inclusion in this object.
 *
 * @return whether all the columns of {@code other} are contained by this object.
 */
public boolean containsAll(Collection<?> other)
{
    if (other == this)
        return true;
    if (other.size() > this.size())
        return false;

    BTreeSearchIterator<ColumnDefinition, ColumnDefinition> iter = BTree.slice(columns, Comparator.naturalOrder(), BTree.Dir.ASC);
    for (Object def : other)
        if (iter.next((ColumnDefinition) def) == null)
            return false;
    return true;
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:21,代码来源:Columns.java

示例14: equals

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
@Override
public boolean equals(Object other)
{
    if (other == this)
        return true;
    if (!(other instanceof Columns))
        return false;

    Columns that = (Columns)other;
    return this.complexIdx == that.complexIdx && BTree.equals(this.columns, that.columns);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:12,代码来源:Columns.java

示例15: deserializeSubset

import org.apache.cassandra.utils.btree.BTree; //导入依赖的package包/类
public Columns deserializeSubset(Columns superset, DataInputPlus in) throws IOException
{
    long encoded = in.readUnsignedVInt();
    if (encoded == 0L)
    {
        return superset;
    }
    else if (superset.size() >= 64)
    {
        return deserializeLargeSubset(in, superset, (int) encoded);
    }
    else
    {
        BTree.Builder<ColumnDefinition> builder = BTree.builder(Comparator.naturalOrder());
        int firstComplexIdx = 0;
        for (ColumnDefinition column : superset)
        {
            if ((encoded & 1) == 0)
            {
                builder.add(column);
                if (column.isSimple())
                    ++firstComplexIdx;
            }
            encoded >>>= 1;
        }
        return new Columns(builder.build(), firstComplexIdx);
    }
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:29,代码来源:Columns.java


注:本文中的org.apache.cassandra.utils.btree.BTree类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。