[openib-general] SA cache design
Sean Hefty
mshefty at ichips.intel.com
Mon Jan 16 14:30:20 PST 2006
Eitan Zahavi wrote:
> [EZ] Having N^2 messages is not a big problem if they do not all go one
> target...
> CM is distributed and this is good. Only the PathRecord section of the
> connection establishment is going today to one node (SA) and you are
> about to fix it...
I expect that we'll start having issues scaling when the number of nodes starts
to exceed the size of the CM's QP. Your idea below should help.
> During initial connections setup you will not have anything in the SA
> cache and thus the SA will need to answer N^2 PathRecords. Smart
> exponential back-off can resolve that DOS attack on the SA at bring-up.
I'll post the code for the cache once I complete my testing, but it issues a
single query to fill the cache. The SA will only see O(n) requests. The cache
also supports an update delay, or settle time, and minimum update time to
prevent spamming the SA with back to back requests.
> [EZ] We might need a little more in the key for QoS support (to come).
This would need to be exposed through our APIs as well. Alternate paths are
also not yet supported.
> [EZ] I would try and make sure the connections are not done in a manner
> such that all nodes try to establish connections to a single node at the
> same time. This is an application issue but can be easily resolve.
I agree.
> [EZ] I think a centralized CM is a only going to make things worse.
It can reduce the number of messages on the network from O(n^2) to O(n). The
idea is that instead of all nodes sending connection requests to all other
nodes, they send a single connection request -- containing an array of QP
information -- to one node. (The array could be sent over an established
connection, rather than in MADs.) The amount of traffic to that one node should
be only slightly worse than the all to all case.
- Sean
More information about the general
mailing list