Is it intended that CM Notification subscription request cover (all) descendants of the given xpath too?!
e.g.. if a child is removed and there is a subscription for the parent node, will a notification be send (grandchild, child leaf updates etc.) I hope NOT! Consider:
Risk of client effectively subscribing to ALL data in a cm handle by specifying top level datanode(s)
Complexity (i.e. cost of) of merge operation. It might even required NCMP to check relevant dat model
Future use of wildcards, could be a viable alternative for including descendants
2
Could xpath point to an element that does not exist (yet)
if not how, how can I client be informed about a create event?
3
Should NCMP support re-homing, moving of a CM Handle from one DMI to another?
assume only trough delete & create
4
CM Handle Delete: Should DMI or Clients be sent a subscription update (assume no)
do NOT delete dmi-subscription entry until owning subscription is deleted (just ignore upon future delete if cm handle is gone altogether)
5
Validation of xpath
options order of implement and also performance cost!
none
xpath-parser
model check
instance check
6
can DMI plugin 'reject' a subscription create (for a given cm-handle-xpath combination)
As NCMP might not validate as per issue#5 the DMI=plugin or component further down might have to reject an invalid xpath...
yes currently DMI can use response to say which cm handles are not accepted i.e. rejected' (but not 'pending')
7
implementation question: should 'rejected' DMI-subscriptions be stored
I would think not
8
Dimensioning of DB depends on #cm handles, #subscriptions and #xpaths per subscription, this could be too big for fast processing of updates!
Need to agree maximum and possibly realistic average/total number of entries based on the characteristics above The team is blocked until this becomes clear as it wil affect the way the data needs to be modelled exactly
9
Maximum (error) message size,
theoretically all cm handles and all xpaths combinations could be rejected or pending leading to a very large error message!
10
can each CM-Handled have different set of xpaths(s) per subscription
teh 'basic' solution only supports a common set of daatstore/xpaths (filter)
...
draw.io Diagram
border
true
diagramName
DMI v Client Subscriptions
simpleViewer
false
width
links
auto
tbstyle
top
lbox
true
diagramWidth
521
revision
3
Create Combinations
#
Existing Subscription A-10
Client Create Subscription B-52 Request
DMI Create Request
Data Model Before (2nd) Create
Data Model After Create
1
CH-1, [ /p/c1, /p/c2 ]
CH-1, [ /p/c1 ]
None
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribersubscribers
A
10
CH-1
/p/c1
[ A-10 ]
CH-1
/p/c2
[ A-10 ]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribersubscribers
A
10
CH-1
/p/c1
[ A-10, B-35 ]
B
3552
CH-1
/p/c2
[ A-10 ]
2
CH-1, [ /p/c1, p/c2 ]
CH-1, [ /p/c2, /p/c3 ]
CH-1, [ /p/c3 ]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
ownerssubscribers
A
10
CH-1
/p/c1
[ A-10 ]
CH-1
/p/c2
[ A-10 ]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
ownerssubscribers
A
10
CH-1
/p/c1
[ A-10 ]
B
3552
CH-1
/p/c2
[ A-10, B-35 ]
CH-1
/p/c3
[ B-35 ]
3
CH-1, [ /p/c1] CH-2, [ /p/c1]
CH-2, [ /p/c1] CH-3, [ /p/c1]
CH-3, [ /p/c1]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
ownerssubscribers
A
10
CH-1
/p/c1
[ A-10 ]
B
35
CH-2
/p/c1
[ A-10 , B-35 ]
CH-3
/p/c1
[ B-35 ]
4
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
A
10
CH-1
, [
/p/c1
[ A-10 ]
B
52
CH-
1, [
2
/p/c1
[ A-10, B-35 ]
CH-3
/p/c1
[ B-35 ]
4
CH-/gc1 ]CH-1, [ /p/c1]
CH-1, [ /p/c1/gc1 ]
CH-1, [ /p/c1/gc1 ] (see issue #1)
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
ownerssubscribers
A
10
CH-1
/p/c1
[ A-10 ]
B
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
A
10
35
CH-1
/p/c1
[ A-10 ]
B
52
CH-1
/p/c1/gc1
[ B-35 ]
Gliffy Diagram
macroId
5140c401-0d13-44d2-8e83-0f485d3ef9d3
name
Subscription Merge Example
pagePin
1
Delete Combinations
#
NCMP Existing A-10
NCMP Existing B-52
Client Delete A-10 Request
DMI Delete Request
Data Model Before Before
Data Model After Delete
1
CH-1, [ /p/c1, p/c2 ]
CH-1, [ /p/c1 ]
CH-1, [ /p/c1, p/c2 ]
CH-1, [ p/c2 ]
2
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
A
10
CH-1
, [
/p/c1
]
CH
[ A-
2, [ /p/c1]CH-2, [ /p/c1] CH-3, [ /p/c1]
10, B-52 ]
B
52
CH-1
, [
/p/
c1]
c2
CH-2, [ /p/c1]
CH-1, [ /p/c1]
3
CH-1, [ /p/c1]
CH-1, [ /p/c1] CH-2, [ /p/c1]
CH-1, [ /p/c1]
None
[ A-10 ]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
A
10
CH-1
/p/c1
[ A-10 ]
CH-1
/p/c2
[ A-10 ]
2
CH-1, [ /p/c1] CH-2, [ /p/c1]
CH-2, [ /p/c1] CH-3, [ /p/c1]
CH-1, [ /p/c1] CH-2, [ /p/c1]
CH-1, [ /p/c1]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
A
10
CH-1
/p/c1
[ A-10 ]
B
52
CH-2
/p/c1
[ A-10, B-52]
CH-3
/p/c1
[ B-52 ]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
B
52
CH-2
/p/c1
[ B-52 ]
CH-3
/p/c1
[ B-52 ]
3
CH-1, [ /p/c1]
CH-1, [ /p/c1] CH-2, [ /p/c1]
CH-1, [ /p/c1]
None
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
A
10
CH-1
/p/c1
[ A-10 ]
B
52
CH-1
/p/c2
[ A-10, B-52 ]
Expand
title
Data Model...
Client Subscription
DMI Subscription
name
client-id
cm-handle
xpath
subscribers
B
52
CH-2
/p/c1
[ B-52 ]
Error-Upon-Error Combinations
...
Performance considerations
Below options (partly) explored dring CPS teem meeting could explore further once we know the characteristics, see issue #8 !
DMI record could reach in millions of instances
In memory solution (ie hazelcast) can handle 10s - 100s of Megabytes (add some sample calc)
still need persistence if we don't have enough intsances
use many small messages reduce need for amalgamation