No description
Find a file
Erik Boasson 66076817e1 rework built-in topics again
Move details of built-in topics out of the DDSI core (so the only hooks
remain).  For this, rtps_term had to be split, so now it is "stop"
followed by "fini".

Add a notion of local writers that are not bound to a participant ("local
orphans"), so that the local built-in topic writers can be created during
initialization.  This eliminates the "builtin" participant.  This
uncovered in inconsistency in the unit tests: on the one hand, a newly
created participant is expected to have no child entities; on the other
hand, the built-in topics were expected to be returned by find_topic ...
This inconsistency has been resolved by creating them lazily and
accepting that find_topic can't return them until they have been
created.  Special code was in place in dds_create_reader anyway, so it
is not expected to have any real consequence for applications.

Use a special WHC implementation that regenerates the data on the fly
using the internal discovery tables of DDSI, so that the samples are only
stored by readers.  This eliminates the memory overhead of that existed
previously when the WHC of the writers stored the data.

No longer return topic name and type name in the built-in topics, they
have been extracted already and are not accessible through the normal
interface but do cause problems when comparing QoS.

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-09 08:38:56 +01:00
docs/dev Add Travis CI debug instructions 2018-11-30 23:42:58 +01:00
notes add some diagrams related to the data path 2018-07-04 15:59:55 +02:00
src rework built-in topics again 2019-01-09 08:38:56 +01:00
vdds-xcode/vdds-xcode.xcodeproj Initial contribution 2018-04-10 17:03:59 +02:00
.gitignore Fix build with openJDK-10 2018-06-23 21:51:21 +02:00
.gitmodules Initial contribution 2018-04-10 17:03:59 +02:00
.travis.yml Replace Criterion by CUnit 2018-12-06 14:48:30 +01:00
appveyor.yml Replace Criterion by CUnit 2018-12-06 14:48:30 +01:00
conanfile.txt Replace Criterion by CUnit 2018-12-06 14:48:30 +01:00
CONTRIBUTING.md Add README 2018-04-24 10:07:55 +02:00
LICENSE Initial contribution 2018-04-10 17:03:59 +02:00
NOTICE.md Add getopt 1.5 3rd party dependency 2018-05-08 10:18:52 +02:00
README.md Updated with latest performance number 2018-12-12 10:38:34 +01:00

Eclipse Cyclone DDS

Eclipse Cyclone DDS is by far the most performant and robust DDS implementation available on the market.

Beside, Cyclone DDS is developed completely in the open and is undergoing the acceptance process to become part of Eclipse IoT (see eclipse-cyclone-dds).

Getting Started

Building Cyclone DDS

In order to build cyclone DDS you need to have installed on your host cmake v3.6.0 or higher, the Java 8 JDK or simply the Java 8 RE, and Apache Maven 3.5.x or higher.

Assuming that git is also available on your machine then, simply do:

$ git clone https://github.com/eclipse/cyclonedds.git 
$ cd cyclonedds
$ mkdir build
$ cd build
$ cmake ../src
$ make
$ make install

At this point you are ready to use cyclonedds for your next DDS project!

Examples

Now that you have built and installed cyclonecdds it is time to experiment with some examples.

Building and Running the Roundtrip Example

The first example we will show you how to build and run, measures cyclonedds latency and will allow you to see with your eyes how fast it is!

Do as follows:

$ cd cyclonedds/src/examples/roundtrip
$ mkdir build
$ cd build
$ cmake ..
$ make

Now that you've build the roundtrip example it is time to run it.

On one terminal start the applications that will be responding to cyclonedds pings. $ ./RoundtripPong

On another terminal, start the application that will be sending the ping.

$ ./RoundtripPing 0 0 0 
# payloadSize: 0 | numSamples: 0 | timeOut: 0
# Waiting for startup jitter to stabilise
# Warm up complete.
# Round trip measurements (in us)
#             Round trip time [us]                           Write-access time [us]       Read-access time [us]
# Seconds     Count   median      min      99%      max      Count   median      min      Count   median      min
    1     28065       17       16       23       87      28065        8        6      28065        1        0
    2     28115       17       16       23       46      28115        8        6      28115        1        0
    3     28381       17       16       22       46      28381        8        6      28381        1        0
    4     27928       17       16       24      127      27928        8        6      27928        1        0
    5     28427       17       16       20       47      28427        8        6      28427        1        0
    6     27685       17       16       26       51      27685        8        6      27685        1        0
    7     28391       17       16       23       47      28391        8        6      28391        1        0
    8     27938       17       16       24       63      27938        8        6      27938        1        0
    9     28242       17       16       24      132      28242        8        6      28242        1        0
   10     28075       17       16       23       46      28075        8        6      28075        1        0

The number above were measure on Mac running a 4,2 GHz Intel Core i7 on December 12th 2018. From these number you can see how the roundtrip is incredibly stable and the minimal latency is now down to 17 micro-seconds (used to be 25 micro-seconds) on this HW.

Documentation

The Cyclone DDS documentation is available here.