[
https://issues.apache.org/jira/browse/QUARKS-120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15236303#comment-15236303
]
Susan L. Cline commented on QUARKS-120:
---------------------------------------
Although this looks odd, having a counter op as a source, I believe it is
correct if the FanOut is the source .. Is that correct, FanOut is the source.
According to the documentation for Metrics:
<repository>/incubator-quarks/target/docs/javadoc/quarks/metrics/Metrics.html#counter-quarks.topology.Topology-
CounterOp oplets are inserted between every two graph vertices with the
following exceptions:
Oplets are only inserted upstream from a FanOut oplet.
So I think this is correct?
> Counter oplet looks like a source for complex tuple type
> --------------------------------------------------------
>
> Key: QUARKS-120
> URL: https://issues.apache.org/jira/browse/QUARKS-120
> Project: Quarks
> Issue Type: Bug
> Components: Console
> Reporter: May Wone
> Priority: Minor
> Attachments: CounterAsSourceComplexTupleType.doc, CounterSource.doc
>
>
> In the graph for TopologyTestBasic, a counter oplet appears to be a source
> (i.e. there's no other oplet pointing to the counter oplet). This looks odd
> to me - is this expected?
> Note this source uses a complex tuple type, i.e. a tuple is a Java object.
> The oplets 130, 77, 76 look odd - is this graph starting at oplet 130
> expected?
> 130 is a counter oplet that looks like a source.
> 77 is a fanout¬ (see View all oplet properties table below).
> There is tag "mcs1".
> See attachment for screen shots.
> {code}
> //**************************************************************
> //Source 2 using complex tuple type
> //**************************************************************
> Random r2 = new Random();
> TStream<MyClass1> mc1 = t.poll(
> () -> new MyClass1(Double.toString(r2.nextGaussian()),
>
> Double.toString(r2.nextGaussian()),r1.nextGaussian()
> ),100, TimeUnit.MILLISECONDS).tag("mc1");
> mc1.peek(g -> System.out.print(g.toString()));
> mc1.modify(tuple -> new MyClass1(tuple.getS1() + "a1 b1 c1 d1 ",
> tuple.getS2() +" e1 f1 g1 h1 ", tuple.getD1() +1) );
> mc1.peek(tuple -> System.out.println("MyClass1: " +
> tuple.toString()));
> mc1.flatMap(tuple -> Arrays.asList(tuple.toString().split(" ")));
> //An asString
> TStream<String> mcs1 = mc1.asString().tag("mcs1");
> mcs1.peek(tuple -> System.out.println(" mcs1_source2: " +
> tuple.toString()));
> List<TStream<String>> splits2 = mcs1.split(2, tuple -> {
> switch (tuple.toString().charAt(0)) {
> case '-': //negative numbers
> return 0;
> default: //everything else
> return 1;
> }
> });
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)