cassandra-pr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aweisberg <...@git.apache.org>
Subject [GitHub] cassandra pull request #239: [CASSANDRA-14556] Optimize Streaming
Date Fri, 13 Jul 2018 21:52:43 GMT
Github user aweisberg commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/239#discussion_r202481801
  
    --- Diff: src/java/org/apache/cassandra/net/async/RebufferingByteBufDataInputPlus.java
---
    @@ -249,4 +250,42 @@ public ByteBufAllocator getAllocator()
         {
             return channelConfig.getAllocator();
         }
    +
    +    /**
    +     * Consumes bytes in the stream until the given length
    +     *
    +     * @param writer
    +     * @param len
    +     * @return
    +     * @throws IOException
    +     */
    +    public long consumeUntil(BufferedDataOutputStreamPlus writer, long len) throws IOException
    +    {
    +        long copied = 0; // number of bytes copied
    +        while (copied < len)
    +        {
    +            if (buffer.remaining() == 0)
    +            {
    +                try
    +                {
    +                    reBuffer();
    +                }
    +                catch (EOFException e)
    +                {
    +                    throw new EOFException("EOF after " + copied + " bytes out of " +
len);
    +                }
    +                if (buffer.remaining() == 0)
    +                    return copied == 0 ? -1 : copied;
    --- End diff --
    
    Heh, sorry I'm back for more. So reBuffering always does this check. I would change this
to throw AssertionError because if it happens we don't actually know if it's end of stream
or not because reBuffer didn't do what reBuffer is supposed to do.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org


Mime
View raw message