edgent-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QUARKS-195) Metrics.{counter,rateMeter}() shouldn't use TStream.pipe(); add TStream.peek(Peek)
Date Mon, 13 Jun 2016 14:26:21 GMT

    [ https://issues.apache.org/jira/browse/QUARKS-195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15327481#comment-15327481

ASF GitHub Bot commented on QUARKS-195:

GitHub user dlaboss reopened a pull request:


    [WIP] [QUARKS-195] Metrics.counter needs TStream.peek(oplet)


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/dlaboss/incubator-quarks quarks-195-metrics-peek

Alternatively you can review and apply these changes as the patch at:


To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #130
commit 1824df8d362b7ff8d486e8784e235ea98379c054
Author: Dale LaBossiere <dlaboss@us.ibm.com>
Date:   2016-06-07T18:29:48Z

    [QUARKS-195] Metrics.counter needs TStream.peek(oplet)

commit bbcd081c8193026280c31fd2ab8e7dfedf4f47a0
Author: Dale LaBossiere <dlaboss@us.ibm.com>
Date:   2016-06-07T19:44:36Z

    update expected test result

commit bf228d529b7e8d8732528cffe4c6dd86fdb3d976
Author: Dale LaBossiere <dlaboss@us.ibm.com>
Date:   2016-06-09T14:51:17Z

    disallow use of pipe() for Peek oplets


> Metrics.{counter,rateMeter}() shouldn't use TStream.pipe(); add TStream.peek(Peek)
> ----------------------------------------------------------------------------------
>                 Key: QUARKS-195
>                 URL: https://issues.apache.org/jira/browse/QUARKS-195
>             Project: Quarks
>          Issue Type: Bug
>          Components: API
>            Reporter: Dale LaBossiere
>            Assignee: Dale LaBossiere
>            Priority: Minor
> Add `TStream.peek(Peek<T>)` and change `Metrics.counter(TStream)` and `Metrics.rateMeter(TStream)`
to use it instead of `pipe()`.
> The author of CounterOp and RateMeter implemented the functionality as Peek Oplets not
as Consumer functions. Lacking a TStream.peek(Peek), TStream.pipe() must be used to add the
Peek oplets to the topology.
> The runtime treats TStream.peek(Consumer) generated Peek oplets rather differently than
pipe related oplets (added via pipe() or indirectly via pipe-ish functional methods): see
Connector.connect() vs Connector.peek(), and TStream.peek() returns "this" whereas the addition
of pipe oplets returns a new TStream. 
> The use of pipe() in this case is partially responsible for the effect reported in QUARKS-189.

> Adding TStream.peek(Peek) enables users/authors of Peek oplets to get the same peek-ish
behavior as their functional peeker brethen.  It continues to flesh out the general ability
of API clients to implement and add oplets to the topology.
> The growing number of "oplet" based analogs to the "function" based methods makes me
wonder if the oplet ones should be broken out into another interface that TStream implements
(`OpletTStream`?).  It would contain the current `pipe(Pipe)`, `fanin(FanIn,List)`, `sink(Sink)`,
and the new `peek(Peek)`, and any others that may be needed in the future  - e.g., a `split(Split)`
and/or one that can handle multiple iports and oports.
> Instead, TStream.pipe() (ConnectorStream.pipe()) could be modified to deal with Pipe
oplet args in the desired manner and document that Pipe oplets receive this special treatment
and that pipe() returns "this" for them instead of a new TStream.  Adding TStream.peek(Peek)
seems like a clearer alternative, and perhaps oplet.core.Peek should not extend Pipe?

This message was sent by Atlassian JIRA

View raw message