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


Java RandomAccessReader.readLong方法代码示例

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


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

示例1: 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

示例2: 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

示例3: export

import org.apache.cassandra.io.util.RandomAccessReader; //导入方法依赖的package包/类
/**
 * Export specific rows from an SSTable and write the resulting JSON to a PrintStream.
 *
 * @param desc     the descriptor of the sstable to read from
 * @param outs     PrintStream to write the output to
 * @param toExport the keys corresponding to the rows to export
 * @param excludes keys to exclude from export
 * @throws IOException on failure to read/write input/output
 */
public static void export(Descriptor desc, PrintStream outs, Collection<String> toExport, String[] excludes) throws IOException
{
    SSTableReader sstable = SSTableReader.open(desc);
    RandomAccessReader dfile = sstable.openDataReader();

    IPartitioner<?> partitioner = sstable.partitioner;

    if (excludes != null)
        toExport.removeAll(Arrays.asList(excludes));

    outs.println("[");

    int i = 0;

    // last key to compare order
    DecoratedKey lastKey = null;

    for (String key : toExport)
    {
        DecoratedKey decoratedKey = partitioner.decorateKey(hexToBytes(key));

        if (lastKey != null && lastKey.compareTo(decoratedKey) > 0)
            throw new IOException("Key out of order! " + lastKey + " > " + decoratedKey);

        lastKey = decoratedKey;

        RowIndexEntry entry = sstable.getPosition(decoratedKey, SSTableReader.Operator.EQ);
        if (entry == null)
            continue;

        dfile.seek(entry.position);
        ByteBufferUtil.readWithShortLength(dfile); // row key
        if (sstable.descriptor.version.hasRowSizeAndColumnCount)
            dfile.readLong(); // row size
        DeletionInfo deletionInfo = new DeletionInfo(DeletionTime.serializer.deserialize(dfile));
        int columnCount = sstable.descriptor.version.hasRowSizeAndColumnCount ? dfile.readInt() : Integer.MAX_VALUE;

        Iterator<OnDiskAtom> atomIterator = sstable.metadata.getOnDiskIterator(dfile, columnCount, sstable.descriptor.version);

        checkStream(outs);

        if (i != 0)
            outs.println(",");
        i++;
        serializeRow(deletionInfo, atomIterator, sstable.metadata, decoratedKey, outs);
    }

    outs.println("\n]");
    outs.flush();
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:60,代码来源:SSTableExport.java


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