Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Excerpt


#ParameterExpectationNotes
1Request Frequency
Upgrade to NEW moduleSetTags
3 upgrades  / second → 180 upgrades / minute

The assumption is there are 100 modules in each moduleSet and a moduleSet is available from a dmi plugin within 0.5 seconds. 
Also assume there is a 90% overlap in modules across all CM Handles.
Across 20,000 Nodes there are 10 different ModuleSetTags

2Request Frequency
Upgrade to already existing moduleSetTags
6 upgrades  / second → 360 upgrades / minute
3Test Environment


Expand
  1. CPS and NCMP

requests:
    cpu: 2000m
    memory: 2Gi
limits:
    memory: 3Gi
    cpu: 3000m

2. Postgres

requests:
    cpu: 4000m
    memory: 1Gi
 limits:
    memory: 3Gi
    cpu: 6000m



4Concurrent request12 clients requests toward 1 NCMP simultaneously
5Number of CM Handles in one request

Performance is posted here :  Performance test for updating YANG schema set API

Out-of-scope

  • Upgrade of models for cached data. "ncmp-datastore:operational" is out-of-scope.  

...

Use-Case Overview (Sync in watchDog)



OperationTag
Provided
Tag
Cached
Tag
In DB
(other cm handle)
Steps
1CreateNoN/AN/A
  1. get modules (delta) from Node (DMI)
  2. create schema
set
  1. set 
  2. create anchor
2CreateYesNoNo
  1. get modules (delta) from Node (DMI)
  2. create schema set
  3. create anchor
cache tag details
3CreateYesNoYes
  1. get modules from DB (other cm handle) No delta
  2. create schema set (blank map for new resources)
  3. create anchor
cache tag details
4CreateYesYesN/A
CreateYesYesN/A
  1. get modules from Cache 
  2. create schema set ( blank map)
  3. create anchor
  4. cache tag details
5UpgradeNoN/AN/A
UpgradeYesNoNo
  1. get modules from Node (DMI)
  2. update schema set 
6UpgradeYesNoNo
  1. get modules from Node (DMI)
  2. update schema set 
7UpgradeYesNoYes
  1. get modules from DB (other cm handle)
  2. update schema set (blank map)
8UpgradeYesYesN/A
UpgradeYesYesN/A
  1. get modules from Cache 
  2. update schema set (blank map)
  3. cache tag details

Note. Error handling like invalid IDs are handled during the Synchronous part of registration and not part of this use-case overviewof this use-case overview. 
Upgrade to the same Tag should be captured in synchronous pre-processing.

re-usable methods

  1. Gget modules (delta) from Node (DMI)
  2. Create schemaset. Combination of exiting Refs and new yang resources
    New yang resources empty for known module sets (known tag)
  3. Create anchor
  4. Update schemaset. Combination of exiting Refs and new yang resources
    New yang resources empty for known module sets (known tag)

Changes agreed between Daniel Hanrahan , Sourabh Sourabh and Toine Siebelink 


ChangeNotes
1No need for ModuleSetTagCachereduce complexity, no significant impact on performance
Can be re-introduced in a better way later if needed but not expected
2Use same method for New and Known Schema Sets (module set tags)
  • NEW SchemaSet → 0 or More NEW YangResources, 1 OR more ModuleReferences
  • KNOWN SchemaSet → 0 NEW YangResources, 1 OR more ModuleReferences


Code Block
languagejava
titlePseudo Code
linenumberstrue
void processCreate() {
   if (tagProvided && tag in DB) {
          allModuleRefences = referencesFromDb
          newYangResources = []
       else {
          delta = getModulesDelta()
          newYangResources = delta.newYangResources 
          allModuleRefences = delta.allModuleRefences 
    }
    creatSchemaSet(newYangResources,  allModuleRefences)
    createAnchor()
}       
     
void processUpgrade() {
    if (tagProvided && tag in DB) {
          allModuleRefences = referencesFromDb
          newYangResources = []
       else {
          delta = getModulesDelta()
          newYangResources = delta.newYangResources 
          allModuleRefences = delta.allModuleRefences 
    }
    udpateSchemaSet(newYangResources,  allModuleRefences)
}





Proposed JIRAs

System Jiraset tag

Component DescriptionJIRAEstimates
1CPS CoreExpose a java interface to update schema set

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1800

5 Days
2NCMPUpdate existing REST endpoint add operation to upgrade YANG schema set using moduleSetTag

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1798

15 Days
3NCMPUpgrade inventory YANG model to store moduleSetTag

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1804

5 Days
4NCMPUse moduleSetTagCache to be cleared or updates as algorithm wil re-use existing schema set name

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1821

5 Days
5NCMPUpdate cmhandle state (lock) during YANG model upgrade

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1801

5 Days
6NCMPModify existing inventory operations using moduleSetTag as optional attribute

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1803

15 Days
7NCMPIdentify and test error scenarios 

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1802

5 Days
8NCMPCSIT test and demo 

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1806

5 Days
9NCMPTest and document performance of updating YANG schema set API.

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1805

10 Days

10NCMPHandle yangTextSchemaSourceSetCache for module set tag
Jira Legacy
server

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-1995

5 Days

11NCMPSchema object cache not distributed
Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-
1995
2000
5 Days



1211NCMPSchema object cache not distributedImprove unit test and dmi plugin csit stub

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-

2000

2006


1213NCMPImprove unit test and dmi plugin csit stub/DMIAdd moduleSetTag to the request towards dmi plugin if moduleSetTag is set for the cmHandle

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-20062030


Planning:

  • Allow for 2 more user stories each may take 1 week. 
  • Estimated date of completion is   based on 1 person working. There is a possibility that 1 more person will join in between for implementation but there is no clear visibility on when the person can start contributing as of now. 
  • These are estimates and should not be interpreted as commitments. 

...