DDS QoS Unleashed

8,137 views

Published on

The DDS specification provides fine-grained control over the real-time behaviour, dependability, and performance of DDS applications by means of a rich set of QoS Policies. The challenge for many DDS users is that the specifications explains very clearly how each QoS allows to control very specific aspects of data distribution yet it provides no hints on how different QoS should be composed to control complex properties such as the consistency model, or to impose end-to-end real-time scheduling decision. This half-day tutorial will fill this gap by providing attendees with (1) an explanation of how the various QoS compose, and (2) providing attendees with a series of QoS-composition Patters that can be used to control macro-properties of an application, such as the consistency model.

Published in: Technology, Business

DDS QoS Unleashed

  1. 1. Splice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS DDS QoS Unleashed :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Angelo Corsaro, Ph.D. Chief Technology Officer PrismTech OMG DDS SIG Co-Chair angelo.corsaro@prismtech.com Splice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
  2. 2. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Agenda :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ Recap of DDS Basics ‣ QoS Model ‣ DDS QoS ‣ QoS Patterns
  3. 3. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD The OMG DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The OMG DDS Standard ‣ Introduced in 2004 to address the Data distribution challenges typical of Defense and Aerospace Applications ‣ Key requirement for the standard were high performance and scalability from embedded to ultra-large-scale deployments ‣ Today recommended by key administration worldwide and widely adopted well beyond Aerospace and Defense in domains, such as, Automated Trading, Simulations, SCADA, Telemetry, etc.
  4. 4. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD The OMG Data Distribution Service :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DDS v1.2 API Standard Application ‣ Language Independent, OS and Object/Relational Mapping HW architecture independent Data Local Reconstruction Layer (DLRL) Content ‣ DCPS. Standard API for Data- Ownership Durability Subscription Centric, Topic-Based, Real-Time Minimum Profile Publish/Subscribe Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol ‣ DLRL. Standard API for creating DDS Interoperability Wire Protocol Object Views out of collection of UDP/IP Topics
  5. 5. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD The OMG Data Distribution Service :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DDSI/RTPS v2.1 Wire Protocol Application Standard Object/Relational Mapping ‣ Standard wire protocol allowing Data Local Reconstruction Layer (DLRL) interoperability between different Ownership Durability Content Subscription implementations of the DDS Minimum Profile standard Data Centric Publish/Subscribe (DCPS) ‣ Interoperability demonstrated Real-Time Publish/Subscribe Protocol among key DDS vendors in March DDS Interoperability Wire Protocol 2009 UDP/IP
  6. 6. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: How Does it Works?!?
  7. 7. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: as a c an be seen Note: DDS NDA n of the LI relaxatio odel coord ination m ‣ DDS is based around the Brokers concept of a fully distributed Global Data Space (GDS) DDS ‣ Applications can autonomously Global Data Space and asynchronously read/ written data in the GDS
  8. 8. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Brokers ‣ Publishers and Subscribers can DDS join and leave the Publisher GDS at any time Global Data Space
  9. 9. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Publishers and Subscribers can DDS join and leave the Subscriber Publisher GDS at any time Global Data Space Publisher Subscriber
  10. 10. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ Publishers and Publisher Brokers Subscriber Subscribers express their intent to DDS produce/consume Publisher Subscriber specific type of data, Global Data Space e.g., Topics Publisher Subscriber
  11. 11. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Subscriptions are matched by taking into account topics DDS Subscriber (name, data type and Publisher Global Data Space QoS) Publisher Subscriber
  12. 12. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Subscriptions are dynamically matched DDS and Data flows from Publisher Subscriber Global Data Space Publisher to Subscribers Publisher Subscriber
  13. 13. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Subscriptions are dynamically matched DDS and Data flows from Publisher Subscriber Global Data Space Publisher to Subscribers Publisher Subscriber
  14. 14. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Defining Data
  15. 15. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Topic -- the unit of information :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Topic: Track, UFO, AirCraft, ... ‣ Unit of information exchanged between Name Publisher and Subscribers. ‣ An association between a Type Topic QoS unique name, a type and a { QoS setting TrackedObject Reliability Deadline, Priority Transient, ... }
  16. 16. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Topic -- the unit of information :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: struct TrackedObject { Topic Type: long oId; ‣ Type describing the data long x; long y; associated with one or more long size; Topics }; #pragma keylist TrackedObject oId ‣ A Topic type can have a key struct FlightPlan { represented by an arbitrary string code; number of attributes long trackId; string origin; string dest; ‣ Expressed in IDL (or XML) sequence<Coord> trajectory; }; #pragma keylist FlightPlan code
  17. 17. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD DDS Topic Instances and Samples :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Topic Instances ‣ Each key value identifies a unique Topic Instance ‣ Topic’s instance lifetime can be explicitly managed in DDS struct TrackedObject { long oId; long x; long y; long size; }; Topic Samples #pragma keylist TrackedObject oId ‣ The values assumed by a Topic Instance over time are referred as Instance Sample
  18. 18. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Topic/Instances/Samples Recap. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Topics Instances UFO FlyingCar Airfraft Samples ti tj tnow time
  19. 19. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Content Filtering :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: X0 X0 <= X <= X1 X1 ‣ DDS allows the use of a subset of SQL92 to specify content-filtered Topics Y0 ‣ Content filters can be applied on the entire content of the Topic Y0 <= Y <= Y1 Type ‣ Content filters are applied by DDS Y1 each time a new sample is produced/delivered (x BETWEEN (RANGE x0 AND x1)) AND (y BETWEEN (RANGE y0 AND y1))
  20. 20. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Content Filtering :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: X0 X0 <= X <= X1 X1 ‣ DDS allows the use of a subset of SQL92 to specify content-filtered Topics Y0 ‣ Content filters can be applied on the entire content of the Topic Y0 <= Y <= Y1 Type ‣ Content filters are applied by DDS Y1 each time a new sample is produced/delivered (x BETWEEN (RANGE x0 AND x1)) AND (y BETWEEN (RANGE y0 AND y1))
  21. 21. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Quality of Service
  22. 22. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS Model :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ QoS-Policies provide Type Matching QoS matching control over local and QoS QoS QoS QoS QoS QoS QoS end-to-end properties of Topic Name DDS entities Publisher Subscriber ... DataWriter writes Type reads DataReader ... ... ‣ Local properties DomainParticipant DataWriter writes Type reads DataReader DomainParticipant controlled by QoS are Name Topic related resource usage QoS QoS QoS ‣ End-to-end properties controlled by QoS are related to temporal and spatial aspects of data distribution ‣ Some QoS-Policies are matched based on a Request vs. Offered Model thus QoS-enforcement
  23. 23. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N QoS Policy Applicability RxO Modifiable DURABILITY T, DW N N SERVICE Data TIME BASED DR N/A Y Availability FILTER LIFESPAN T, DW N/A Y Resources RESOURCE T, DR, DW N N HISTORY T, DR, DW N N LIMITS PRESENTATIO P, S Y N ENTITY N FACTORY RELIABILITY T, DR, DW Y N USER DATA DP, DR, DW N Y Configuratio PARTITION P, S N Y Data TOPIC DATA T N Y n DESTINATION T, DR, DW Y N Delivery GROUP DATA P, S N Y ORDER LIVELINESS T, DR, DW Y N OWNERSHIP T, DR, DW Y N WRITER DATA DW N/A Y OWNERSHIP DW N/A Y LIFECYCLE STRENGTH Lifecycle READER DATA DR N/A Y DEADLINE T, DR, DW Y Y LIFECYCLE LATENCY T, DR, DW Y Y Data BUDGET Timeliness TRANSPORT T, DW N/A Y PRIORITY
  24. 24. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Which properties does QoS controls? TimeBasedFilter Deadline History Data Data Throughput Lifespan Durability Latency Availability Ownership LatencyBudget TransportPriority Ownership Strength Control over Latency/Throughput tradeoff Control over data queueing Control over data latency Control over data persistency Control over data priority Control over data sources hot-swap Reliability Destination Presentation Data Delivery Order Control over data distribution reliability Control over data ordering Control over presentation
  25. 25. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Which properties does QoS controls? TimeBasedFilter Deadline History Data Data Throughput Lifespan Durability Latency Availability Ownership LatencyBudget TransportPriority Ownership Strength Control over Latency/Throughput tradeoff Control over data queueing Control over data latency Control over data persistency Control over data priority Control over data sources hot-swap Reliability Destination DDS provides programmatic QoS-driven Presentation Data Delivery Order support for configuring the most important Control over data distribution reliability properties of data distribution! Control over data ordering Control over presentation
  26. 26. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Design by Contract in DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: class ACCOUNT create make ‣ Design by contract was popularized feature balance: INTEGER by Bertrand Meyer as a way of owner: PERSON making explicit the pre/post minimum_balance: INTEGER is 1000 condition and invariants associated deposit (sum: INTEGER) is with methods and the state of a -- Deposit sum into the account. require class do sum >= 0 add(sum) ‣ DDS QoS allows to extend design by ensure balance = old balance + sum contract to non-functional aspects of end an application --- Other methods invariant balance >= minimum_balance end -- class ACCOUNT
  27. 27. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Design by Contract in DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Capturing System Invariants ‣ The weakest precondition, meaning the weakest QoS, required by the system to properly perform should be captured as QoS attached to the information model, e.g. Topics. Refining Invariants ‣ QoS associated with the information model, should be only strengthened by overriding QoS at a DataWriter level ‣ QoS should never be weakened by overriding it at a DataReader level
  28. 28. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Design by Contract in DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Contract Enforcements ‣ The RxO model ensures that unless QoS are matched no actual subscription will be established ‣ This ensure that only if QoS contracts are satisfied communication will be established
  29. 29. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS
  30. 30. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION Topic TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  31. 31. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION DataWriter TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  32. 32. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION DataReader TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  33. 33. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION Publisher TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  34. 34. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION Subscriber TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  35. 35. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION Domain LATENCY BUDGET PRESENTATION Participant TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  36. 36. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Organizing Data
  37. 37. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Partitions QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ The Partition QoS Policy QoS Domain Applicability Policy RxO Modifiable can be used as subjects PARTITION P, S N Y organizing the flow of data ‣ The Partition QoS Policy is Subscriber used to connect Publisher "tracks.kfo" "tracks.ufo" Publishers/Subscribers to a Partitions’ List which might also contain wildcards, e.g. Publisher Subscriber tracks.* ‣ Topics are published and subscribed across one or Publisher Subscriber more Partitions Partition
  38. 38. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Example
  39. 39. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DataReader <TrakedObject> DataWriter Subscriber <TrakedObject> "airspace.kfo.aircrafts" DataReader <TrakedObject> Publisher DataWriter AirCraft FlightPlan <FlightPlan> DataReader Subscriber <FlightPlan> "airspace.tfo" DataWriter <FlightPlan> Publisher Tracks Subscriber DataReader <Tracks> "airspace.kfo.flyingcars" DataReader DataWriter <TrackedObject> <TrakedObject> Subscriber Publisher FlyingCar FlightPlan DataWriter DataReader <FlightPlan> <FlightPlan> Partition Global Data Space (GDS) Topic
  40. 40. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DataReader <TrakedObject> DataWriter Subscriber <TrakedObject> "airspace.kfo.aircrafts" DataReader <TrakedObject> Publisher DataWriter AirCraft FlightPlan <FlightPlan> DataReader Subscriber <FlightPlan> "airspace.tfo" DataWriter <FlightPlan> Publisher Tracks Subscriber DataReader <Tracks> "airspace.kfo.flyingcars" DataReader DataWriter <TrackedObject> <TrakedObject> Subscriber Publisher FlyingCar FlightPlan DataWriter DataReader <FlightPlan> <FlightPlan> “airspace.*” Partition Global Data Space (GDS) Topic
  41. 41. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DataReader <TrakedObject> DataWriter Subscriber <TrakedObject> "airspace.kfo.aircrafts" DataReader <TrakedObject> Publisher DataWriter AirCraft FlightPlan <FlightPlan> DataReader Subscriber <FlightPlan> "airspace.tfo" DataWriter <FlightPlan> Publisher Tracks Subscriber DataReader <Tracks> "airspace.kfo.flyingcars" DataReader DataWriter <TrackedObject> <TrakedObject> Subscriber Publisher FlyingCar FlightPlan DataWriter DataReader <FlightPlan> <FlightPlan> “airspace.kfo.*” Partition Global Data Space (GDS) Topic
  42. 42. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Controlling Reliability
  43. 43. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Reliability QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable RELIABILITY T, DR, DW Y N QoS matching The RELIABILITY QoS indicate the QoS QoS QoS level of guarantee offered by the QoS Topic QoS Name DDS in delivering data to DataWriter writes Type reads DataReader subscribers. Publisher ... Subscriber ... ... DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  44. 44. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Reliability QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable Possible variants are: RELIABILITY T, DR, DW Y N ‣ Reliable. In steady-state the QoS matching middleware guarantees that all QoS QoS QoS samples in the DataWriter QoS Topic Name QoS history will eventually be Publisher DataWriter writes Type reads DataReader Subscriber ... delivered to all the DataReader ... ... DataWriter writes Type reads DataReader ‣ Best Effort. Indicates that it is Name Topic acceptable to not retry QoS QoS QoS propagation of any samples QoS matching
  45. 45. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD History QoS How many data samples should I keep? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable The HISTORY QoS policy HISTORY T, DR, DW N N controls whether the DDS should QoS matching deliver only the most recent QoS QoS QoS value, attempt to deliver all QoS Topic QoS Name reads DataReader intermediate values, or do DataWriter writes Type Publisher ... Subscriber ... ... something in between. DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  46. 46. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD History QoS How many data samples should I keep? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The policy can be configured to provide DataReader 1 1 the following semantics: 2 1 3 1 ‣ Keep Last. The DDS will only History Depth = 1 (DDS Default) attempt to keep the most recent “depth” samples of each instance of data identified by its key DataReader 1 1 1 2 1 3 1 4 1 5 ‣ Keep All. The DDS will attempt 2 1 2 2 2 3 2 4 2 5 to keep all the samples of each 3 1 3 2 3 3 3 4 3 5 instance of data identified by its History Depth = 5 key.
  47. 47. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Topic Used in next section. struct Counter { int cID; History in int count; }; #pragma keylist Counter cID Action
  48. 48. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 1 1 2 DataReader 2 1 1 2 2 3 DataWriter 3 1 2 2 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache
  49. 49. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 2 1 2 DataReader 2 2 2 3 DataWriter 3 1 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  50. 50. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 2 1 2 DataReader 2 3 2 3 DataWriter 3 1 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  51. 51. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History = Keep All History Depth = 1 (DDS Default) Network DataReader 1 1 1 2 2 1 1 2 2 3 DataWriter 3 1 2 2 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  52. 52. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History = Keep All History Depth = 1 (DDS Default) Network DataReader 1 1 1 2 1 2 2 1 2 2 2 3 DataWriter 3 1 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  53. 53. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History = Keep All History Depth = 1 (DDS Default) Network DataReader 1 1 1 2 1 2 2 1 2 2 2 3 2 3 DataWriter 3 1 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  54. 54. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Putting it All Together :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The reliability with which data is delivered to applications is impacted in DDS by the following qualities of service ‣ RELIABILITY ‣ BEST_EFORT ‣ RELIABLE ‣ HISTORY ‣ KEEP_LAST (K) ‣ KEEP_ALL
  55. 55. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Putting it All Together :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ Theoretically, the only way to assure that an application will see all the samples produced by a writer is to use RELIABLE +KEEP_ALL. Any other combination could induce to samples being discarded on the receiving side because of the HISTORY depth
  56. 56. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Reliability Gotchas :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ The RESOURCE_LIMITS QoS should always be taken in to account when dealing with the reliable data distribution since it impacts the memory usage (and potentially the DW blocking probability) ‣ Three values have to be provided: ‣ max_samples_per_instance (>= history depth) ‣ max_samples (>= max_samples_per_instance) ‣ max_instances
  57. 57. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Example
  58. 58. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tracks and Flight Plans :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Track FlightPlan Name Name Type Topic QoS Type Topic QoS { TrackedObject { TrackedObject BEST_EFFORT RELIABLE KEEP_LAST(1) KEEP_LAST(1) RESOURCE_LIMITS RESOURCE_LIMITS } }
  59. 59. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Aerospace Violations :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: AerospaceViolation struct ASViolation { long oId; Name string sign; long vcode; }; #pragma keylist ASViolation oId sign Type Topic QoS ASViolation { RELIABLE KEEP_ALL RESOURCE_LIMITS }
  60. 60. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Controlling Real-Time Properties
  61. 61. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Deadline QoS You can’t be later than... :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable DEADLINE T, DR, DW Y Y QoS matching The DEADLINE QoS policy allows QoS QoS QoS QoS Topic QoS to define the maximum inter- Name DataWriter writes Type reads DataReader arrival time between data Publisher ... Subscriber ... ... samples DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  62. 62. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Deadline QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ DataWriter indicates that the application commits to write a new value at least once every deadline period ‣ DataReaders are notified by the DDS when the DEADLINE QoS contract is violated Publisher Subscriber Deadline Deadline Deadline Deadline Deadline Deadline Violation
  63. 63. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Latency Budget QoS I need to get there in at most... :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable LATENCY T, DR, DW Y Y The LATENCY_BUDGET QoS policy BUDGET specifies the maximum acceptable QoS matching delay from the time the data is QoS QoS QoS written until the data is inserted in the QoS Topic QoS Name DataWriter writes Type reads DataReader receiver's application-cache Publisher ... ... ... Subscriber DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  64. 64. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Latency Budget QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ The default value of the duration is zero indicating that the delay should be minimized TBuff Latency Budget = Latency = TBuff +T1+T2+T3 ‣ This policy is a hint to the T3 T1 DDS, not something that T2 must be monitored or enforced.
  65. 65. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Transport Priority QoS VIP Data, stay clear! :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable TRANSPORT T, DW - Y PRIORITY The TRANSPORT_PRIORITY QoS policy is a hint to the QoS matching infrastructure as to how to QoS QoS QoS set the priority of the QoS Topic QoS Name DataWriter writes Type reads DataReader underlying transport used to Publisher ... ... ... Subscriber send the data. DataWriter writes Type reads Name DataReader Topic QoS QoS QoS QoS matching
  66. 66. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Putting it all Together QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The real-time properties with which data is delivered to applications is impacted in DDS by the following qualities of service: Publisher Subscriber ‣ TRANSPORT_PRIORITY Deadline Deadline Deadline Deadline Deadline ‣ LATENCY_BUDGET Deadline Violation ‣ In addition, DDS provides means for detecting performance failure, e.g., Deadline miss, by means of the DEADLINE QoS ‣ Given a periodic task-set {T} with periods Di (with Di < Di+1) and deadline equal to the period, than QoS should be set as follows: ‣ Assign to each task Ti a TRANSPORT_PRIORITY Pi such that Pi > Pi+1 ‣ Set for each task Ti a DEADLINE QoS of Di ‣ For maximizing throughput and minimizing resource usage set for each Ti a LATENCY_BUDGET QoS between Di /2 and Di/3 (this is a rule of thumb, the upper bound is Di-(RTT/2))
  67. 67. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Example
  68. 68. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tracks and Flight Plans :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Track FlightPlan Name Name Type Topic QoS Type Topic QoS { TrackedObject { TrackedObject BEST_EFFORT RELIABLE KEEP_LAST(1) KEEP_LAST(1) RESOURCE_LIMITS RESOURCE_LIMITS DEADLINE (= Period) } TRANSPORT_PRIORITY LATENCY_BUDGET (= Period/3) }
  69. 69. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Aerospace Violations :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: AerospaceViolation struct ASViolation { long oId; Name string sign; long vcode; }; #pragma keylist ASViolation oId sign Type Topic QoS { ASViolation RELIABLE KEEP_ALL RESOURCE_LIMITS LATENCY_BUDGET (=0) TRANSPORT_PRIORITY (= MAX_PRIO) }
  70. 70. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Controlling the Consistency Model
  71. 71. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Durability QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The DURABILITY QoS controls the data availability w.r.t. late joiners, specifically the DDS provides the following variants: QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N ‣ Volatile. No need to keep data DURABILITY T, DW N N instances for late joining data readers SERVICE ‣ Transient Local. Data instance QoS matching availability for late joining data reader is QoS QoS QoS tied to the data writer availability QoS Topic Name QoS DataWriter writes Type reads DataReader ‣ Transient. Data instance availability Publisher ... Subscriber ... ... outlives the data writer DataWriter writes Type reads DataReader Name Topic ‣ Persistent. Data instance availability QoS QoS QoS outlives system restarts QoS matching
  72. 72. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Eventual Consistency & R/W Caches :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Under an Eventual Consistency Model, DDS guarantees DataReader that all matched Reader Caches will eventually be identical of the respective Writer Cache DataReader 1 1 2 1 DataWriter 1 1 3 1 2 1 1 2 Topic DataReader 1 2 2 3 3 1 DataReader Cache 2 2 2 3 3 1 Topic 1 1 DataReader Cache 2 Topic 1 DDS DataWriter Cache 3 1 Topic DataReader Cache
  73. 73. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS & Consistency Model :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The DDS Consistency Model is a property that can be associated to Topics or further refined by Reader/Writers. The property is controlled by the following QoS Policies: ‣ DURABILITY ‣ VOLATILE | TRANSIENT_LOCAL | TRANSIENT | PERSISTENT ‣ LIFESPAN QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N ‣ RELIABILITY LIFESPAN T, DW - Y RELIABILITY T, DR, DW Y N ‣ RELIABLE | BEST_EFFORT DESTINATION ORDER T, DR, DW Y N ‣ DESTINATION ORDER ‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP
  74. 74. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS & Consistency Model :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency VOLATILE RELIABLE SOURCE_TIMESTAMP INF. (No Crash / Recovery) Eventual Consistency TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. (Reader Crash / Recovery) Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. (Crash/Recovery) Eventual Consistency PERSISTENT RELIABLE SOURCE_TIMESTAMP INF. (Crash/Recovery) Weak Consistency ANY ANY DESTINATION_TIMESTAMP ANY Weak Consistency ANY BEST_EFFORT ANY ANY Weak Consistency ANY ANY ANY N
  75. 75. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B P1 m A F J D C P = {D, C, J} P2 K E S = {A} S4

×