[OPNFLWPLUG-224] Migrate to next MD-SAL dataStore API Created: 31/Jul/14  Updated: 27/Sep/21  Resolved: 12/Aug/14

Status: Resolved
Project: OpenFlowPlugin
Component/s: General
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Michal Rehak Assignee: Martin Bobak
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC


Issue Links:
Blocks
blocks OPNFLWPLUG-84 Milestone: Performance improvements Resolved
External issue ID: 1458
Priority: Highest

 Description   

DataStore API is used in test-provider and drop-test.
We need to migrate affected code to new API and check occurrences in other parts of OFPlugin as well.

Howto is in mailing list controller-dev, 30.06.2014, from Tony, subject: Deprecation of MD-SAL..



 Comments   
Comment by Michal Rehak [ 31/Jul/14 ]

https://git.opendaylight.org/gerrit/9527
https://git.opendaylight.org/gerrit/9528
https://git.opendaylight.org/gerrit/9532/

Comment by Michal Rehak [ 31/Jul/14 ]

merged

Comment by Robert Varga [ 02/Aug/14 ]

Testing shows the following exceptions:

2014-08-02 18:08:20.583 CEST [pool-8-thread-1] WARN o.o.c.m.s.d.s.i.InMemoryDOMDataStore - Store Tx: DOM-CFG-185 Data Precondition failed for (urn:opendaylight:inventory?revision=2013-08-19)nodes.
org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node does not exist. Could not modify its children.
at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.checkDoesNotExists(NormalizedNodeContainerModificationStrategy.java:176) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.checkSubtreeModificationApplicable(NormalizedNodeContainerModificationStrategy.java:169) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:131) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.checkChildPreconditions(NormalizedNodeContainerModificationStrategy.java:187) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.checkSubtreeModificationApplicable(NormalizedNodeContainerModificationStrategy.java:171) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:131) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:28) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTree.validate(InMemoryDataTree.java:89) ~[bundlefile:na]
at org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore$ThreePhaseCommitImpl$1.call(InMemoryDOMDataStore.java:315) [bundlefile:na]
at org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore$ThreePhaseCommitImpl$1.call(InMemoryDOMDataStore.java:311) [bundlefile:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_65]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_65]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]

After applying bandaid (https://git.opendaylight.org/gerrit/9610), the throughput is abysmal. Needs to be investigated.

Comment by Tony Tkacik [ 05/Aug/14 ]

I would suggest following:

issue write for /nodes/node/table/0 with ensure parents when node first appeared (this should be probably done by inventory manager upon learning existence of tables) so clients
could still write flows without ensure parents.

Comment by Martin Bobak [ 07/Aug/14 ]

Error ModifiedNodeDoesNotExistException doesn't seem to be related to migration to new MD-SAL API. Nevertheless some changes were made while investigating this issue.

One of them is migration of inventory-manager to new MD-SAL API which is in commit : https://git.opendaylight.org/gerrit/#/c/9747/.

Another one is implementation of Tony's suggestion on issuing write on /nodes/node/table/0 which is in this commit https://git.opendaylight.org/gerrit/#/c/9771/.

Next investigation related to ModifiedNodeDoesNotExistException will be made under bug : OPNFLWPLUG-228 - Continuous ERROR logs in (https://bugs.opendaylight.org/show_bug.cgi?id=1490)

Generated at Wed Feb 07 20:31:53 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.