> On March 17, 2015, 8:56 p.m., Guozhang Wang wrote:
> > core/src/main/scala/kafka/utils/timer/TimerTaskList.scala, line 72
> > <https://reviews.apache.org/r/31568/diff/1/?file=881358#file881358line72>
> >
> >     It seems the task entry of the task will only be set once throughout 
> > its life time; even when the task entry gets reinsurted its correspondence 
> > to the task will not change, right?
> >     
> >     If that is true we can just set the entry for the task in the 
> > constructor of the task entry.
> 
> Yasuhiro Matsuda wrote:
>     This sets TimerTaskEntry to TimerTask. TimeTask is created independently 
> from a Timer, then enqueued to a Timer.
> 
> Guozhang Wang wrote:
>     Yes, but can we move this line to line 119 of TimerTaskList.scala? Then 
> in line 46 of Timer when we create the TimerTaskEntry with the passed in 
> TimerTask its entry field will be set automatically.
> 
> Yasuhiro Matsuda wrote:
>     If a task already enqueued to a timer is enqueued again intentionally or 
> unintentionally (=bug), what happens?
>     My intention here is to keep data structure consistent in such a case. 
> setTimerTaskEntry removes the old entry if exists.
> 
> Guozhang Wang wrote:
>     This is true, I was originally confused about whether we ever need to 
> re-enqueue, but the previous comment made it clear to me now.

On second though, I think you are right. We need to call setTimerTaskEntry only 
in TimerTaskEntry constructor. It will handle re-enqueue cases and also 
cleaner. Calling it from TimerTaskList.add() was a bad idea. It can cuase a 
deadlock. :(


- Yasuhiro


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31568/#review76459
-----------------------------------------------------------


On Feb. 28, 2015, 12:14 a.m., Yasuhiro Matsuda wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/31568/
> -----------------------------------------------------------
> 
> (Updated Feb. 28, 2015, 12:14 a.m.)
> 
> 
> Review request for kafka.
> 
> 
> Bugs: KAFKA-1989
>     https://issues.apache.org/jira/browse/KAFKA-1989
> 
> 
> Repository: kafka
> 
> 
> Description
> -------
> 
> new purgatory implementation
> 
> 
> Diffs
> -----
> 
>   core/src/main/scala/kafka/server/DelayedOperation.scala 
> e317676b4dd5bb5ad9770930e694cd7282d5b6d5 
>   core/src/main/scala/kafka/server/ReplicaManager.scala 
> 586cf4caa95f58d5b2e6c7429732d25d2b3635c8 
>   core/src/main/scala/kafka/utils/SinglyLinkedWeakList.scala PRE-CREATION 
>   core/src/main/scala/kafka/utils/timer/Timer.scala PRE-CREATION 
>   core/src/main/scala/kafka/utils/timer/TimerTask.scala PRE-CREATION 
>   core/src/main/scala/kafka/utils/timer/TimerTaskList.scala PRE-CREATION 
>   core/src/main/scala/kafka/utils/timer/TimingWheel.scala PRE-CREATION 
>   core/src/test/scala/unit/kafka/server/DelayedOperationTest.scala 
> 7a37617395b9e4226853913b8989f42e7301de7c 
>   core/src/test/scala/unit/kafka/utils/timer/TimerTaskListTest.scala 
> PRE-CREATION 
>   core/src/test/scala/unit/kafka/utils/timer/TimerTest.scala PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/31568/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Yasuhiro Matsuda
> 
>

Reply via email to