[Xorp-cvs] XORP cvs commit: xorp/libxipc

Atanu Ghosh atanu at icir.org
Sun Nov 2 10:35:58 PST 2008


CVSROOT:	/usr/local/www/data/cvs
Module name:	xorp
Changes by:	atanu at chum.icir.org	2008-11-02 18:35:58 UTC

XORP CVS repository


Modified files:
	libxipc       xrl.cc xrl.hh xrl_router.cc xrl_router.hh 

Log message:
	A problem was introduced in the performance enhancements:
	http://bugzilla.xorp.org/bugzilla/show_bug.cgi?id=808
	
	A pointer was held in an Xrl to a FinderDBEntry the entry contains the
	resolved Xrl. The FinderDBEntry is held in a map so it is not valid to
	hold a pointer to it, as any changes to the map could cause the
	invalidate the pointer. Another problem was that if the target of the
	Xrl died then the cached FinderDBEntry would not be uncached.
	
	A solution to the problem may be to hold the FinderDBEntry as a
	pointer in the map so that updates would not move the pointer. Another
	solution is to hold a pointer to the resolved Xrl in the unresolved
	Xrl and not have the intermediate FinderDBEntry. The FinderDBEntry
	holds a list of resolved Xrls, it is not clear why it is a list and
	not a single entry as they all resolve the same target, unless it is a
	list to hold multiple request responses, in which case the list
	shouldn't be exposed outside the FinderClient.
	
	The code has been reverted to not caching the FinderDBEntry but the
	XrlPFSender is now being cached in the Xrl and resolved is now a bool
	not a FinderDBEntry. There will be a slight drop in performance doing
	the FinderDBEntry each time but this is not the correct pointer to
	hold. The FinderClient needs to be reworked to return an Xrl pointer
	that can be safely stored.
	
	Bugzilla URL:   http://bugzilla.xorp.org/bugzilla/show_bug.cgi?id=800

Revision  Changes                                 Path
1.31      +5 -3;  commitid: 1210c490df30d41a7;    xorp/libxipc/xrl.cc
1.33      +14 -10;  commitid: 1210c490df30d41a7;  xorp/libxipc/xrl.hh
1.70      +33 -16;  commitid: 1210c490df30d41a7;  xorp/libxipc/xrl_router.cc
1.49      +2 -2;  commitid: 1210c490df30d41a7;    xorp/libxipc/xrl_router.hh



More information about the Xorp-cvs mailing list