RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 459152 - [RFE] add asynchronous version of mcast_joined to CPG
Summary: [RFE] add asynchronous version of mcast_joined to CPG
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: corosync
Version: 6.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: beta
: ---
Assignee: Angus Salkeld
QA Contact: Cluster QE
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-08-14 18:44 UTC by Alan Conway
Modified: 2016-04-26 15:02 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-02-15 16:58:54 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
modified cpg.c to make mcast asynchrnous. (18.84 KB, text/x-csrc)
2008-08-14 18:44 UTC, Alan Conway
no flags Details

Description Alan Conway 2008-08-14 18:44:33 UTC
Created attachment 314341 [details]
modified cpg.c to make mcast asynchrnous.

Description of problem:

cpg_mcast_joined is a synchronous call, i.e. the caller has to wait for the IPC round-trip to the aisexec daemon before proceeding. An asynchronous call from the client library would give much better throughput. This is to support the MRG project in order to use CPG as its replication protocol. Further work needed to determine the extent of the benefit, but inital experiment below showed a threefold speedup.

I hacked lib/cpg.c (attached) to ignore the response in mcast_joined and
instead retrieve and discard them in the dispatch poll. This almost
triples throughput of the cpgbench test on my laptop.

I'm not proposing this hack as an implementation, it was just to get an
idea of possible performance impact. At least the following things are
wrong with it:
 - async_mcast should be a new API, existing sync mcast should remain.
 - wrong locking around response_fd
 - polling 2 fd's in dispatch so cpg_fd_get() is no longer sufficient. 
 - cpgbench goes into flow control quickly (not surprising) but then
never gets out, I think I missed something about resetting flow control.

A neater solution might be to drop the responses at the daemon for
successful mcasts and send an error response to the dispatch_fd for
failed mcasts so there's only 1 fd that needs to be polled. Flow control changes as a result of async mcasts would also need to be sent to dispatch_fd.

Version-Release number of selected component (if applicable):

openais-0.80.3-17.fc9.i386

Steps to Reproduce:

Run cpgbench against normal AIS and with the attached changes to see the throughput difference. I saw almost a factor of 3 improvement.


Additional info:

Comment 1 Christine Caulfield 2009-01-19 15:39:32 UTC
Forward to Steve as he is working on the new IPC layer that is needed to support this.

Comment 2 Steven Dake 2009-03-18 21:36:50 UTC
reassigning to rhel6 since that is the new upstream version for corosync.  If you would like this in a rhel5 release please open a separate bz.

thanks

Comment 3 RHEL Program Management 2009-06-15 20:56:57 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 6 Alan Conway 2010-01-13 15:31:55 UTC
It would mean a performance improvement for MRG but it's not a critical requirement in the short term.

Comment 8 Steven Dake 2010-03-01 09:13:02 UTC
Honza asked to implement this feature.

reassigned.

Comment 10 RHEL Program Management 2010-03-01 09:22:29 UTC
Development Management has reviewed and declined this request.  You may appeal
this decision by reopening this request.


Note You need to log in before you can comment on or make changes to this bug.