cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Podkowinski (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-11960) Hints are not seekable
Date Thu, 16 Jun 2016 15:30:05 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-11960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15333995#comment-15333995
] 

Stefan Podkowinski commented on CASSANDRA-11960:
------------------------------------------------

I've now created a patch that would move away from file offset based retries and instead replays
the whole page. As describe above, the {{RebufferingInputStream}} data input doesn't provide
a way to seek an offset. Although this should be possible to implement, I think these changes
should be considered more carefully, as they have to be done in the common io.utils code.
Maybe we should open a different ticket for that?

Although replaying a complete page isn't optimal, as we'll deliver duplicate hints, we don't
guarantee at-most-once semantics for hints anyway. This is not so great for non-idempotent
operations, such as list appends (counters are not hinted), but the current implementation
is clearly broken so we have to do something about it. But I'm open to ideas how to further
optimize this.



> Hints are not seekable
> ----------------------
>
>                 Key: CASSANDRA-11960
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11960
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Robert Stupp
>            Assignee: Stefan Podkowinski
>
> Got the following error message on trunk. No idea how to reproduce. But the only thing
the (not overridden) seek method does is throwing this exception.
> {code}
> ERROR [HintsDispatcher:2] 2016-06-05 18:51:09,397 CassandraDaemon.java:222 - Exception
in thread Thread[HintsDispatcher:2,1,main]
> java.lang.UnsupportedOperationException: Hints are not seekable.
> 	at org.apache.cassandra.hints.HintsReader.seek(HintsReader.java:114) ~[main/:na]
> 	at org.apache.cassandra.hints.HintsDispatcher.seek(HintsDispatcher.java:79) ~[main/:na]
> 	at org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.deliver(HintsDispatchExecutor.java:257)
~[main/:na]
> 	at org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:242)
~[main/:na]
> 	at org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:220)
~[main/:na]
> 	at org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.run(HintsDispatchExecutor.java:199)
~[main/:na]
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_91]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_91]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_91]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_91]
> 	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message