> From: [email protected] [mailto:general-
> [email protected]] On Behalf Of Sasha Khapyorsky
> Sent: Monday, December 15, 2008 10:39 AM
> >
> > That's a good question - and I'm going to ask around and double check.
> > My first reaction was that you have to specify how many paths you want
> > from the query - but you're right, the spec doesn't say that.
> 
> Yes, it looks like this (but I cannot understand "why" :( ). But even more
> strange (IMHO) limitation is mandatory SGID - actually it should make
> illegal such GetTable queries as all-to-all, SLID-to-all, etc.. I
> thought that it is permitted.
[Todd Rimmer] It's about scalability.  An all to all query in a fabric would 
return at least N^2 path records, add in an LMC, some varied SLs and PKeys and 
quickly it becomes ludicrously large.  For example at only 25 nodes, with 8 SLs 
and 4 PKeys you could have 20,000 path records returned.  With 1000 nodes and 1 
SL and 1 PKey you have 1,000,000 path records.

The practical use of GetTable(PathRecord) is for a node to find a path to 
another node, hence SGID limitation makes sense.

> 
> > I'm going to do some research on my end. Are you saying that
> > IB_MAD_ATTR_PATH_RECORD should only ever return a single path?
> 
> With GetTable? I think it shouldn't (for some queries it will - such as
> SLID + DLID).
[Todd Rimmer] With GetTable the NumbPath parameter is required and sets a cap 
on the number of returned paths per SGID-DGID combination.  This makes sense 
since most applications are only prepared to use a handful of paths to each 
destination.  Many would only use 2 paths for a failover scheme.  Those which 
only need 1 path can use Get(PathRecord) in which case NumbPath is implied to 
be 1.

For scalability, it's best to avoid queries which don't specify a destination 
(eg. always provide DGID, DLID, etc).  Queries without a destination can still 
be huge and consume a lot of SA and memory resources to process (eg. at 1000 
nodes LMC=2, 8 SLs you get 32000 path records back).  Besides its very rare 
than an application really wants to know the path to EVERY other node.

Todd Rimmer
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to