Weitere ähnliche Inhalte
Ähnlich wie A Gentle Introduction to OpenSplice DDS (20)
Mehr von Angelo Corsaro (20)
Kürzlich hochgeladen (20)
A Gentle Introduction to OpenSplice DDS
- 1. OpenSplice DDS
Delivering Performance, Openness, and Freedom
Angelo Corsaro, Ph.D.
Chief Technology Officer
A Gentle Introduction
OMG DDS SIG Co-Chair
angelo.corsaro@prismtech.com
- 3. Addressing Data Distribution Challenges
DDS is standard designed to address the data-distribution challenges across
The OMG DDS Standard a wide class of Defense and Aerospace Applications
‣ Introduced in 2004 to address the Data
Distribution challenges faced by a wide
class of Defense and Aerospace
Applications
‣ Key requirement for the standard were its
ability to deliver very high performance while
seamlessly scaling from embedded to ultra-
large-scale deployments
‣ Today recommended by key administration
worldwide and widely adopted across
several different application domains, such
as, Automated Trading, Simulations, SCADA,
Telemetry, etc.
© 2009, PrismTech. All Rights Reserved
- 4. The OMG Data Distribution Service (DDS)
DDS v1.2 API Standard
‣ Language Independent, OS and HW architecture Application
independent Object/Relational Mapping
‣ DCPS. Standard API for Data-Centric, Topic- Data Local Reconstruction Layer (DLRL)
Based, Real-Time Publish/Subscribe
Content
‣
Ownership Durability
DLRL. Standard API for creating Object Views out Subscription
of collection of Topics Minimum Profile
Data Centric Publish/Subscribe (DCPS)
DDSI/RTPS v2.1 Wire Protocol Standard
‣ Standard wire protocol allowing interoperability
Real-Time Publish/Subscribe Protocol
DDS Interoperability Wire Protocol
between different implementations of the DDS
standard UDP/IP
‣ Interoperability demonstrated among key DDS
vendors in March 2009
© 2009, PrismTech. All Rights Reserved
- 5. DDS!Recommendations is churning…
The infrastructure evolution cycle
– New -> Emerging -> Standard -> Commodity
Increasingly Mandated/Recommended by Administrations
– Middleware is emerging as OS declines
! …DDS is maturing…
‣ US Navy: Open Architecture
– OMG focus
– Wire spec
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ DISR/DISA: Net-centric Systems
– Tools
– Enterprise integration
– Multiple products fielded
‣ EuroControl:– Deployed applications!
Air Traffic Control Center Operational
Interoperability
! …and adoption is on the rise
– Navy
– DISR
‣ QinetiQ: Recommending DDS for VSI
– FCS/SoSCOE
© 2009, PrismTech. All Rights Reserved
- 7. As Simple as it Gets
‣ DDS is based around the concept
of a fully distributed Global Data
Space (GDS)
Global Data Space
DDS
© 2009, PrismTech. All Rights Reserved
- 8. As Simple as it Gets
‣ DDS is based around the concept
of a fully distributed Global Data
Space (GDS)
‣ Publishers and Subscribers can
join and leave the GDS at any time
Global Data Space
DDS
© 2009, PrismTech. All Rights Reserved
- 9. As Simple as it Gets
‣ DDS is based around the concept
of a fully distributed Global Data
Publisher Subscriber
Space (GDS)
‣ Publishers and Subscribers can
join and leave the GDS at any time
Subscriber
Publisher
Global Data Space
Publisher Subscriber
DDS
© 2009, PrismTech. All Rights Reserved
- 10. As Simple as it Gets
‣ DDS is based around the concept
of a fully distributed Global Data
Publisher Subscriber
Space (GDS)
‣ Publishers and Subscribers can
join and leave the GDS at any time
Subscriber
‣ Publishers and Subscribers Publisher
Global Data Space
express their intent to produce/
consume specific type of data,
e.g., Topics
Publisher Subscriber
DDS
© 2009, PrismTech. All Rights Reserved
- 11. As Simple as it Gets
‣ DDS is based around the concept
of a fully distributed Global Data
Publisher Subscriber
Space (GDS)
‣ Publishers and Subscribers can
join and leave the GDS at any time
Subscriber
‣ Publishers and Subscribers Publisher
Global Data Space
express their intent to produce/
consume specific type of data,
e.g., Topics
Publisher Subscriber
DDS
© 2009, PrismTech. All Rights Reserved
- 12. As Simple as it Gets
‣ DDS is based around the concept
of a fully distributed Global Data
Publisher Subscriber
Space (GDS)
‣ Publishers and Subscribers can
join and leave the GDS at any time
Subscriber
‣ Publishers and Subscribers Publisher Global Data Space
express their intent to produce/
consume specific type of data,
e.g., Topics
Subscriber
‣ Data flows from Publisher to Publisher
Subscribers DDS
© 2009, PrismTech. All Rights Reserved
- 13. As Simple as it Gets
‣ DDS is based around the concept
of a fully distributed Global Data
Publisher Subscriber
Space (GDS)
‣ Publishers and Subscribers can
join and leave the GDS at any time
Subscriber
‣ Publishers and Subscribers Publisher Global Data Space
express their intent to produce/
consume specific type of data,
e.g., Topics
Subscriber
‣ Data flows from Publisher to Publisher
Subscribers DDS
© 2009, PrismTech. All Rights Reserved
- 15. DDS Topics
{Circle, Square, Triangle}
Topic
‣ Unit of information exchanged between
Publisher and Subscribers.
‣ An association between a unique name, a
type and a QoS setting {ShapeType} {...}
Topic Type.
struct ShapeType {
‣ Type describing the data associated with one long x;
or more Topics long y;
‣ A Topic type can have a key represented by an long shapesize;
string color;
arbitrary number of attributes };
‣ Expressed in IDL #pragma keylist ShapeType color
© 2009, PrismTech. All Rights Reserved
- 16. DDS Topics
Circle
struct ShapeType {
long x;
long y;
long shapesize; Topic QoS
string color;
};
#pragma keylist ShapeType color
© 2009, PrismTech. All Rights Reserved
- 17. DDS Topics
Triangle
struct ShapeType {
long x;
long y;
long shapesize; Topic QoS
string color;
};
#pragma keylist ShapeType color
© 2009, PrismTech. All Rights Reserved
- 18. DDS Topic Instances and Samples
Topic Instances
‣ Each key value identifies a unique Topic Instance,
‣ Topic’s instance lifetime can be explicitly
managed in DDS
Topic Samples
‣ The values assumed by a Topic Instance
over time are referred as Instance Sample
struct ShapeType {
long x;
long y;
long shapesize;
string color;
};
#pragma keylist ShapeType color
© 2009, PrismTech. All Rights Reserved
- 20. Content Filtering
X0 X1
X0 <= X <= X1
‣ DDS allows to specify content-
filtered Topics for which a subset
of SQL92 is used to express the
filter condition
Y0
‣ Content filters can be applied on
the entire content of the Topic Type Y0 <= Y <= Y1
‣ Content filters are applied by DDS
Y1
each time a new sample is
produced/delivered
© 2009, PrismTech. All Rights Reserved
- 21. Filtering Market Data
AAPL < $157 | | AAPL > $162 MSFT > $35
Apple
164.0 Microsoft
40
161.5
30
159.0
20
156.5
10
154.0
0
AAPL MSFT
‣ DDS continuous queries can be used for filtering the stream of data produced for a
specific stock symbol.
© 2009, PrismTech. All Rights Reserved
- 22. Local Queries
‣ Subscribed Topics can be seen locally as “Tables”
‣ A subset of SQL92 can be used for performing queries on X0
multiple topics as well as natural joins
‣ Queries are Circle Topic
performed under Y0
color x y shapesize Y0
user control and red 57 62 50
provide a result that blue 90 85 50
Y0 <= Y <= Y1
depends on the yellow 30 25 50
current snapshot of SELECT * FROM ShapeType s
WHERE s.x > 25 AND s.y < 55 Y1
the system, e.g.,
samples currently color x y shapesize
available yellow 30 25 50
© 2009, PrismTech. All Rights Reserved
- 24. DDS Partitions
‣ All DDS communication is Domain
Partition
happens within a Domain
‣ Domain can divided into Publisher
Subscriber
Partitions B
‣ Topics are published and m
subscribed across on or A F
Subscriber
more Partitions Publisher J
D C
K
E
Publisher
Subscriber
© 2009, PrismTech. All Rights Reserved
- 25. OpenSplice Network Partitions
‣ OpenSplice DDS allows to Publisher
Subscriber
define network partitions along "Red"
B
with DDS partitions
m
‣ Network partitions are bound to A F
a list of unicast/multicast Publisher J
"Green" Subscriber
network addresses D C
‣ Partition.Topic combination can K
E
"Yellow"
be mapped into OpenSplice
DDS Network Partitions Publisher
Subscriber
‣ Wildcards can be used when
defining the mapping, and in
Yellow.* => 224.1.1.1 Green.* => 224.1.1.2
case of multiple matches Green.E => 224.1.1.3
OpenSplice DDS will always
consider the best match
© 2009, PrismTech. All Rights Reserved
- 27. Anatomy of a DDS Application
Topic
Topic
Topic
Samples
Samples
Instances Samples
Instances
Instances
121 62
1
21 62
1 22 62
1 22 62
1 23 63
1 23 63
DataReader
DataReader
1 21 62
2 20 61
1 22 62
2 19 60
1 23 63
DataReader
DataReader 2 20 61
2 20 61
2 19 60
2 19 60 DataWriter
DataWriter
DataReader
DataReader 3 25 70 3 25 71
25 3 25 74 3 26 77
3 26 77
DataWriter
DataWriter
3 25 70 3 25 71
25 3 25 74
struct TempSensor { 3 25 70 3 25 71
25 3 25 74 3 26 77
int tID;
float temp;
float humidity;
};
#pragma keylist TempSensor tID
© 2009, PrismTech. All Rights Reserved
- 28. Anatomy of a DDS Application
Topic
Topic
Topic
Samples
Samples
Instances Samples
Instances
Instances
121 62
1
21 62
1 22 62
1 22 62
1 23 63
1 23 63
DataReader
DataReader
1 21 62
2 20 61
1 22 62
2 19 60
1 23 63
DataReader
DataReader 2 20 61
2 20 61
2 19 60
2 19 60 DataWriter
DataWriter
DataReader
DataReader 3 25 70 3 25 71
25 3 25 74 3 26 77
3 26 77
DataWriter
DataWriter
3 25 70 3 25 71
25 3 25 74
struct TempSensor { 3 25 70 3 25 71
25 3 25 74 3 26 77
int tID;
float temp;
Arrows };
float humidity;
show #pragma keylist TempSensor tID
structural
relationship
s, not data- Subscriber Publisher
flows Partition
© 2009, PrismTech. All Rights Reserved
- 29. Anatomy of a DDS Application
Topic
Topic
Topic
Samples
Samples
Instances Samples
Instances
Instances
121 62
1
21 62
1 22 62
1 22 62
1 23 63
1 23 63
DataReader
DataReader
1 21 62
2 20 61
1 22 62
2 19 60
1 23 63
DataReader
DataReader 2 20 61
2 20 61
2 19 60
2 19 60 DataWriter
DataWriter
DataReader
DataReader 3 25 70 3 25 71
25 3 25 74 3 26 77
3 26 77
DataWriter
DataWriter
3 25 70 3 25 71
25 3 25 74
struct TempSensor { 3 25 70 3 25 71
25 3 25 74 3 26 77
int tID;
float temp;
Arrows };
float humidity;
show #pragma keylist TempSensor tID
structural
relationship
s, not data- Subscriber Publisher
flows Partition
Domain Participant
Domain
© 2009, PrismTech. All Rights Reserved
- 30. QoS Model
‣ QoS-Policies are used to control relevant
properties of OpenSplice DDS entities, Type Matching
QoS matching
such as: QoS QoS QoS QoS QoS QoS QoS
‣ Temporal Properties
‣ Priority
Topic
Name
Publisher Subscriber
‣ Durability ... DataWriter writes Type reads DataReader
...
...
‣ Availability DomainParticipant writes Type reads DataReader DomainParticipant
DataWriter
‣ ... Name
‣ Some QoS-Policies are matched based on
Topic
QoS QoS QoS
a Request vs. Offered Model thus QoS-
enforcement
‣ Publications and Subscriptions match only if the declared vs. requested QoS are compatible
‣ e.g., it is not possible to match a publisher which delivers data unreliably with a subscriber which requires reliability
© 2009, PrismTech. All Rights Reserved
- 31. QoS Policies
QoS Policy Applicability RxO Modifiable Type Matching
QoS matching
DURABILITY T, DR, DW Y N Data Availability QoS QoS QoS QoS QoS QoS QoS
DURABILITY SERVICE T, DW N N
Topic
Name
Publisher Subscriber
LIFESPAN T, DW - Y ... DataWriter writes Type reads DataReader
...
T, DR, DW N N ...
HISTORY
DomainParticipant DataWriter writes Type reads DataReader DomainParticipant
PRESENTATION P, S Y N Data Delivery Name
Topic
RELIABILITY T, DR, DW Y N
PARTITION P, S N Y QoS QoS QoS
DESTINATION ORDER T, DR, DW Y N
OWNERSHIP T, DR, DW Y N ‣ Rich set of QoS allow to configure
OWNERSHIP DW - Y
STRENGTH several different aspects of data
DEADLINE T, DR, DW Y Y Data Timeliness availability, delivery and timeliness
LATENCY BUDGET T, DR, DW Y Y
TRANSPORT PRIORITY T, DW - Y
‣ QoS can be used to control and
optimize network as well as
TIME BASED FILTER DR - Y Resources
computing resource
RESOURCE LIMITS T, DR, DW N N
USER_DATA DP, DR, DW N Y Configuration
TOPIC_DATA T N Y
GROUP_DATA P, S N Y
© 2009, PrismTech. All Rights Reserved
- 32. Mapping QoS Which properties does QoS controls?
TimeBasedFilter Deadline
Data
Throughput
Latency
LatencyBudget TransportPriority
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
Control over Latency/Throughput tradeoff
Control over data latency
Control over data priority
© 2009, PrismTech. All Rights Reserved
- 33. Mapping QoS Which properties does QoS controls?
TimeBasedFilter Deadline History
Data Data
Throughput Lifespan Durability
Latency Availability
Ownership
LatencyBudget TransportPriority Ownership
Strength
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
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
© 2009, PrismTech. All Rights Reserved
- 34. Mapping QoS Which properties does QoS controls?
TimeBasedFilter Deadline History
Data Data
Throughput Lifespan Durability
Latency Availability
Ownership
LatencyBudget TransportPriority Ownership
Strength
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
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
OpenSplice DDS provides programmatic
Destination
QoS-driven support for configuring the most
Presentation Data Delivery
Order important properties of data distribution!
Control over data distribution reliability
Control over data ordering
Control over presentation
© 2009, PrismTech. All Rights Reserved
- 35. Reliability
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
‣ 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
© 2009, PrismTech. All Rights Reserved
- 36. Real-Time
The real-time properties with which data is delivered to applications is impacted in DDS by the following
qualities of service:
‣ TRANSPORT_PRIORITY Publisher
Deadline Deadline Deadline Deadline Deadline
Subscriber
‣ 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))
© 2009, PrismTech. All Rights Reserved
- 37. High Availability
‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
StockQuote
symbol: "MSFT"
StockQuote
StockQuote
name: "Microsoft Corp."
StockQuote
symbol: "GOOG"
symbol: "GOOG"
exchange: "NASD""GOOG"
symbol:
name: "Google Inc."
quote: 33.73
name: "Google Inc."
name: "Google Inc."
exchange: "NASD"
exchange: "NASD"
exchange: "NASD"
StockQuote
StockQuote
StockQuote
quote: 663.97
W1
quote: 663.97"AAPL"
symbol: "AAPL"
quote: 663.97
symbol: "AAPL"
symbol:
name: "Apple Inc."
name: "Apple Inc."
name: "Apple Inc."
exchange: "NASD"
exchange: "NASD"
exchange: "NASD"
R1
quote: 165.37
quote: 165.37
quote: 165.37
STRENGTH=3
StockQuote
symbol: "AAPL"
StockQuote Inc."
name: "Apple
symbol: "GOOG""NASD"
exchange:
name: quote: 165.37
"Google Inc."
StockQuote "NASD"
exchange:
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
W1’ R2
STRENGTH=2 StockQuote
symbol: "AAPL"
StockQuote Inc."
name: "Apple
symbol: "GOOG""NASD"
exchange:
name: quote: 165.37
"Google Inc."
StockQuote "NASD"
exchange:
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
W2’’ R3
STRENGTH=1
© 2009, PrismTech. All Rights Reserved
- 38. High Availability
‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
StockQuote
symbol: "MSFT"
StockQuote
StockQuote
name: "Microsoft Corp."
StockQuote
symbol: "GOOG"
symbol: "GOOG"
exchange: "NASD""GOOG"
symbol:
name: "Google Inc."
quote: 33.73
name: "Google Inc."
name: "Google Inc."
exchange: "NASD"
exchange: "NASD"
exchange: "NASD"
quote: 663.97
W1
quote: 663.97
quote: 663.97
StockQuote
symbol: "AAPL"
R1
STRENGTH=3 name: "Apple Inc."
exchange: "NASD"
quote: 165.37
StockQuote
symbol: "GOOG"
name: "Google Inc."
StockQuote "NASD"
exchange:
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
W1’ R2
StockQuote
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
STRENGTH=2
quote: 165.37
StockQuote
symbol: "GOOG"
name: "Google Inc."
StockQuote "NASD"
exchange:
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
W2’’
StockQuote
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
R3
STRENGTH=1
© 2009, PrismTech. All Rights Reserved
- 39. High Availability
‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
W1
StockQuote
symbol: "AAPL"
R1
STRENGTH=3 name: "Apple Inc."
exchange: "NASD"
quote: 165.37
StockQuote
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
StockQuote
W1’ R2
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
StockQuote
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
STRENGTH=2
quote: 165.37
StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD" StockQuote
quote: 33.73 symbol: "GOOG"
R3
name: "Google Inc."
W2’’
exchange: "NASD"StockQuote
quote: 663.97symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
STRENGTH=1
© 2009, PrismTech. All Rights Reserved
- 40. High Availability
‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
StockQuote
R1
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
StockQuote
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
StockQuote
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
StockQuote
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
R2
quote: 165.37
StockQuote
StockQuote
StockQuote StockQuote
symbol: "MSFT"
symbol: "MSFT"
symbol: "MSFT" symbol: "GOOG"
name: "Microsoft Corp."
name: "Microsoft Corp."
name: "Microsoft Corp."
exchange: "NASD"
exchange: "NASD" name: "Google Inc."
exchange: "NASD"
quote: 33.73
quote: 33.73
quote: 33.73 exchange: "NASD"
quote: 663.97
StockQuote
R3
symbol: "AAPL"
W2’’
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
STRENGTH=1
© 2009, PrismTech. All Rights Reserved
- 41. High Availability
‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
StockQuote
R1
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
StockQuote quote: 165.37
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
StockQuote
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
StockQuote
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
StockQuote
R2
symbol: "MSFT"
name: "Microsoft Corp."
StockQuote
exchange: "NASD"
quote: 33.73
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
StockQuote
symbol: "GOOG"
name: "Google Inc."
StockQuote exchange: "NASD"
symbol: "MSFT" quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
StockQuote
R3
symbol: "AAPL"
W2’’
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
STRENGTH=1
© 2009, PrismTech. All Rights Reserved
- 42. Eventual Consistency & R/W Caches
DataReader
DataReader 1 1
2 1 DataWriter
1 1
3 1
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
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
Under an Eventual Consistency Model, DDS guarantees that all matched
Reader Caches will eventually be identical of the respective Writer Cache
© 2009, PrismTech. All Rights Reserved
- 43. QoS Impacting the Consistency Model
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
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
‣ RELIABILITY
‣ RELIABLE | BEST_EFFORT
‣ DESTINATION ORDER
‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP
QoS Policy Applicability RxO Modifiable
DURABILITY T, DR, DW Y N
LIFESPAN T, DW - Y
RELIABILITY T, DR, DW Y N
DESTINATION ORDER T, DR, DW Y N
© 2009, PrismTech. All Rights Reserved
- 44. QoS Impacting the Consistency Model
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
Eventual Consistency VOLATILE RELIABLE SOURCE_TIMESTAMP INF.
(No Crash / Recovery)
Eventual Consistency TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
(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
© 2009, PrismTech. All Rights Reserved
- 45. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
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
© 2009, PrismTech. All Rights Reserved
- 46. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
P = {A, B} B
P1 m
A A F
J
D C
P = {D, C, J}
P2 K
E
S = {A}
S4
© 2009, PrismTech. All Rights Reserved
- 47. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
P = {A, B} B
A
P1 m
A
A F
J
D C
P = {D, C, J}
P2 K
E
S = {A}
S4
© 2009, PrismTech. All Rights Reserved A
- 48. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
P = {A, B} B
A
P1 m
B A
A F
J
D C
P = {D, C, J}
P2 K
E
S = {A}
S4
© 2009, PrismTech. All Rights Reserved A
- 49. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
P = {A, B} B
B
A
P1 m
A
A F
J
D C
P = {D, C, J}
P2 K
E
S = {A}
S4
© 2009, PrismTech. All Rights Reserved A
- 50. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
P = {A, B} B
B
A
P1 m
S= {A, B, J}
A
A F
S2
J
D C
P = {D, C, J}
P2 K
E
S = {A}
S4
© 2009, PrismTech. All Rights Reserved A
- 51. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
P = {A, B} B
B
A
P1 m
S= {A, B, J}
A
A F
S2
J
D C BA
P = {D, C, J}
P2 K
E
S = {A}
S4
© 2009, PrismTech. All Rights Reserved A
- 52. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
B
B
A
m
S= {A, B, J}
A F
S2
J
D C BA
P = {D, C, J}
P2 K
E
S = {A}
S4
© 2009, PrismTech. All Rights Reserved A
- 53. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
B
B
A
m
S= {A, B, J}
A F
S2
J
D C BA
P = {D, C, J} S= {A, B, D, J}
P2 K
E S3
S = {A}
S4
© 2009, PrismTech. All Rights Reserved A
- 54. Eventual Consistency @ Work
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}
Proprietary Information - Distribution without Expressed Written Permission is Prohibited.
S = {A, D}
S1
B
B
A
m
S= {A, B, J}
A F
S2
J
J
D
D C BA
P = {D, C, J} S= {A, B, D, J}
P2 K
E S3
S = {A} JB
S4
© 2009, PrismTech. All Rights Reserved A