[CONTROLLER-874] Clustering: Improve CDS serialization performance Created: 21/Sep/14  Updated: 10/Oct/14  Resolved: 10/Oct/14

Status: Resolved
Project: controller
Component/s: mdsal
Affects Version/s: Helium
Fix Version/s: None

Type: Bug
Reporter: Tom Pantelis Assignee: Tom Pantelis
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Blocks
blocks CONTROLLER-839 Clustering : Snapshotting uses up too... Resolved
External issue ID: 2003

 Description   

Patch https://git.opendaylight.org/gerrit/#/c/11136/ made some significant performance enhancements in the NormalizedNodeToNodeCodec deserialization code but there's improvements we can make in the NormalizedNodeToNodeCodec serialization code as well.

In NormalizedNodeToNodeCodec#encode, significant time is spent
serializing the YangInstanceIdentifier path via PathUtils even though it
isn't actually needed - the decode method doesn't decode it.

This might have been used by WriteModification and MergeModification
originally however they currently serialized/deserialize their
YangInstanceIdentifier path separately from the NormalizedNode via
InstanceIdentifierUtils. It turns out this takes significant time as
well as it's implemented similarly as PathUtils. We should serialized/deserialize the YangInstanceIdentifier path along with the NormalizedNode to take advantage of the improved PathArgumentSerializer and the NormalizedNodeSerializer's special QName encoding.

In looking at the NormalizedNodeToNodeCodec, there's other performance tweaks we can make.



 Comments   
Comment by Tom Pantelis [ 21/Sep/14 ]

Submitted patch https://git.opendaylight.org/gerrit/#/c/11411/.

Generated at Wed Feb 07 19:54:06 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.