SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
Tuning and Troubleshooting
                 OpenSplice DDS Applications
OpenSplice DDS




                               Angelo Corsaro, PhD                  Hans van’t Hag.
                                   Chief Technology Officer             Product Manager
                                   OMG DDS Sig Co-Chair             OMG DDS Co-Author
                                              PrismTech                     PrismTech
                           angelo.corsaro@prismtech.com     hans.vanthag@prismtech.com
OpenSplice DDS


                                                                                                                                                       US OSUM 2013




http://www.prismtech.com/events/opensplice-user-meeting-usa-2013




                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Part I -- Setting the Context
OpenSplice DDS
Kinds of Issues
                  When building distributed applications there are several kinds of issues you can




                                                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  encounter. Some of the most common issues are often:
                  ☐   Connectivity: “things” don’t seem to talk to each other
                  ☐   Performance:the latency is too high or throughput is too low
OpenSplice DDS




                  ☐   Scalability: your system does not scale as necessary
                  ☐   Resource Utilization: your application is using way too much CPU, Memory,
                      and/or Network

                  This webcast explores common issues in DDS applications and demonstrates how
                       the tools provided by OpenSplice DDS can their diagnose and resolution
OpenSplice DDS




                 Connectivity
Connectivity Issues




                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   DDS provides dynamic discovery thus as there is network
                      connectivity applications that are intended to communicate
                      should discover each other and just work!
OpenSplice DDS




                  ☐   What may be the cause of connectivity issues in DDS?
                      ☐   The network is not working (did you plug the wire?)
                      ☐   Your applications does not share the same domain (thus your mistake)
                      ☐   The QoS of the DataWriter and the DataReader don’t match
OpenSplice DDS




                 QoS Mismatch?
Tip #8


                 Understand the QoS Model
                                                 DURABILITY   LIVELINESS       DEST. ORDER    TIME-BASED FILTER

                 ☐   DDS defines 22 QoS           HISTORY     OWENERSHIP         PARTITION    RESOURCE LIMITS


                     policies that can be
                                                  LIFESPAN    OWN. STRENGTH    PRESENTATION




                                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                RELIABILITY    DW LIFECYCLE
                     applied to                  USER DATA      DEADLINE                        DR LIFECYCLE
                     communication entities      TOPIC DATA   LATENCY BUDGET                   ENTITY FACTORY

                     to control their local as   GROUP DATA   TRANSPORT PRIO
OpenSplice DDS




                     well as end-to-end
                     behaviour                                     RxO QoS     Local QoS




                 Most of the QoS Policies that control an end-to-end property follow the so-
                 called Request vs. Offered (RxO) Model based on which the QoS requested
                 by the Consumer should not exceed the QoS Provided by the Producer. If
                 there is an RxO mismatch no communication will take place
OpenSplice DDS
OpenSplice DDS




                 Performance
Latency / Throughput
                  ☐   DDS provides several QoS Policies to control latency and




                                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      throughput
                  ☐   OpenSplice provides extensions such as Streams to efficiently
                      distribute small data (e.g. several millions samples per second)
OpenSplice DDS




                  ☐   OpenSplice Tools such     TimeBasedFilter                                    Deadline
                      as the Tuner can help
                      find the right QoS      [Inbound]

                      setting for achieving
                                                 Throughput                    LatencyBudget      Latency
                      the desired level or                        [Outbound]
                      latency/throughput

                                                                                               TransportPriority
OpenSplice DDS




                 Scalability
Federated / Standalone Deployment
                  Application      Application    Application         Application




                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         OpenSplice DDS          OpenSplice DDS      OpenSplice DDS


                            Operating                       Operating
OpenSplice DDS




                            Systems                         Systems

                     Federated Deployment            Standalone Deployment

                     ☐   Performance
                                                     ☐   Usability
                     ☐   Scalability
                                                     ☐   Simple Configuration
                     ☐   Determinism
                                                     ☐   Simple Deployment
Deployment Configuration




                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The deployment mode can be changed by
                      a simple configuration parameter. No
                                                                      With OpenSplice DDS
                      recompilation or re-linking!                     you can choose the
                                                                               deployment
                      ☐   <SingleProcess>true</SingleProcess>      architecture that makes
OpenSplice DDS




                                                                    the most sense for your
                  ☐   The deployment options can be mixed at                      use case.

                      will (even within a single computing node)

                  ☐    The same application can be deployed in         “Simple when Sufficient.
                                                                   Performant when Required”
                      federated and standalone mode (even on
                      the same system)
Deployment Configuration




                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The deployment mode can be changed by
                      a simple configuration parameter. No
                                                                      With OpenSplice DDS
                      recompilation or re-linking!                     you can choose the
                                                                               deployment
                      ☐   <SingleProcess>true</SingleProcess>      architecture that makes
OpenSplice DDS




                                                                    the most sense for your
                  ☐   The deployment options can be mixed at                      use case.

                      will (even within a single computing node)

                  ☐    The same application can be deployed in         “Simple when Sufficient.
                                                                   Performant when Required”
                      federated and standalone mode (even on
                      the same system)
Resource Utilization
OpenSplice DDS
Shared Memory Sizing
OpenSplice DDS
Shared Memory Size
                  ☐   OpenSplice DDS shared memory size is defined in its




                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      configuration file. The size defined by the default
                      configuration file is 10MBytes
                      Beware that different OS have different limitations w.r.t.
OpenSplice DDS




                  ☐
                      the maximum shared memory segment that can be
                      allocated
                  ☐   If you want to go beyond the OS limits you need to
                      change the configuration of your kernel
Linux
                 ☐   The default value for the maximum shared memory segment is
                     32MBytes




                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 ☐   This default can be changed in several ways

                 (1) Adding this line to your /etc/rc.d/rc.local file:
OpenSplice DDS




                      echo “your_max_shared_memory_size” > /proc/sys/kernel/shmmax


                 (2) Changing the settings for the sys-limits (save changes on /etc/
                 sysctl.conf to maintain them across reboots):

                          $ sysctl -w kernel.shmmax=yourMaxValue
Windows




                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 ☐   The default maximum size for Shared Memory segments on Windows is
                     2GB

                 ☐   To exend it, say to 3GB, add the /3GB the boot.ini as shown below:
OpenSplice DDS




                                       [boot loader]
                                       timeout=30
                                       default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
                                       [operating systems]
                                       multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows NT
                                       Workstation Version 4.00"
                                       /3GB
Understand Topic Keys
OpenSplice DDS
Topic Types & Keys




                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Topic Types can define some of their attributes as keys
OpenSplice DDS




                  ☐   Yet, even when a Topic type does not define a key the keylist
                      directive has to be provided -- just to tell the IDL compiler that
                      this is a topic
Topic Types & Keys
                              Keyful                              Keyless




                                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 enum TemperatureScale {
                    CELSIUS,
                    FAHRENHEIT,                      struct UniversalConstants {
                    KELVIN                              double PI;
                 };                                     double e; // Nepero Number
                                                        double g; // Gravitational Constant
                                                        double NA; // Avogadro Number
OpenSplice DDS




                 struct TempSensorType {
                    short id;                           double F; // Faraday Constant
                    float temp;                         double K; // Boltzman Constant
                    float hum;                          double c; // Light Speed
                    TemperatureScale scale;           };
                 };                                  #pragma keylist UniversalConstants
                 #pragma keylist TempSensorType id
Topic Instances




                                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 enum TemperatureScale {
                    CELSIUS,
                    FAHRENHEIT,                          Writer                     Reader
                    KELVIN
                 };
OpenSplice DDS




                                                  2   26.0   70.0   CELSIUS   1   26.0   70.0   CELSIUS
                 struct TempSensorType {
                    short id;                     1   26.0   70.0   CELSIUS   2   26.0   70.0   CELSIUS

                    float temp;
                    float hum;
                    TemperatureScale scale;
                 };
                 #pragma keylist TempSensorType
Topic Instances




                                                                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 enum TemperatureScale {
                    CELSIUS,
                    FAHRENHEIT,                             Writer                                   Reader
                    KELVIN
                 };
OpenSplice DDS




                 struct TempSensorType {             2   26.0   70.0   CELSIUS
                                                                                 1   26.0   70.0   CELSIUS    2   26.0   70.0   CELSIUS
                    short id;                        1   26.0   70.0   CELSIUS
                    float temp;
                    float hum;
                    TemperatureScale scale;
                 };
                 #pragma keylist TempSensorType id
Instance Management
                  ☐   Each topic instance takes




                                                                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      resources (e.g. memory)
                                                               Writer                                   Reader

                  ☐   If you don’t choose carefully
                      your key, you may end-up          2   26.0   70.0   CELSIUS
OpenSplice DDS




                                                                                    1   26.0   70.0   CELSIUS    2   26.0   70.0   CELSIUS


                      creating an instance per
                                                        1   26.0   70.0   CELSIUS




                      sample...

                  ☐   In addition, instances can be
                      explicitly disposed in order to
                      reclaim resources
Example

                    struct Counter {
                       short cid;
                       long count;
                    };
                    #pragma keylist Counter ???
OpenSplice DDS
Example

                    struct Counter {
                       short cid;
                       long count;
                    };
                    #pragma keylist Counter cid
OpenSplice DDS
Example
                    struct SpatialSensor {
                       short x;
                       short y;
                       float v;
                    };
OpenSplice DDS




                    #pragma keylist SpatialSensor ???
Example
                    struct SpatialSensor {
                       short x;
                       short y;
                       float v;
                    };
OpenSplice DDS




                    #pragma keylist SpatialSensor
Topic Instances Lifecycle
                 struct VehiclePosition {
                    string plate;
                    long x;
                    long y;




                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 };                                com.myco.VPos
                 #pragma keylist VehiclePosition
                 plate
OpenSplice DDS




                 struct VehiclePosition {
                    string plate;
                    long x;
                    long y;
                 };
                 #pragma keylist VehiclePosition

                                                   com.myco.VPos
Topic Instances Lifecycle
                 struct VehiclePosition {
                    string plate;
                                                                                   New
                    long x;                                        “A01”   100   200
                    long y;




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 };                                com.myco.VPos
                 #pragma keylist VehiclePosition
                 plate
OpenSplice DDS




                 struct VehiclePosition {
                    string plate;
                    long x;
                    long y;                                                        New
                 };
                 #pragma keylist VehiclePosition                   “A01”   100   200


                                                   com.myco.VPos
Topic Instances Lifecycle
                 struct VehiclePosition {
                    string plate;                                                       New
                    long x;                                          “A01”   100   200




                                                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                    long y;
                 };                                                                      New
                                                                     “B41”   57    31
                 #pragma keylist VehiclePosition
                 plate
                                                   com.myco.VPos
OpenSplice DDS




                 struct VehiclePosition {
                    string plate;
                    long x;
                    long y;
                 };
                 #pragma keylist VehiclePosition   “B41”   57   31   “A01”   100   200


                                                   com.myco.VPos
Topic Instances Lifecycle
                 struct VehiclePosition {
                    string plate;
                                                                                                              New
                    long x;                                            “A01”   110   210   “A01”   100   200
                    long y;




                                                                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 };                                                                                            New
                 #pragma keylist VehiclePosition                                           “B41”   57    31
                 plate
                                                                       com.myco.VPos
OpenSplice DDS




                 struct VehiclePosition {
                    string plate;
                    long x;
                    long y;
                 };
                 #pragma keylist VehiclePosition   “A01”   110   210   “B41”   57    31    “A01”   100   200


                                                                       com.myco.VPos
Topic Instances Lifecycle
                                                                                                        New
                                             “A01”   120   220   “A01”   110   210   “A01”   100   200




                                                                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                                         New
                                                                                     “B41”   57    31


                                                                 com.myco.VPos
OpenSplice DDS




                         “A01”   120   220   “A01”   110   210   “B41”   57    31    “A01”   100   200


                                                                 com.myco.VPos
Topic Instances Lifecycle
                                                                                                                     New
                                                          “A01”   120   220   “A01”   110   210   “A01”   100   200




                                                                                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                                                      New
                                                                              “B41”   47    19    “B41”   57    31


                                                                              com.myco.VPos
OpenSplice DDS




                    “B41”   47   19   “A01”   120   220   “A01”   110   210   “B41”   57    31    “A01”   100   200


                                                                              com.myco.VPos
Topic Instances Lifecycle
                                                                                                                        New
                                                           “A01”     120   220   “A01”   110   210   “A01”   100   200




                                                                                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                                                         New
                                                                          d
                                                                   Dispose
                                                           “B41”      -    -     “B41”   47    19    “B41”   57    31


                                                                                 com.myco.VPos
OpenSplice DDS




                    “B41”    is   ed
                            D47pos19   “A01”   120   220   “A01”     110   210   “B41”   57    31    “A01”   100   200


                                                                                 com.myco.VPos
Part II -- Demoes
OpenSplice DDS
Content
☐       Tools
    ☐     Configuration: OpenSplice Configurator
    ☐     Black-box System (regression) Testing: OpenSplice Tester
    ☐     White-box application Inspection & Tuning: OpenSplice Tuner




                                                                                           Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
    ☐     Recording & Replay: OpenSplice RnR
    ☐     Shared-memory and Network monitoring: OpenSplice mmStat and ‘Wireshark’ ™

☐       Common Issues
    ☐     System Configuration (deployment architecture, networking-setup)
    ☐     System Deployment (resource usage/watermarks, statistics, reports, tracing)
    ☐     Tool Deployment (intrusiveness: local versus remote operation)

☐       Demo’s
    ☐     Tester: system browser (SHMEM vs. SP) and QoS conflict detection (Reliability)
    ☐     Tuner: Statistics monitoring & QoS Tuning (Latency Budget)
    ☐     Tester: 1-click capturing & real-time Charting (virtual attributes, scripting)
    ☐     RnR: scripted recording & replay with RnR-service and Tester
    ☐     RnR: graphical control with RnRManager
OpenSplice Tools
Total Control: OpenSplice Configurator™




                                         Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
☐   The reference tool for
    configuring OpenSplice DDS

☐   Rich online guide to
    configuration options

☐   Context help and parameter
    validation

☐   100% Java
OpenSplice Tester™
☐   “Black-Box” DDS system testing

☐   Automated testing of DDS systems
    ☐   Dynamic Discovery of DDS Entities
    ☐   Domain-specific scripting languages




                                                                                 Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
    ☐   Batch execution of regression tests


☐   Debugging of distributed DDS systems
    ☐   System browser of DDS participants
         ☐   Connectivity & QoS conflict monitoring
    ☐   One-click definition of monitoring timeline
         ☐   Analysis/comparison of topic data
         ☐   Virtual topic-attributes to ease analysis
    ☐   Statistics monitoring
    ☐   1-click spawning of Tuner to ‘attach’ to a remote process / federation


☐   Integrated IDE
    ☐   Syntax highlighting editor
    ☐   One-click relations between script/logs/timeline
Total Control: OpenSplice Tuner™
☐   “Whitebox” debug/tuning Tool
    ☐   Looking ‘inside’ a federation and/or
        application
    ☐   Different perspectives




                                                              Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
        (participant, topic, partition)
☐   Monitoring & Tuning
    ☐   Inspect and Tune the app’s DDS entities
    ☐   Make snapshots of reader-caches
    ☐   Detect and resolve QoS Mismatch
    ☐   Inspect Statistics
☐   Reading & Writing
    ☐   Read/Write data for arbitrary topics
☐   Import & Export
    ☐   Inject Topic Definitions
    ☐   export and import XML-based reader/writer snapshots
OpenSplice RnR

☐   Dynamic recording of any topic-




                                                                                                              Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
    data in a DDS system

☐   Selective replay with variable speed

☐   Distributed control by topic-based
    API

☐   Seamless integration with
    OpenSplice Tester (topic-based API)                    RnR
                                                          RnR                     RnR
                                                         Service
                                                       Service(s)               Manager
☐   Dedicated RnR-Manager graphical
    GUI for scenario-definition and data   Any topic          Record/Replay command
                                                              & status topics
                                                                                      Record/Replay command
                                                                                      & status topics
    import/analysis
                                                              OpenSplice DDS
Wireshark
☐   WireShark Packet
    Dissector




                                                                                        Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
☐   Watch what goes on
    the wire

☐   Inspect DDSI-RTPS and/or
    RT-Networking packets
    being exchanged
    between applications

☐   Native RTnetworking
    dissector support available in
    source-distribution
     ☐   OpenSpliceDDSV6.2.1HDEx86.win32toolswireshark-pluginsospl (see README)
mmStat




                                                                                        Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
mmstat -h
mmstat [-M|m] [-e] [-a] [-i interval] [-s sample_count] [URI]
mmstat [-t|T] [-i interval] [-s sample_count] [-l limit] [-f filter_expression] [URI]

 Mode:
 -m                  Show memory statistics (default mode)
 -M                  Show memory statistics difference

 -t                  Show meta object references
 -T                  Show meta object references difference

 -h                  Show this help
 -e                  Extended mode, shows bar for allocated memory
 -a                  Show pre-allocated memory as well.
 -i   interval       Display interval (in milliseconds)
 -s   sample_count   Stop after sample_count samples
 -l   limit          Show only object count >= limit
 -f   filter_expr    Show only meta objects which name passes the filter expression
Common Issues: Examples & Demo’s
11

Common issues: System Configuration

☐   Selecting the proper deployment architecture
    ☐   Federated / shared-memory (for scalability and data/application lifecycle decoupling)




                                                                                                                                           Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
    ☐   Standalone / single-process (for simplicity yet at the cost of ‘network-scheduling determinism’)

☐   Selecting the proper networking architecture
    ☐   RTNative networking: ‘push’ based architecture using pre-configured (multicast) network-partitions
        ☐   Pro      : zero discovery times (optional topology-discovery only needed for fast disconnect-reaction times)
        ☐   Con      : push implies data might show-up at places where there’s no actual/current interest .. Yet tunable in OpenSplice
    ☐   DDSI networking: ‘pull’ based architecture using advertized locators
        ☐   Pro      : selective distribution to ONLY the set of discovered participants, using unicast whenever just 1 destination
        ☐   Con      : (standardized) discovery-protocol has scalability limitations (amount of heartbeats) .. Yet tunable in OpenSplice


☐   Configuring your domain
    ☐   Using “OpenSplice Configurator” to aid in correct configurations
    ☐   Assure system-wide consistent values
        ☐   Domain-ID’s and in case of RTNetworking the related port-numbers (channels and discovery)
        ☐   RTNetworking only: NetworkPartition definitions (names and related [multicast-] addresses)
Common issues: System Deployment
                                                                                       13




☐   How to Prevent Issues
    ☐ Using the Configurator to validate configurations [demo]




                                                                                            Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
    ☐ Assuring system-wide consistent networking/durability setup
    ☐ Using ResourceLimits policies in your applications

☐   How to detect Issues
    ☐   Setting resource-usage ‘watermarks’ with the configurator [demo]
    ☐   Checking ospl_info.log and ospl_error.log files [demo]
    ☐   Checking QoS RxO conflicts with the Tester and/or Tuner [demo]
    ☐   Capturing behavior with Tester (and [auto-]creation of scripts to reproduce)
    ☐   Recording of information using RnR (manually and/or scripted) [demo]

☐   How to resolve issues
    ☐ Runtime Tuning of QoS policies with the Tuner [demo]
    ☐ Exploring reader/writer/service statistics with Tester & Tuner [demo]
Demo’s
Demo’s
☐       Environment
    ☐     Perf1/2/3 reference-system (shmem versus SP)
    ☐     Ishapes demo-application
    ☐     Configurator / Tester / Tuner / RnR tools




                                                                                                        Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
☐       Configurator
    ☐     Used configuration-files (SHMEM/RnR, SHMEM/Statistics, SP/Resource-limits
    ☐     Demo-config: perf1: RnR added, perf2: statistics added perf3: resource-limits

☐       Tuner/Tester ‘ishapes’ demos
    ☐     Tester: system browser (SHMEM vs. SP)
    ☐     Tester: QoS conflict detection (Reliability)
    ☐     Tuner: QoS Tuning (Latency Budget)
    ☐     Tuner: Status & Statistics (Writer/Reader, perf2: Network-queues, perf3: Network receiving)
    ☐     Tester: real-time Charting (virtual attributes, scripting)

☐       Recording & Replay
    ☐     Scripting with Tester
    ☐     Controlling with RnRManager
Demo setup
                                      remote Tester-2

                                      Remote               Remote
                                                                             Splice-
                                      Tuner 1              Tuner 2
                                                                              Hans



                                                                                                  Office-net




                                                                                                              Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                 Router



                                                  Switch                                   Test-net


     Tester-1/                        Ishapes        Ishapes              Ishapes
   RnRManager                        Federated      Federated           standalone
   Shared Memory                        Shared Memory                   S              N
                                                                        O    DDS       E
                                                                        A
soap   RT-Net   RnR / Dur.            Soap      RT-Net     Durability   P
                                                                             libs      T
                                                                                       W




                             Perf1              Perf2                       Perf3



                                                Switch                                 Perf-net
Teaser: ‘Streams’
☐   Bundled Example




                                                       Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
☐   Streaming 10 mln. Samples
☐   Throughput: up to 29 mln. Samples/s ! (shmem/i7)
Configuration




                                             Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
☐   Perf1
    ☐   Ospl_shmem_native_rnr.xml

☐   Perf2
    ☐   Ospl_shmem_native_statistics.xml

☐   Perf3
    ☐   Ospl_sp_native_resource_limits.xml
QoS conflict detection




Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
QoS Tuning




Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Statistics Monitoring




Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Data-Capture




Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Scripted RnR




Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Graphical RnR




Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSplice DDS
References




                                                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  OpenSplice | DDS                                                    Escalier
                  ¥ #1 OMG DDS Implementation   ¥ Fastest growing JVM Language      ¥ Scala API for OpenSplice DDS
                  ¥ Open Source                 ¥ Open Source                       ¥ Open Source
                  ¥ www.opensplice.org          ¥ www.scala-lang.org                ¥ github.com/kydos/escalier
OpenSplice DDS




                 ¥ Simple C++ API for DDS       ¥ DDS-PSM-Java for OpenSplice DDS   ¥ DDS-based Advanced Distributed
                 ¥ Open Source                  ¥ Open Source                          Algorithms Toolkit
                 ¥ github.com/kydos/simd-cxx    ¥ github.com/kydos/simd-java        ¥ Open Source
                                                                                      ¥ github.com/kydos/dada
:: Connect with Us ::



                   ¥opensplice.com             ¥forums.opensplice.org
                                                                                         ¥@acorsaro
                   ¥opensplice.org             ¥opensplicedds@prismtech.com                 ¥@prismtech
OpenSplice DDS




                                                                                         ¥ crc@prismtech.com
                                                                                         ¥sales@prismtech.com
                 ¥youtube.com/opensplicetube          ¥slideshare.net/angelo.corsaro

Mais conteúdo relacionado

Mais procurados

The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part IIAngelo Corsaro
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & ToolseProsima
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part IAngelo Corsaro
 
ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...
ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...
ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...ID-Based Security イニシアティブ
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeAngelo Corsaro
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollerseProsima
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011Gerardo Pardo-Castellote
 
Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle anynines GmbH
 
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Foundation Japan
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...NTT DATA Technology & Innovation
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 
RTI DDS Intro with DDS Secure
RTI DDS Intro with DDS SecureRTI DDS Intro with DDS Secure
RTI DDS Intro with DDS SecureJohn Breitenbach
 

Mais procurados (20)

The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & Tools
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
DDS Secure Intro
DDS Secure IntroDDS Secure Intro
DDS Secure Intro
 
UML Profile for DDS
UML Profile for DDSUML Profile for DDS
UML Profile for DDS
 
DDS Enabling Open Architecture
DDS Enabling Open ArchitectureDDS Enabling Open Architecture
DDS Enabling Open Architecture
 
ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...
ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...
ゼロ・トラストネットワークを実現する、 マイクロソフトの新しいSecurityサービスの全貌 〜 SIEM、SOCの構築をサポートするMicrosoft ...
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollers
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
 
Best Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDSBest Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDS
 
Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle
 
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
RTI DDS Intro with DDS Secure
RTI DDS Intro with DDS SecureRTI DDS Intro with DDS Secure
RTI DDS Intro with DDS Secure
 

Destaque

20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies20 Tips for OpenSplice Newbies
20 Tips for OpenSplice NewbiesAngelo Corsaro
 
10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDSAngelo Corsaro
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAngelo Corsaro
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSAngelo Corsaro
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaAngelo Corsaro
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Sumant Tambe
 
Retaining & motivating employees
Retaining & motivating employeesRetaining & motivating employees
Retaining & motivating employeesRajendra Sabnis
 
Cyberpolitics 2009 W5
Cyberpolitics 2009 W5Cyberpolitics 2009 W5
Cyberpolitics 2009 W5oiwan
 
Visita biblioteca municipal 2013
Visita biblioteca municipal 2013Visita biblioteca municipal 2013
Visita biblioteca municipal 2013XXX XXX
 
Osam Mardin Professional Samples1
Osam Mardin Professional Samples1Osam Mardin Professional Samples1
Osam Mardin Professional Samples1mardinor
 
In Memoriam Octavian Paler
In Memoriam Octavian PalerIn Memoriam Octavian Paler
In Memoriam Octavian Palerpuicarmariana
 
Comox.april.2013.writing#3
Comox.april.2013.writing#3Comox.april.2013.writing#3
Comox.april.2013.writing#3Faye Brownlie
 
Inclusion, Quesnel district staff
Inclusion, Quesnel district staff Inclusion, Quesnel district staff
Inclusion, Quesnel district staff Faye Brownlie
 
Ingalaterra Eta Portugal
Ingalaterra Eta PortugalIngalaterra Eta Portugal
Ingalaterra Eta Portugalguestd4e08
 
Corporate Disclosure From An Investors Perspective 2006
Corporate Disclosure From An Investors Perspective  2006Corporate Disclosure From An Investors Perspective  2006
Corporate Disclosure From An Investors Perspective 2006Reed Kathrein
 

Destaque (20)

20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies
 
10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part I
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDS
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++
 
Retaining & motivating employees
Retaining & motivating employeesRetaining & motivating employees
Retaining & motivating employees
 
Sph 107 Ch 9
Sph 107 Ch 9Sph 107 Ch 9
Sph 107 Ch 9
 
Cyberpolitics 2009 W5
Cyberpolitics 2009 W5Cyberpolitics 2009 W5
Cyberpolitics 2009 W5
 
Visita biblioteca municipal 2013
Visita biblioteca municipal 2013Visita biblioteca municipal 2013
Visita biblioteca municipal 2013
 
Osam Mardin Professional Samples1
Osam Mardin Professional Samples1Osam Mardin Professional Samples1
Osam Mardin Professional Samples1
 
In Memoriam Octavian Paler
In Memoriam Octavian PalerIn Memoriam Octavian Paler
In Memoriam Octavian Paler
 
SPH 106 Ch 1
SPH 106 Ch 1SPH 106 Ch 1
SPH 106 Ch 1
 
Vagrant
VagrantVagrant
Vagrant
 
Comox.april.2013.writing#3
Comox.april.2013.writing#3Comox.april.2013.writing#3
Comox.april.2013.writing#3
 
Sph 106 Ch 2
Sph 106 Ch 2Sph 106 Ch 2
Sph 106 Ch 2
 
Inclusion, Quesnel district staff
Inclusion, Quesnel district staff Inclusion, Quesnel district staff
Inclusion, Quesnel district staff
 
ikd312-02-three-schema
ikd312-02-three-schemaikd312-02-three-schema
ikd312-02-three-schema
 
Ingalaterra Eta Portugal
Ingalaterra Eta PortugalIngalaterra Eta Portugal
Ingalaterra Eta Portugal
 
Corporate Disclosure From An Investors Perspective 2006
Corporate Disclosure From An Investors Perspective  2006Corporate Disclosure From An Investors Perspective  2006
Corporate Disclosure From An Investors Perspective 2006
 

Semelhante a Tuning and Troubleshooting OpenSplice DDS Applications

DDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesAngelo Corsaro
 
Interoperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System ArchitecturesInteroperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System ArchitecturesAngelo Corsaro
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileAngelo Corsaro
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsZettaScaleTechnology
 
DDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web ApplicationsDDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web ApplicationsAngelo Corsaro
 
The OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIThe OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIAngelo Corsaro
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDSAngelo Corsaro
 
Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLAAngelo Corsaro
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSAngelo Corsaro
 
Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging Angelo Corsaro
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Angelo Corsaro
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeSumant Tambe
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeReal-Time Innovations (RTI)
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IAngelo Corsaro
 

Semelhante a Tuning and Troubleshooting OpenSplice DDS Applications (20)

DDS Everywhere
DDS EverywhereDDS Everywhere
DDS Everywhere
 
DDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart Cities
 
DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
 
Interoperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System ArchitecturesInteroperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System Architectures
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice Mobile
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The Origins
 
OpenSplice DDS v6
OpenSplice DDS v6OpenSplice DDS v6
OpenSplice DDS v6
 
DDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web ApplicationsDDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web Applications
 
The OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIThe OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode II
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDS
 
Cloudand Xchange
Cloudand XchangeCloudand Xchange
Cloudand Xchange
 
Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLA
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDS
 
Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.
 
Interoperable DDS Strategies
Interoperable DDS StrategiesInteroperable DDS Strategies
Interoperable DDS Strategies
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
 
What Can DDS Do For You?
What Can DDS Do For You?What Can DDS Do For You?
What Can DDS Do For You?
 

Mais de Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationAngelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computeAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingAngelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing InfrastructureAngelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing PlatformAngelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture FourAngelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture ThreeAngelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture TwoAngelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture OneAngelo Corsaro
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsAngelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity StandardAngelo Corsaro
 

Mais de Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 
Fog Computing Defined
Fog Computing DefinedFog Computing Defined
Fog Computing Defined
 

Último

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Último (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Tuning and Troubleshooting OpenSplice DDS Applications

  • 1. Tuning and Troubleshooting OpenSplice DDS Applications OpenSplice DDS Angelo Corsaro, PhD Hans van’t Hag. Chief Technology Officer Product Manager OMG DDS Sig Co-Chair OMG DDS Co-Author PrismTech PrismTech angelo.corsaro@prismtech.com hans.vanthag@prismtech.com
  • 2. OpenSplice DDS US OSUM 2013 http://www.prismtech.com/events/opensplice-user-meeting-usa-2013 Copyright  2011,  PrismTech  –    All  Rights  Reserved.
  • 3. Part I -- Setting the Context OpenSplice DDS
  • 4. Kinds of Issues When building distributed applications there are several kinds of issues you can Copyright  2011,  PrismTech  –    All  Rights  Reserved. encounter. Some of the most common issues are often: ☐ Connectivity: “things” don’t seem to talk to each other ☐ Performance:the latency is too high or throughput is too low OpenSplice DDS ☐ Scalability: your system does not scale as necessary ☐ Resource Utilization: your application is using way too much CPU, Memory, and/or Network This webcast explores common issues in DDS applications and demonstrates how the tools provided by OpenSplice DDS can their diagnose and resolution
  • 5. OpenSplice DDS Connectivity
  • 6. Connectivity Issues Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ DDS provides dynamic discovery thus as there is network connectivity applications that are intended to communicate should discover each other and just work! OpenSplice DDS ☐ What may be the cause of connectivity issues in DDS? ☐ The network is not working (did you plug the wire?) ☐ Your applications does not share the same domain (thus your mistake) ☐ The QoS of the DataWriter and the DataReader don’t match
  • 7. OpenSplice DDS QoS Mismatch?
  • 8. Tip #8 Understand the QoS Model DURABILITY LIVELINESS DEST. ORDER TIME-BASED FILTER ☐ DDS defines 22 QoS HISTORY OWENERSHIP PARTITION RESOURCE LIMITS policies that can be LIFESPAN OWN. STRENGTH PRESENTATION Copyright  2011,  PrismTech  –    All  Rights  Reserved. RELIABILITY DW LIFECYCLE applied to USER DATA DEADLINE DR LIFECYCLE communication entities TOPIC DATA LATENCY BUDGET ENTITY FACTORY to control their local as GROUP DATA TRANSPORT PRIO OpenSplice DDS well as end-to-end behaviour RxO QoS Local QoS Most of the QoS Policies that control an end-to-end property follow the so- called Request vs. Offered (RxO) Model based on which the QoS requested by the Consumer should not exceed the QoS Provided by the Producer. If there is an RxO mismatch no communication will take place
  • 10. OpenSplice DDS Performance
  • 11. Latency / Throughput ☐ DDS provides several QoS Policies to control latency and Copyright  2011,  PrismTech  –    All  Rights  Reserved. throughput ☐ OpenSplice provides extensions such as Streams to efficiently distribute small data (e.g. several millions samples per second) OpenSplice DDS ☐ OpenSplice Tools such TimeBasedFilter Deadline as the Tuner can help find the right QoS [Inbound] setting for achieving Throughput LatencyBudget Latency the desired level or [Outbound] latency/throughput TransportPriority
  • 12. OpenSplice DDS Scalability
  • 13. Federated / Standalone Deployment Application Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. OpenSplice DDS OpenSplice DDS OpenSplice DDS Operating Operating OpenSplice DDS Systems Systems Federated Deployment Standalone Deployment ☐ Performance ☐ Usability ☐ Scalability ☐ Simple Configuration ☐ Determinism ☐ Simple Deployment
  • 14. Deployment Configuration Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The deployment mode can be changed by a simple configuration parameter. No With OpenSplice DDS recompilation or re-linking! you can choose the deployment ☐ <SingleProcess>true</SingleProcess> architecture that makes OpenSplice DDS the most sense for your ☐ The deployment options can be mixed at use case. will (even within a single computing node) ☐ The same application can be deployed in “Simple when Sufficient. Performant when Required” federated and standalone mode (even on the same system)
  • 15. Deployment Configuration Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The deployment mode can be changed by a simple configuration parameter. No With OpenSplice DDS recompilation or re-linking! you can choose the deployment ☐ <SingleProcess>true</SingleProcess> architecture that makes OpenSplice DDS the most sense for your ☐ The deployment options can be mixed at use case. will (even within a single computing node) ☐ The same application can be deployed in “Simple when Sufficient. Performant when Required” federated and standalone mode (even on the same system)
  • 18. Shared Memory Size ☐ OpenSplice DDS shared memory size is defined in its Copyright  2011,  PrismTech  –    All  Rights  Reserved. configuration file. The size defined by the default configuration file is 10MBytes Beware that different OS have different limitations w.r.t. OpenSplice DDS ☐ the maximum shared memory segment that can be allocated ☐ If you want to go beyond the OS limits you need to change the configuration of your kernel
  • 19. Linux ☐ The default value for the maximum shared memory segment is 32MBytes Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ This default can be changed in several ways (1) Adding this line to your /etc/rc.d/rc.local file: OpenSplice DDS echo “your_max_shared_memory_size” > /proc/sys/kernel/shmmax (2) Changing the settings for the sys-limits (save changes on /etc/ sysctl.conf to maintain them across reboots): $ sysctl -w kernel.shmmax=yourMaxValue
  • 20. Windows Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The default maximum size for Shared Memory segments on Windows is 2GB ☐ To exend it, say to 3GB, add the /3GB the boot.ini as shown below: OpenSplice DDS [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows NT Workstation Version 4.00" /3GB
  • 22. Topic Types & Keys Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Topic Types can define some of their attributes as keys OpenSplice DDS ☐ Yet, even when a Topic type does not define a key the keylist directive has to be provided -- just to tell the IDL compiler that this is a topic
  • 23. Topic Types & Keys Keyful Keyless Copyright  2011,  PrismTech  –    All  Rights  Reserved. enum TemperatureScale { CELSIUS, FAHRENHEIT, struct UniversalConstants { KELVIN double PI; }; double e; // Nepero Number double g; // Gravitational Constant double NA; // Avogadro Number OpenSplice DDS struct TempSensorType { short id; double F; // Faraday Constant float temp; double K; // Boltzman Constant float hum; double c; // Light Speed TemperatureScale scale; }; }; #pragma keylist UniversalConstants #pragma keylist TempSensorType id
  • 24. Topic Instances Copyright  2011,  PrismTech  –    All  Rights  Reserved. enum TemperatureScale { CELSIUS, FAHRENHEIT, Writer Reader KELVIN }; OpenSplice DDS 2 26.0 70.0 CELSIUS 1 26.0 70.0 CELSIUS struct TempSensorType { short id; 1 26.0 70.0 CELSIUS 2 26.0 70.0 CELSIUS float temp; float hum; TemperatureScale scale; }; #pragma keylist TempSensorType
  • 25. Topic Instances Copyright  2011,  PrismTech  –    All  Rights  Reserved. enum TemperatureScale { CELSIUS, FAHRENHEIT, Writer Reader KELVIN }; OpenSplice DDS struct TempSensorType { 2 26.0 70.0 CELSIUS 1 26.0 70.0 CELSIUS 2 26.0 70.0 CELSIUS short id; 1 26.0 70.0 CELSIUS float temp; float hum; TemperatureScale scale; }; #pragma keylist TempSensorType id
  • 26. Instance Management ☐ Each topic instance takes Copyright  2011,  PrismTech  –    All  Rights  Reserved. resources (e.g. memory) Writer Reader ☐ If you don’t choose carefully your key, you may end-up 2 26.0 70.0 CELSIUS OpenSplice DDS 1 26.0 70.0 CELSIUS 2 26.0 70.0 CELSIUS creating an instance per 1 26.0 70.0 CELSIUS sample... ☐ In addition, instances can be explicitly disposed in order to reclaim resources
  • 27. Example struct Counter { short cid; long count; }; #pragma keylist Counter ??? OpenSplice DDS
  • 28. Example struct Counter { short cid; long count; }; #pragma keylist Counter cid OpenSplice DDS
  • 29. Example struct SpatialSensor { short x; short y; float v; }; OpenSplice DDS #pragma keylist SpatialSensor ???
  • 30. Example struct SpatialSensor { short x; short y; float v; }; OpenSplice DDS #pragma keylist SpatialSensor
  • 31. Topic Instances Lifecycle struct VehiclePosition { string plate; long x; long y; Copyright  2011,  PrismTech  –    All  Rights  Reserved. }; com.myco.VPos #pragma keylist VehiclePosition plate OpenSplice DDS struct VehiclePosition { string plate; long x; long y; }; #pragma keylist VehiclePosition com.myco.VPos
  • 32. Topic Instances Lifecycle struct VehiclePosition { string plate; New long x; “A01” 100 200 long y; Copyright  2011,  PrismTech  –    All  Rights  Reserved. }; com.myco.VPos #pragma keylist VehiclePosition plate OpenSplice DDS struct VehiclePosition { string plate; long x; long y; New }; #pragma keylist VehiclePosition “A01” 100 200 com.myco.VPos
  • 33. Topic Instances Lifecycle struct VehiclePosition { string plate; New long x; “A01” 100 200 Copyright  2011,  PrismTech  –    All  Rights  Reserved. long y; }; New “B41” 57 31 #pragma keylist VehiclePosition plate com.myco.VPos OpenSplice DDS struct VehiclePosition { string plate; long x; long y; }; #pragma keylist VehiclePosition “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 34. Topic Instances Lifecycle struct VehiclePosition { string plate; New long x; “A01” 110 210 “A01” 100 200 long y; Copyright  2011,  PrismTech  –    All  Rights  Reserved. }; New #pragma keylist VehiclePosition “B41” 57 31 plate com.myco.VPos OpenSplice DDS struct VehiclePosition { string plate; long x; long y; }; #pragma keylist VehiclePosition “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 35. Topic Instances Lifecycle New “A01” 120 220 “A01” 110 210 “A01” 100 200 Copyright  2011,  PrismTech  –    All  Rights  Reserved. New “B41” 57 31 com.myco.VPos OpenSplice DDS “A01” 120 220 “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 36. Topic Instances Lifecycle New “A01” 120 220 “A01” 110 210 “A01” 100 200 Copyright  2011,  PrismTech  –    All  Rights  Reserved. New “B41” 47 19 “B41” 57 31 com.myco.VPos OpenSplice DDS “B41” 47 19 “A01” 120 220 “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 37. Topic Instances Lifecycle New “A01” 120 220 “A01” 110 210 “A01” 100 200 Copyright  2011,  PrismTech  –    All  Rights  Reserved. New d Dispose “B41” - - “B41” 47 19 “B41” 57 31 com.myco.VPos OpenSplice DDS “B41” is ed D47pos19 “A01” 120 220 “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 38. Part II -- Demoes OpenSplice DDS
  • 39. Content ☐ Tools ☐ Configuration: OpenSplice Configurator ☐ Black-box System (regression) Testing: OpenSplice Tester ☐ White-box application Inspection & Tuning: OpenSplice Tuner Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Recording & Replay: OpenSplice RnR ☐ Shared-memory and Network monitoring: OpenSplice mmStat and ‘Wireshark’ ™ ☐ Common Issues ☐ System Configuration (deployment architecture, networking-setup) ☐ System Deployment (resource usage/watermarks, statistics, reports, tracing) ☐ Tool Deployment (intrusiveness: local versus remote operation) ☐ Demo’s ☐ Tester: system browser (SHMEM vs. SP) and QoS conflict detection (Reliability) ☐ Tuner: Statistics monitoring & QoS Tuning (Latency Budget) ☐ Tester: 1-click capturing & real-time Charting (virtual attributes, scripting) ☐ RnR: scripted recording & replay with RnR-service and Tester ☐ RnR: graphical control with RnRManager
  • 41. Total Control: OpenSplice Configurator™ Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ The reference tool for configuring OpenSplice DDS ☐ Rich online guide to configuration options ☐ Context help and parameter validation ☐ 100% Java
  • 42. OpenSplice Tester™ ☐ “Black-Box” DDS system testing ☐ Automated testing of DDS systems ☐ Dynamic Discovery of DDS Entities ☐ Domain-specific scripting languages Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Batch execution of regression tests ☐ Debugging of distributed DDS systems ☐ System browser of DDS participants ☐ Connectivity & QoS conflict monitoring ☐ One-click definition of monitoring timeline ☐ Analysis/comparison of topic data ☐ Virtual topic-attributes to ease analysis ☐ Statistics monitoring ☐ 1-click spawning of Tuner to ‘attach’ to a remote process / federation ☐ Integrated IDE ☐ Syntax highlighting editor ☐ One-click relations between script/logs/timeline
  • 43. Total Control: OpenSplice Tuner™ ☐ “Whitebox” debug/tuning Tool ☐ Looking ‘inside’ a federation and/or application ☐ Different perspectives Copyright  2013,  PrismTech  –    All  Rights  Reserved. (participant, topic, partition) ☐ Monitoring & Tuning ☐ Inspect and Tune the app’s DDS entities ☐ Make snapshots of reader-caches ☐ Detect and resolve QoS Mismatch ☐ Inspect Statistics ☐ Reading & Writing ☐ Read/Write data for arbitrary topics ☐ Import & Export ☐ Inject Topic Definitions ☐ export and import XML-based reader/writer snapshots
  • 44. OpenSplice RnR ☐ Dynamic recording of any topic- Copyright  2013,  PrismTech  –    All  Rights  Reserved. data in a DDS system ☐ Selective replay with variable speed ☐ Distributed control by topic-based API ☐ Seamless integration with OpenSplice Tester (topic-based API) RnR RnR RnR Service Service(s) Manager ☐ Dedicated RnR-Manager graphical GUI for scenario-definition and data Any topic Record/Replay command & status topics Record/Replay command & status topics import/analysis OpenSplice DDS
  • 45. Wireshark ☐ WireShark Packet Dissector Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Watch what goes on the wire ☐ Inspect DDSI-RTPS and/or RT-Networking packets being exchanged between applications ☐ Native RTnetworking dissector support available in source-distribution ☐ OpenSpliceDDSV6.2.1HDEx86.win32toolswireshark-pluginsospl (see README)
  • 46. mmStat Copyright  2013,  PrismTech  –    All  Rights  Reserved. mmstat -h mmstat [-M|m] [-e] [-a] [-i interval] [-s sample_count] [URI] mmstat [-t|T] [-i interval] [-s sample_count] [-l limit] [-f filter_expression] [URI] Mode: -m Show memory statistics (default mode) -M Show memory statistics difference -t Show meta object references -T Show meta object references difference -h Show this help -e Extended mode, shows bar for allocated memory -a Show pre-allocated memory as well. -i interval Display interval (in milliseconds) -s sample_count Stop after sample_count samples -l limit Show only object count >= limit -f filter_expr Show only meta objects which name passes the filter expression
  • 48. 11 Common issues: System Configuration ☐ Selecting the proper deployment architecture ☐ Federated / shared-memory (for scalability and data/application lifecycle decoupling) Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Standalone / single-process (for simplicity yet at the cost of ‘network-scheduling determinism’) ☐ Selecting the proper networking architecture ☐ RTNative networking: ‘push’ based architecture using pre-configured (multicast) network-partitions ☐ Pro : zero discovery times (optional topology-discovery only needed for fast disconnect-reaction times) ☐ Con : push implies data might show-up at places where there’s no actual/current interest .. Yet tunable in OpenSplice ☐ DDSI networking: ‘pull’ based architecture using advertized locators ☐ Pro : selective distribution to ONLY the set of discovered participants, using unicast whenever just 1 destination ☐ Con : (standardized) discovery-protocol has scalability limitations (amount of heartbeats) .. Yet tunable in OpenSplice ☐ Configuring your domain ☐ Using “OpenSplice Configurator” to aid in correct configurations ☐ Assure system-wide consistent values ☐ Domain-ID’s and in case of RTNetworking the related port-numbers (channels and discovery) ☐ RTNetworking only: NetworkPartition definitions (names and related [multicast-] addresses)
  • 49. Common issues: System Deployment 13 ☐ How to Prevent Issues ☐ Using the Configurator to validate configurations [demo] Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Assuring system-wide consistent networking/durability setup ☐ Using ResourceLimits policies in your applications ☐ How to detect Issues ☐ Setting resource-usage ‘watermarks’ with the configurator [demo] ☐ Checking ospl_info.log and ospl_error.log files [demo] ☐ Checking QoS RxO conflicts with the Tester and/or Tuner [demo] ☐ Capturing behavior with Tester (and [auto-]creation of scripts to reproduce) ☐ Recording of information using RnR (manually and/or scripted) [demo] ☐ How to resolve issues ☐ Runtime Tuning of QoS policies with the Tuner [demo] ☐ Exploring reader/writer/service statistics with Tester & Tuner [demo]
  • 51. Demo’s ☐ Environment ☐ Perf1/2/3 reference-system (shmem versus SP) ☐ Ishapes demo-application ☐ Configurator / Tester / Tuner / RnR tools Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Configurator ☐ Used configuration-files (SHMEM/RnR, SHMEM/Statistics, SP/Resource-limits ☐ Demo-config: perf1: RnR added, perf2: statistics added perf3: resource-limits ☐ Tuner/Tester ‘ishapes’ demos ☐ Tester: system browser (SHMEM vs. SP) ☐ Tester: QoS conflict detection (Reliability) ☐ Tuner: QoS Tuning (Latency Budget) ☐ Tuner: Status & Statistics (Writer/Reader, perf2: Network-queues, perf3: Network receiving) ☐ Tester: real-time Charting (virtual attributes, scripting) ☐ Recording & Replay ☐ Scripting with Tester ☐ Controlling with RnRManager
  • 52. Demo setup remote Tester-2 Remote Remote Splice- Tuner 1 Tuner 2 Hans Office-net Copyright  2013,  PrismTech  –    All  Rights  Reserved. Router Switch Test-net Tester-1/ Ishapes Ishapes Ishapes RnRManager Federated Federated standalone Shared Memory Shared Memory S N O DDS E A soap RT-Net RnR / Dur. Soap RT-Net Durability P libs T W Perf1 Perf2 Perf3 Switch Perf-net
  • 53. Teaser: ‘Streams’ ☐ Bundled Example Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Streaming 10 mln. Samples ☐ Throughput: up to 29 mln. Samples/s ! (shmem/i7)
  • 54. Configuration Copyright  2013,  PrismTech  –    All  Rights  Reserved. ☐ Perf1 ☐ Ospl_shmem_native_rnr.xml ☐ Perf2 ☐ Ospl_shmem_native_statistics.xml ☐ Perf3 ☐ Ospl_sp_native_resource_limits.xml
  • 55. QoS conflict detection Copyright  2013,  PrismTech  –    All  Rights  Reserved.
  • 56. QoS Tuning Copyright  2013,  PrismTech  –    All  Rights  Reserved.
  • 57. Statistics Monitoring Copyright  2013,  PrismTech  –    All  Rights  Reserved.
  • 58. Data-Capture Copyright  2013,  PrismTech  –    All  Rights  Reserved.
  • 59. Scripted RnR Copyright  2013,  PrismTech  –    All  Rights  Reserved.
  • 60. Graphical RnR Copyright  2013,  PrismTech  –    All  Rights  Reserved.
  • 62. References Copyright  2011,  PrismTech  –    All  Rights  Reserved. OpenSplice | DDS Escalier ¥ #1 OMG DDS Implementation ¥ Fastest growing JVM Language ¥ Scala API for OpenSplice DDS ¥ Open Source ¥ Open Source ¥ Open Source ¥ www.opensplice.org ¥ www.scala-lang.org ¥ github.com/kydos/escalier OpenSplice DDS ¥ Simple C++ API for DDS ¥ DDS-PSM-Java for OpenSplice DDS ¥ DDS-based Advanced Distributed ¥ Open Source ¥ Open Source Algorithms Toolkit ¥ github.com/kydos/simd-cxx ¥ github.com/kydos/simd-java ¥ Open Source ¥ github.com/kydos/dada
  • 63. :: Connect with Us :: ¥opensplice.com ¥forums.opensplice.org ¥@acorsaro ¥opensplice.org ¥opensplicedds@prismtech.com ¥@prismtech OpenSplice DDS ¥ crc@prismtech.com ¥sales@prismtech.com ¥youtube.com/opensplicetube ¥slideshare.net/angelo.corsaro