Re: Updated dataflow semantics for RTT
Sylvain Joyeux <[email protected]> Mon, 28 Sep 2015 11:27:43 -0300
| Newsgroups | gmane.science.robotics.orocos.devel |
|---|---|
| Message-ID | <CAFENT7+H-xA12BXfLv-CKtQkVAmZtLf-yXkyqQvOQzBHF2Z3tQ@mail.gmail.com> |
> I agree with much at the above, and we have similar problems that we've > solved in similar ways. But there are also huge parts of our system that, > while "data driven", aren't at all interested in time. The system itself is > synchronized and time is (largely) irrelevant - everything operates on a > per-cycle basis. In the long run, we time stamp only a tiny portion of the > data in our system due to this. Equally valid, but different. I don't dispute that you probably have a very good point, you usually do, but could you provide me with a concrete example of such a setup that uses buffers ? It would really help me grasp the situation. > Sometimes we want to control whether the network access (and hence > delay/non-real-time part) is on the writer or reader side. That should be an > application-level choice. Agreed, but this choice is currently bundled with having a buffer per channel or one per input port. > If you put the buffer per-port, you end up with one policy per port. > Port-driven triggering (event ports) are governed by the data object > (i.e. per-port), data object size and type becomes per-port as well. > What's left in the connection policy is the info necessary to reach > the other side (i.e. the topic name in ROS), which means that it is > not a policy anymore but a "remote endpoint" > > > What if you don't use event ports? How is that relevant ? Are we misunderstanding each other here ? As I understand the proposal so far, we have: either you pull (hit network on read, one buffer per channel) or push (not hit network on read, have a one buffer per port). The middle ground of one-buffer-per-channel and not hitting network is not covered, and that's what *greatly* bothers me. I know you guys probably have a good case here, I am trying very hard for you to not break mine > Note the "selectively remove" above - we still want to be able to use > v2-flow-status type setups within our system. My understanding of the proposal is that the v2 semantic are not available anymore. I'm not pushing against what you need, I want you to not break what I need. - what are going to be the options of network/no-network and placement of buffer ? - how can these options be or not be used with a single output / single input ? Are they mutually exclusive ? Can they be used together on the same input port ? On the same output port ? > We have several hundred local connections in our deployers. We have maybe > less than 10 remote connections. Again, how is this relevant ? If the policy is specified per-port, you won't have any "kind-of-sane default" to configure the CORBA dispatchers with. > Buffers vs data connections definitely change the flavor of things. The vast > majority of our connections are data connections, not buffers. I *know* which leads to this long discussion, because I am on the completely other end of things: we mostly use buffered connections. > I think that we're getting off topic as a whole. I don't think so. So far, my concerns with the proposal are still there: by getting closer to v1 semantics, the proposal breaks v2 semantics in a way that is fundamental to me. Peter's post actually leads me to think that this breakage and known and desired, which is why I am spending so much time trying to get my point across, while I already have way too much on my plate. > a) push vs pull, or specifying whether the data/buffer object is on the > reader or writer side. This is very useful for system designers dealing with > significant time delay. > b) private vs shared, whether a connection is per input/output port pair or > whether the connection is shared between multiple input/output ports. So far, "private" is defined one buffer *per input port* (change in semantic) not *per input/output port pair* (current v2 semantic) Sylvain -- Orocos-Dev mailing list [email protected] http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev