-
Notifications
You must be signed in to change notification settings - Fork 390
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a per client config tracker in the exporter
Currently, we have a config-tracker inside IFMapClient. Moving this to the exporter in a vector indexed by client-index. If the number of clients exceeds the initial estimate, the vector is resized. We create the config-set when the client is created and delete it when the client is being destroyed. Before we destroy the client, the exporter will clean the client's index from all the 'states' that the client has touched. This is required for cases where a link-delete removes the link from the graph and creates 2 partitions, one reachable via the client's VR and the other not reachable. The link-delete has yet to be seen by the exporter and a client-delete is processed. In this case, client cleanup while deleting the client will not be able to reach the second partition. The graph-walker will not be able to clean up the client's bit in the second partition either when it finally sees the link-delete since the client would be destroyed by the time he runs and the graph-walker needs the clients name to be able to do any walk for him. This config-tracker can also be used in LinkDeleteWalkBatchEnd() in the graph-walker. Today we walk the entire graph to cleanup the client's bit. But, with the per-client-config-tracker, we only need to walk each node in the client's set. In scaled scenarios this can be huge time saver. Closes-Bug: #1472807 Change-Id: I2b3c5c0b4cbad6df81faa4b0ee17d835b2b31faa
- Loading branch information
Showing
9 changed files
with
163 additions
and
110 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.