Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Are FetchProperties values better suited as D-Bus properties than return values in a method? #2148

Closed
jbaublitz opened this issue Jul 27, 2020 · 1 comment
Assignees

Comments

@jbaublitz
Copy link
Member

During discussions around stratisd cockpit integration, the question has come up around whether the values returned over the FetchProperties interface are better suited as strict D-Bus properties here. There seems to be a way to preserve our format of application-level error reporting that does not break GetManagedObjects if stratisd fails to retrieve a property. It would simply return the failure status and an error message without causing the whole call to fail. Currently, @mulkieran and I agree that these volatile properties that can fail are better suited to their own interface regardless of whether they stay return values or change to properties. However, our concern around leaving them as return values is primarily because of the work on #2146. It appears that if we leave them as return values, we will force consumers of the API to receive a signal to get some of the properties, and then after, call into the FetchProperties interface to get the rest of the values. This seems like it could cause problems for consumers and might go against the expectation for InterfacesAdded signal contents as outlined in the D-Bus specification. @mulkieran has brought up some very reasonable concerns around the fact that these values will be constantly changing while actively writing to a Stratis filesystem and so it may not be helpful if we're constantly sending notifications about the property changing when this is happening so rapidly and often for potentially longer periods of time.

The main considerations can be summarized as follows:

  • Would making these values D-Bus properties work better for the emitted signal on object creation?
  • Would we cause performance problems constantly sending out signals for rapidly changing numerical properties?
  • If we add a large number of properties to our FetchProperties interface, would we cause performance problems on GetManagedObjects calls?
@jbaublitz jbaublitz self-assigned this Jul 27, 2020
@jbaublitz jbaublitz added this to To do in 2020July via automation Jul 27, 2020
@mulkieran mulkieran removed this from To do in 2020July Aug 9, 2020
@mulkieran mulkieran added this to To do in 2020August via automation Aug 9, 2020
@mulkieran mulkieran removed this from To do in 2020August Aug 27, 2020
@mulkieran mulkieran added this to To do in 2020September via automation Aug 27, 2020
@mulkieran mulkieran removed this from To do in 2020September Oct 1, 2020
@mulkieran mulkieran added this to To do in 2020October via automation Oct 1, 2020
@mulkieran mulkieran removed this from To do in 2020October Oct 20, 2020
@mulkieran mulkieran added this to To do in 2020December via automation Oct 20, 2020
@mulkieran mulkieran removed this from To do in 2020December Jan 4, 2021
@mulkieran
Copy link
Member

We committed to this, closing in favor of #2817

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants