[openib-general] SA cache design

Sean Hefty mshefty at ichips.intel.com
Mon Jan 16 12:27:45 PST 2006


Eitan Zahavi wrote:
> [EZ] The scalability issues we see today are what I most worry about.

I think that we have a couple scalability issues at the core of this problem.  I 
think that a cache can solve part of the problem, but to fully address the 
issues, we eventually may need to extend our APIs and underlying protocols.

One issue that I see is that the CMA, IB CM, and DAPL APIs support only 
point-to-point connections.  Trying to layer a many-to-many connection model 
over these is leading to the inefficiencies.  For example, the CMA generates one 
SA query per connection.  Another issue is that even if if the number of queries 
were reduced, the fabric will still see O(n^2) connection messages.

Based on the code, the only SA query of interest to most users will be a path 
record query by gids/pkey.  To speed up applications written to the current CMA, 
DAPL, and Intel's MPI (hey, I gotta eat), my actual implementation has a very 
limited path record cache in the kernel.  The cache uses an index with O(1) 
insertion, removal, and retrieval.  (I plan on re-using the index to help 
improve the performance of the IB CM as well.)

I'm still working on ideas to address the many-to-many connection model.  One 
idea is to have a centralized connection manager to coordinate the connections 
between the various endpoints.  The drawback is that this requires defining a 
proprietary protocol.  Any implementation work in this area will be deferred for 
now though.

- Sean



More information about the general mailing list