I just pushed my changes to Marton's "storm" branch. It is still open how to process with the following (please give feedback):
StormSpoutWrapper:
- do we still need "isRunning" and "cancel()"? The new API should make
them obsolete from my point of view.
- I would avoid "busy wait" in "next()" and apply a "not-emit" penalty
within the while-loop:
> long sleep = 1;
> while(!stormCollector.hasNext()) {
> Thread.sleep(sleep);
> sleep *= 2;
> spout.nextTuple();
> }
StormFiniteSpoutWrapper:
- remove member variable "isDefined" --> this is redundant information
and might cause bugs...
- can we remove the "tupleEmitted" flag? Maybe we can implement it
without it (nor sure though)
I am also working on a new implementation of StromSpoutWrapper and
StormSpoutCollector. I will push it into my own repository if finished
and tell you. It could replace the current implementation without the
"nasty" buffering Queue (which I don't like). However, we need to
discuss this alternative implementation first.
-Matthias
On 06/03/2015 03:32 PM, Szabó Péter wrote:
> ---------- Forwarded message ----------
> From: Szabó Péter <[email protected]>
> Date: 2015-06-03 15:31 GMT+02:00
> Subject: Re: Discussion: Storm Comparability Layer
> To: Márton Balassi <[email protected]>
>
>
> Hey, Matthias,
>
> Of course, you can remove my last commit. I just wanted to remove the
> failing tests, and some unnecessary comments. Please do the latter it in
> your commit as well.
>
> As for StormSpoutCollector, I used Queue with LinkedList implementation,
> because the list we keep is a queue in nature: we put records into it, and
> remove the head from time to time. The collector implements iterator,
> because I wanted to use something like next() and hasNext() in the
> StormSpoutWrapper. I think emphasizing this iterator-nature makes the code
> more readable.
>
> Peter
>
> 2015-06-03 14:16 GMT+02:00 Márton Balassi <[email protected]>:
>
>> Hey Matthias,
>>
>> We can undo Peter's commit if that helps you and have yours instead. You
>> can simply remove that commit in a rebase. Besides this let us push to the
>> same branch with trying not to break the history, I will squash the commits
>> once again if it gets too bulky.
>>
>> I would like to bring the discussion to the mailing list, so the cummunity
>> is seeing that you are actively working on this. Are you OK with reposting
>> this thread to the dev mailing list?
>>
>> On Wed, Jun 3, 2015 at 2:09 PM, Matthias J. Sax <
>> [email protected]> wrote:
>>
>>> Hi,
>>>
>>> I just saw, that Peter pushed a new commit. It makes it hard for me to
>>> push my changes. Can we undo the last commit?
>>>
>>> If I get it right, it removes StormFiniteSpoutWrapper and disables
>>> failing test only. Do we want to delete StormFiniteSpoutWrapper? I would
>>> rather keep it.
>>>
>>> -Matthias
>>>
>>> On 06/03/2015 01:58 PM, Matthias J. Sax wrote:
>>>> Hi,
>>>>
>>>> I have a few questions about the current status ("storm" branch from
>>>> Marton).
>>>>
>>>> StormSpoutCollector:
>>>> - is there any specify advantage in using a Queue instead of
>>>> LinkedList for the internal buffer?
>>>> - Why are us implementing Iterator interface and mark
>>>> flinkCollectionDelegates as private?
>>>> -> I would rather drop the interface and make the variable "package
>>>> private" to access it directly (avoids "unnecessary" method calls)
>>>>
>>>> StormSpoutWrapper:
>>>> - do we still need "isRunning" and "cancel()"? The new API should make
>>>> them obsolete from my point of view.
>>>> - I would avoid "busy wait" in "next()" and apply a "not-emit" penalty
>>>> within the while-loop:
>>>>
>>>>> long sleep = 1;
>>>>> while(!stormCollector.hasNext()) {
>>>>> Thread.sleep(sleep);
>>>>> sleep *= 2;
>>>>> spout.nextTuple();
>>>>> }
>>>>
>>>> StormFiniteSpoutWrapper:
>>>> - remove member variable "isDefined" --> this is redundant information
>>>> and might cause bugs...
>>>> - can we remove the "tupleEmitted" flag? Maybe we can implement it
>>>> without it (nor sure though)
>>>>
>>>>
>>>> I am also working on a new implementation of StormSpoutOutputWrapper. I
>>>> will push it into my own repository if finished and tell you. It could
>>>> replace the current implementation without the "nasty" buffering Queue
>>>> (which I don't like). However, we need to discuss this alternative
>>>> implementation first.
>>>>
>>>> Things I would like to push:
>>>>
>>>> I fixed the following tests (was already fixed in my branch but not
>>>> merged by Marton):
>>>> - StormBoltWrapperTest
>>>> - StormSpoutWrapperTest
>>>> - StormFiniteSpoutWrapperTest
>>>> - Added new Test class InfiniteTestSpout
>>>>
>>>> I also step throw the hole code, removed "unused" tag (which are not
>>>> necessary for public methods), corrected a few spelling mistakes is
>>>> comments, and did some other minor "improvements".
>>>>
>>>> Additionally, I "merged" my changes (after my rebase) that are different
>>>> to Peters changes. Peter and I discussed some of the rebase differences
>>>> and I "merged" my and his changes (we both agreed how to resolve the
>>>> differenced already).
>>>>
>>>> If it is ok, I will push it directly into Marton's git repository.
>>>>
>>>>
>>>>
>>>> -Matthias
>>>>
>>>
>>>
>>
>
signature.asc
Description: OpenPGP digital signature
