Improve parallelism between bgp/xmpp state machine and io tasks

Bug #1566149 reported by Nischal Sheth
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
Trunk
Fix Committed
Wishlist
Nischal Sheth

Bug Description

Current implementation has a couple of limitations:

1. All xmpp::StateMachine and io::Reader tasks for xmpp use instance 0.
This means that only a single xmpp::StateMachine task can run at a time
and no io::Reader task for xmpp can run in parallel with it.

2. Blanket exclusion between bgp/xmpp::StateMachine and io::Reader tasks.
This means that, even if 1 above is fixed, an xmpp:StateMachine task and
an io::Reader task for different xmpp sessions cannot run in parallel.
Same applies to bgp::StateMachine and io::Reader tasks for different bgp sessions.

Nischal Sheth (nsheth)
description: updated
description: updated
Nischal Sheth (nsheth)
description: updated
Nischal Sheth (nsheth)
description: updated
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/19168
Submitter: Nischal Sheth (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/19168
Committed: http://github.org/Juniper/contrail-controller/commit/42551a2e6124f112d941f9f18e90f8cf67054392
Submitter: Zuul
Branch: master

commit 42551a2e6124f112d941f9f18e90f8cf67054392
Author: Nischal Sheth <email address hidden>
Date: Mon Mar 28 10:48:30 2016 -0700

Improve parallelism between bgp/xmpp state machine and io tasks

Highlights:

- Set task_instance for xmpp::StateMachine based on remote ip address
- Set task_instance for xmpp io::Reader to be same as xmpp::StateMachine
- Remove blanket exclusion between io::Reader and xmpp::StateMachine
- Make io::Reader and xmpp::StateMachine exclusive for same task_instance
- Remove blanket exclusion between io::Reader and bgp::StateMachine
- Make io::Reader and bgp::StateMachine exclusive for same task_instance
- Limit max task_instance for above tasks to scheduler's thread count
- Add concurrency annotations to PeerRibMembershipManager
- Fix concurrency issues in PeerRibMembershipManager
- Fix concurrency issues in BgpXmppChannelManager

Change-Id: I96ff21fe7da06cd37a057d53712f85511dd8ff2a
Closes-Bug: 1566149

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.