I just tested with the MDS patches, and 30M sync transfer size, and it looks ok. So, we can remove this from the patch.
Good timing! Alex On 05/21/2014 12:38 AM, A V Mahesh wrote: > HI Alex, > > I appreciate your contribution in CPSV , thanks for your patch , I > will take some time reviewing/testing > the complete patch (database a C++ STL map for fast access ) ,for now > my initial comment is : > > On 5/21/2014 2:57 AM, Alex Jones wrote: >> make MAX_SYNC_TRANSFER_SIZE much smaller: 3M instead of 30M. > > Considering the below fragmentation changes (changesets 5279- 5282) , > I hope it is not required to change form 30MB to 3MB > so can you please re-test ckpt API functions return with > SA_AIS_ERR_TIMEOUT case and let me know the result. > > ====================================================================================== > > > changeset: 5282:0a995a368ec3 > user: Hans Feldt <hans.fe...@ericsson.com> > date: Mon May 19 21:00:03 2014 +0200 > summary: mds: adjust some constants [#654] > > changeset: 5281:ad842ed4d464 > summary: mds: use TIPC segmentation/reassembly [#654] > > changeset: 5280:4d0da0f9e7cf > summary: mds: support variable size fragmentation limit [#654] > > changeset: 5279:2a60ec043b3d > summary: mds: use TIPC defined max msg size for rec buffer [#654] > ====================================================================================== > > > > -AVM > > > On 5/21/2014 2:57 AM, Alex Jones wrote: >> Summary: cpnd: increase performance when creating large numbers of >> sections [#770] >> Review request for Trac Ticket(s): 770 >> Peer Reviewer(s): AVM >> Pull request to: AVM >> Affected branch(es): default >> Development branch: >> >> -------------------------------- >> Impacted area Impact y/n >> -------------------------------- >> Docs n >> Build system n >> RPM/packaging n >> Configuration files n >> Startup scripts n >> SAF services y >> OpenSAF services n >> Core libraries n >> Samples n >> Tests n >> Other n >> >> >> Comments (indicate scope for each "y" above): >> --------------------------------------------- >> Please ignore the previous "fat-finger" submission. >> >> changeset 6f9c8080657af783462c52d81137e41038aee6a6 >> Author: Alex Jones <ajo...@genband.com> >> Date: Tue, 20 May 2014 17:03:25 -0400 >> >> cpnd: increase performance when creating large numbers of >> sections [#770] >> >> Jan 7 21:32:32.772347 <1789648919> ERR |MDTM: Frag recd is not >> next frag >> so dropping adest=<0x010010023922604c> Jan 7 21:32:32.772399 >> <1789648919> >> ERR |MDTM: Message is dropped as msg is out of seq TRANSPOR- >> ID=<0x010010023922604c> With large numbers of sections (>5k) on >> the standby >> the CPU is pegged and all ckpt API functions return with >> SA_AIS_ERR_TIMEOUT, >> including ActiveReplicaSet, and CheckpointClose! >> >> The section id database is implemented as a linked list. Each >> write to a >> section must traverse the list in order to find the section. With >> 1000's of >> sections this takes a looong time. Also, sync data being sent >> over is too >> large for one packet (30M). This causes the transport layer (in >> this case >> TIPC), to drop packets. Lastly, the SectionCreate message is not >> asynchronous when ACTIVE_REPLICA is specified. >> >> Solution is in 3 parts: (1) make the section id database a C++ >> STL map for >> fast access. (2) make MAX_SYNC_TRANSFER_SIZE much smaller: 3M >> instead of >> 30M. (3) SectionCreate message should be asynchronous when >> ACTIVE_REPLICA is >> specified. >> >> >> Added Files: >> ------------ >> osaf/services/saf/cpsv/cpnd/cpnd_sec.cc >> >> >> Complete diffstat: >> ------------------ >> osaf/libs/common/cpsv/include/cpnd_cb.h | 6 +- >> osaf/libs/common/cpsv/include/cpnd_init.h | 14 +- >> osaf/libs/common/cpsv/include/cpsv_evt.h | 2 +- >> osaf/services/saf/cpsv/cpnd/Makefile.am | 3 +- >> osaf/services/saf/cpsv/cpnd/cpnd_db.c | 246 +---------------- >> osaf/services/saf/cpsv/cpnd/cpnd_evt.c | 115 ++++--- >> osaf/services/saf/cpsv/cpnd/cpnd_proc.c | 26 +- >> osaf/services/saf/cpsv/cpnd/cpnd_res.c | 15 +- >> osaf/services/saf/cpsv/cpnd/cpnd_sec.cc | 424 >> ++++++++++++++++++++++++++++++ >> 9 files changed, 531 insertions(+), 320 deletions(-) >> >> >> Testing Commands: >> ----------------- >> (1) Create a 6-node setup >> (2) Open 5 checkpoints (40k sections for each checkpoint, each >> section 1k) for >> writing, 1 on each active node >> (3) On the standby node, open these 5 for reading >> (4) Continuously write the active checkpoints as fast as possible. >> >> >> Testing, Expected Results: >> -------------------------- >> The standby opening all 5 checkpoints should be able to keep up with >> all the >> writes (200k sections). No dropped packets, no timeouts. >> >> >> Conditions of Submission: >> ------------------------- >> >> >> >> Arch Built Started Linux distro >> ------------------------------------------- >> mips n n >> mips64 n n >> x86 n n >> x86_64 y y >> powerpc n n >> powerpc64 n n >> >> >> Reviewer Checklist: >> ------------------- >> [Submitters: make sure that your review doesn't trigger any checkmarks!] >> >> >> Your checkin has not passed review because (see checked entries): >> >> ___ Your RR template is generally incomplete; it has too many blank >> entries >> that need proper data filled in. >> >> ___ You have failed to nominate the proper persons for review and push. >> >> ___ Your patches do not have proper short+long header >> >> ___ You have grammar/spelling in your header that is unacceptable. >> >> ___ You have exceeded a sensible line length in your >> headers/comments/text. >> >> ___ You have failed to put in a proper Trac Ticket # into your commits. >> >> ___ You have incorrectly put/left internal data in your comments/files >> (i.e. internal bug tracking tool IDs, product names etc) >> >> ___ You have not given any evidence of testing beyond basic build tests. >> Demonstrate some level of runtime or other sanity testing. >> >> ___ You have ^M present in some of your files. These have to be removed. >> >> ___ You have needlessly changed whitespace or added whitespace crimes >> like trailing spaces, or spaces before tabs. >> >> ___ You have mixed real technical changes with whitespace and other >> cosmetic code cleanup changes. These have to be separate commits. >> >> ___ You need to refactor your submission into logical chunks; there is >> too much content into a single commit. >> >> ___ You have extraneous garbage in your review (merge commits etc) >> >> ___ You have giant attachments which should never have been sent; >> Instead you should place your content in a public tree to be >> pulled. >> >> ___ You have too many commits attached to an e-mail; resend as threaded >> commits, or place in a public tree for a pull. >> >> ___ You have resent this content multiple times without a clear >> indication >> of what has changed between each re-send. >> >> ___ You have failed to adequately and individually address all of the >> comments and change requests that were proposed in the initial >> review. >> >> ___ You have a misconfigured ~/.hgrc file (i.e. username, email etc) >> >> ___ Your computer have a badly configured date and time; confusing the >> the threaded patch review. >> >> ___ Your changes affect IPC mechanism, and you don't present any results >> for in-service upgradability test. >> >> ___ Your changes affect user manual and documentation, your patch series >> do not contain the patch that updates the Doxygen manual. >> > ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel