At the time of writing, #686 introduces the first usage of the "RSS", which makes requests to sled agent to create datasets/services.
Aside from the datasets necessary for initializing Nexus (that is, Nexus itself and CRDB), these service requests should be handled by Nexus "as much as possible" instead of the RSS.
Many operations can trigger a need to request these services partitions:
- Initializing a new sled
- Adjusting service location to maintain availability while turning down an old sled
- Adjusting capacity to serve request load
- Etc
All these conditions are ongoing, and best handled by Nexus, which maintains a "global" view of the rack and exists beyond initialization.
Fortunately, the APIs defined by the Sled Agent should (more-or-less) remain the same - this issue just addresses the matter of "who calls them".
At the time of writing, #686 introduces the first usage of the "RSS", which makes requests to sled agent to create datasets/services.
Aside from the datasets necessary for initializing Nexus (that is, Nexus itself and CRDB), these service requests should be handled by Nexus "as much as possible" instead of the RSS.
Many operations can trigger a need to request these services partitions:
All these conditions are ongoing, and best handled by Nexus, which maintains a "global" view of the rack and exists beyond initialization.
Fortunately, the APIs defined by the Sled Agent should (more-or-less) remain the same - this issue just addresses the matter of "who calls them".