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


Java RandomAccessReader.length方法代码示例

本文整理汇总了Java中org.apache.cassandra.io.util.RandomAccessReader.length方法的典型用法代码示例。如果您正苦于以下问题:Java RandomAccessReader.length方法的具体用法?Java RandomAccessReader.length怎么用?Java RandomAccessReader.length使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.cassandra.io.util.RandomAccessReader的用法示例。


在下文中一共展示了RandomAccessReader.length方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: buildSummaryAtLevel

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
private IndexSummary buildSummaryAtLevel(int newSamplingLevel) throws IOException
{
    // we read the positions in a BRAF so we don't have to worry about an entry spanning a mmap boundary.
    RandomAccessReader primaryIndex = RandomAccessReader.open(new File(descriptor.filenameFor(Component.PRIMARY_INDEX)));
    try
    {
        long indexSize = primaryIndex.length();
        try (IndexSummaryBuilder summaryBuilder = new IndexSummaryBuilder(estimatedKeys(), metadata.getMinIndexInterval(), newSamplingLevel))
        {
            long indexPosition;
            while ((indexPosition = primaryIndex.getFilePointer()) != indexSize)
            {
                summaryBuilder.maybeAddEntry(partitioner.decorateKey(ByteBufferUtil.readWithShortLength(primaryIndex)), indexPosition);
                RowIndexEntry.Serializer.skip(primaryIndex);
            }

            return summaryBuilder.build(partitioner);
        }
    }
    finally
    {
        FileUtils.closeQuietly(primaryIndex);
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:25,代码来源:SSTableReader.java

示例2: buildSummaryAtLevel

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
private IndexSummary buildSummaryAtLevel(int newSamplingLevel) throws IOException
{
    // we read the positions in a BRAF so we don't have to worry about an entry spanning a mmap boundary.
    RandomAccessReader primaryIndex = RandomAccessReader.open(new File(descriptor.filenameFor(Component.PRIMARY_INDEX)));
    try
    {
        long indexSize = primaryIndex.length();
        IndexSummaryBuilder summaryBuilder = new IndexSummaryBuilder(estimatedKeys(), metadata.getMinIndexInterval(), newSamplingLevel);

        long indexPosition;
        while ((indexPosition = primaryIndex.getFilePointer()) != indexSize)
        {
            summaryBuilder.maybeAddEntry(partitioner.decorateKey(ByteBufferUtil.readWithShortLength(primaryIndex)), indexPosition);
            RowIndexEntry.Serializer.skip(primaryIndex);
        }

        return summaryBuilder.build(partitioner);
    }
    finally
    {
        FileUtils.closeQuietly(primaryIndex);
    }
}
 
开发者ID:daidong,项目名称:GraphTrek,代码行数:24,代码来源:SSTableReader.java

示例3: readSyncMarker

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
private int readSyncMarker(CommitLogDescriptor descriptor, int offset, RandomAccessReader reader) throws IOException
{
    if (offset > reader.length() - CommitLogSegment.SYNC_MARKER_SIZE)
    {
        if (offset != reader.length() && offset != Integer.MAX_VALUE)
            logger.warn("Encountered bad header at position {} of Commit log {}; not enough room for a header", offset, reader.getPath());
        // cannot possibly be a header here. if we're == length(), assume it's a correctly written final segment
        return -1;
    }
    reader.seek(offset);
    PureJavaCrc32 crc = new PureJavaCrc32();
    crc.updateInt((int) (descriptor.id & 0xFFFFFFFFL));
    crc.updateInt((int) (descriptor.id >>> 32));
    crc.updateInt((int) reader.getPosition());
    int end = reader.readInt();
    long filecrc;
    if (descriptor.version < CommitLogDescriptor.VERSION_21)
        filecrc = reader.readLong();
    else
        filecrc = reader.readInt() & 0xffffffffL;
    if (crc.getValue() != filecrc)
    {
        if (end != 0 || filecrc != 0)
        {
            logger.warn("Encountered bad header at position {} of commit log {}, with invalid CRC. The end of segment marker should be zero.", offset, reader.getPath());
        }
        return -1;
    }
    else if (end < offset || end > reader.length())
    {
        logger.warn("Encountered bad header at position {} of commit log {}, with bad position but valid CRC", offset, reader.getPath());
        return -1;
    }
    return end;
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:36,代码来源:CommitLogReplayer.java

示例4: readSyncMarker

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
private int readSyncMarker(CommitLogDescriptor descriptor, int offset, RandomAccessReader reader, boolean tolerateTruncation) throws IOException
{
    if (offset > reader.length() - CommitLogSegment.SYNC_MARKER_SIZE)
    {
        // There was no room in the segment to write a final header. No data could be present here.
        return -1;
    }
    reader.seek(offset);
    CRC32 crc = new CRC32();
    updateChecksumInt(crc, (int) (descriptor.id & 0xFFFFFFFFL));
    updateChecksumInt(crc, (int) (descriptor.id >>> 32));
    updateChecksumInt(crc, (int) reader.getPosition());
    int end = reader.readInt();
    long filecrc = reader.readInt() & 0xffffffffL;
    if (crc.getValue() != filecrc)
    {
        if (end != 0 || filecrc != 0)
        {
            handleReplayError(false,
                              "Encountered bad header at position %d of commit log %s, with invalid CRC. " +
                              "The end of segment marker should be zero.",
                              offset, reader.getPath());
        }
        return -1;
    }
    else if (end < offset || end > reader.length())
    {
        handleReplayError(tolerateTruncation, "Encountered bad header at position %d of commit log %s, with bad position but valid CRC",
                          offset, reader.getPath());
        return -1;
    }
    return end;
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:34,代码来源:CommitLogReplayer.java

示例5: readHeader

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
private int readHeader(long segmentId, int offset, RandomAccessReader reader) throws IOException
{
    if (offset > reader.length() - CommitLogSegment.SYNC_MARKER_SIZE)
    {
        if (offset != reader.length() && offset != Integer.MAX_VALUE)
            logger.warn("Encountered bad header at position {} of Commit log {}; not enough room for a header");
        // cannot possibly be a header here. if we're == length(), assume it's a correctly written final segment
        return -1;
    }
    reader.seek(offset);
    PureJavaCrc32 crc = new PureJavaCrc32();
    crc.update((int) (segmentId & 0xFFFFFFFFL));
    crc.update((int) (segmentId >>> 32));
    crc.update((int) reader.getPosition());
    int end = reader.readInt();
    long filecrc = reader.readLong();
    if (crc.getValue() != filecrc)
    {
        if (end != 0 || filecrc != 0)
        {
            logger.warn("Encountered bad header at position {} of commit log {}, with invalid CRC. The end of segment marker should be zero.", offset, reader.getPath());
        }
        return -1;
    }
    else if (end < offset || end > reader.length())
    {
        logger.warn("Encountered bad header at position {} of commit log {}, with bad position but valid CRC", offset, reader.getPath());
        return -1;
    }
    return end;
}
 
开发者ID:mafernandez-stratio,项目名称:cassandra-cqlMod,代码行数:32,代码来源:CommitLogReplayer.java

示例6: buildSummary

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
/**
 * Build index summary(and optionally bloom filter) by reading through Index.db file.
 *
 * @param recreateBloomFilter true if recreate bloom filter
 * @param ibuilder
 * @param dbuilder
 * @param summaryLoaded true if index summary is already loaded and not need to build again
 * @throws IOException
 */
private void buildSummary(boolean recreateBloomFilter, SegmentedFile.Builder ibuilder, SegmentedFile.Builder dbuilder, boolean summaryLoaded, int samplingLevel) throws IOException
{
    // we read the positions in a BRAF so we don't have to worry about an entry spanning a mmap boundary.
    RandomAccessReader primaryIndex = RandomAccessReader.open(new File(descriptor.filenameFor(Component.PRIMARY_INDEX)));

    try
    {
        long indexSize = primaryIndex.length();
        long histogramCount = sstableMetadata.estimatedRowSize.count();
        long estimatedKeys = histogramCount > 0 && !sstableMetadata.estimatedRowSize.isOverflowed()
                             ? histogramCount
                             : estimateRowsFromIndex(primaryIndex); // statistics is supposed to be optional

        try(IndexSummaryBuilder summaryBuilder = summaryLoaded ? null : new IndexSummaryBuilder(estimatedKeys, metadata.getMinIndexInterval(), samplingLevel))
        {

            if (recreateBloomFilter)
                bf = FilterFactory.getFilter(estimatedKeys, metadata.getBloomFilterFpChance(), true);

            long indexPosition;
            while ((indexPosition = primaryIndex.getFilePointer()) != indexSize)
            {
                ByteBuffer key = ByteBufferUtil.readWithShortLength(primaryIndex);
                RowIndexEntry indexEntry = metadata.comparator.rowIndexEntrySerializer().deserialize(primaryIndex, descriptor.version);
                DecoratedKey decoratedKey = partitioner.decorateKey(key);
                if (first == null)
                    first = decoratedKey;
                last = decoratedKey;

                if (recreateBloomFilter)
                    bf.add(decoratedKey.getKey());

                // if summary was already read from disk we don't want to re-populate it using primary index
                if (!summaryLoaded)
                {
                    summaryBuilder.maybeAddEntry(decoratedKey, indexPosition);
                    ibuilder.addPotentialBoundary(indexPosition);
                    dbuilder.addPotentialBoundary(indexEntry.position);
                }
            }

            if (!summaryLoaded)
                indexSummary = summaryBuilder.build(partitioner);
        }
    }
    finally
    {
        FileUtils.closeQuietly(primaryIndex);
    }

    first = getMinimalKey(first);
    last = getMinimalKey(last);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:63,代码来源:SSTableReader.java

示例7: buildSummary

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
/**
 * Build index summary(and optionally bloom filter) by reading through Index.db file.
 *
 * @param recreateBloomFilter true if recreate bloom filter
 * @param ibuilder
 * @param dbuilder
 * @param summaryLoaded true if index summary is already loaded and not need to build again
 * @throws IOException
 */
private void buildSummary(boolean recreateBloomFilter, SegmentedFile.Builder ibuilder, SegmentedFile.Builder dbuilder, boolean summaryLoaded, int samplingLevel) throws IOException
{
    // we read the positions in a BRAF so we don't have to worry about an entry spanning a mmap boundary.
    RandomAccessReader primaryIndex = RandomAccessReader.open(new File(descriptor.filenameFor(Component.PRIMARY_INDEX)));

    try
    {
        long indexSize = primaryIndex.length();
        long histogramCount = sstableMetadata.estimatedRowSize.count();
        long estimatedKeys = histogramCount > 0 && !sstableMetadata.estimatedRowSize.isOverflowed()
                           ? histogramCount
                           : estimateRowsFromIndex(primaryIndex); // statistics is supposed to be optional

        if (recreateBloomFilter)
            bf = FilterFactory.getFilter(estimatedKeys, metadata.getBloomFilterFpChance(), true);

        IndexSummaryBuilder summaryBuilder = null;
        if (!summaryLoaded)
            summaryBuilder = new IndexSummaryBuilder(estimatedKeys, metadata.getMinIndexInterval(), samplingLevel);

        long indexPosition;
        while ((indexPosition = primaryIndex.getFilePointer()) != indexSize)
        {
            ByteBuffer key = ByteBufferUtil.readWithShortLength(primaryIndex);
            RowIndexEntry indexEntry = metadata.comparator.rowIndexEntrySerializer().deserialize(primaryIndex, descriptor.version);
            DecoratedKey decoratedKey = partitioner.decorateKey(key);
            if (first == null)
                first = decoratedKey;
            last = decoratedKey;

            if (recreateBloomFilter)
                bf.add(decoratedKey.getKey());

            // if summary was already read from disk we don't want to re-populate it using primary index
            if (!summaryLoaded)
            {
                summaryBuilder.maybeAddEntry(decoratedKey, indexPosition);
                ibuilder.addPotentialBoundary(indexPosition);
                dbuilder.addPotentialBoundary(indexEntry.position);
            }
        }

        if (!summaryLoaded)
            indexSummary = summaryBuilder.build(partitioner);
    }
    finally
    {
        FileUtils.closeQuietly(primaryIndex);
    }

    first = getMinimalKey(first);
    last = getMinimalKey(last);
}
 
开发者ID:daidong,项目名称:GraphTrek,代码行数:63,代码来源:SSTableReader.java

示例8: buildSummary

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
/**
 * Build index summary(and optionally bloom filter) by reading through Index.db file.
 *
 * @param recreateBloomFilter true if recreate bloom filter
 * @param ibuilder
 * @param dbuilder
 * @param summaryLoaded true if index summary is already loaded and not need to build again
 * @throws IOException
 */
private void buildSummary(boolean recreateBloomFilter, SegmentedFile.Builder ibuilder, SegmentedFile.Builder dbuilder, boolean summaryLoaded, int samplingLevel) throws IOException
{
    // we read the positions in a BRAF so we don't have to worry about an entry spanning a mmap boundary.
    RandomAccessReader primaryIndex = RandomAccessReader.open(new File(descriptor.filenameFor(Component.PRIMARY_INDEX)));

    try
    {
        long indexSize = primaryIndex.length();
        long histogramCount = sstableMetadata.estimatedRowSize.count();
        long estimatedKeys = histogramCount > 0 && !sstableMetadata.estimatedRowSize.isOverflowed()
                           ? histogramCount
                           : estimateRowsFromIndex(primaryIndex); // statistics is supposed to be optional

        if (recreateBloomFilter)
            bf = FilterFactory.getFilter(estimatedKeys, metadata.getBloomFilterFpChance(), true);

        IndexSummaryBuilder summaryBuilder = null;
        if (!summaryLoaded)
            summaryBuilder = new IndexSummaryBuilder(estimatedKeys, metadata.getMinIndexInterval(), samplingLevel);

        long indexPosition;
        while ((indexPosition = primaryIndex.getFilePointer()) != indexSize)
        {
            ByteBuffer key = ByteBufferUtil.readWithShortLength(primaryIndex);
            RowIndexEntry indexEntry = metadata.comparator.rowIndexEntrySerializer().deserialize(primaryIndex, descriptor.version);
            DecoratedKey decoratedKey = partitioner.decorateKey(key);
            if (first == null)
                first = decoratedKey;
            last = decoratedKey;

            if (recreateBloomFilter)
                bf.add(decoratedKey.key);

            // if summary was already read from disk we don't want to re-populate it using primary index
            if (!summaryLoaded)
            {
                summaryBuilder.maybeAddEntry(decoratedKey, indexPosition);
                ibuilder.addPotentialBoundary(indexPosition);
                dbuilder.addPotentialBoundary(indexEntry.position);
            }
        }

        if (!summaryLoaded)
            indexSummary = summaryBuilder.build(partitioner);
    }
    finally
    {
        FileUtils.closeQuietly(primaryIndex);
    }

    first = getMinimalKey(first);
    last = getMinimalKey(last);
}
 
开发者ID:rajath26,项目名称:cassandra-trunk,代码行数:63,代码来源:SSTableReader.java


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