Skip to content

rfc20: reserve leading + for instance-local properties - #545

Open
grondo wants to merge 1 commit into
flux-framework:masterfrom
grondo:rfc20-prefix
Open

rfc20: reserve leading + for instance-local properties#545
grondo wants to merge 1 commit into
flux-framework:masterfrom
grondo:rfc20-prefix

Conversation

@grondo

@grondo grondo commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Problem: There is no way to differentiate properties in a resource set that were applied automatically by Flux apart from a property configured manually, so tooling cannot know which properties describe the instance versus the resources. This leads to allocated R objects inheriting properties that may have no meaning in a subinstance.

Reserve a leading + in a property name to mark a property that Flux added automatically rather than one configured manually. The literal property still applies to its execution target ranks, but because it describes the containing instance it is intended for internal use and MAY be omitted from a resource set allocated to a job.

Assisted-by: Claude:Opus-4.8

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

⚠️ linkcheck failed with status code 2

Problem: Flux may add resource properties itself to describe the
instance rather than the hardware, such as a property representing
queue membership. There is no way to tell such a property apart from
one that describes the hardware, so a job's generated R may inherit
instance properties that have no meaning in a child instance.

Define a leading + in a property name to mark an instance-local
property: one that describes the containing instance rather than
an attribute of the hardware. The literal property still applies
to its execution target ranks, but because it describes the instance
it MAY be omitted from a resource set generated for a job or a child
instance.

Assisted-by: Claude:Opus-4.8
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

⚠️ linkcheck failed with status code 2

@grondo grondo changed the title rfc20: reserve leading + for auto-added properties rfc20: reserve leading + for instance-local properties Aug 3, 2026
@grondo

grondo commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Tweaked slightly to allow properties with leading + to indication "instance local" more generally, instead of just auto-added.

Comment thread spec_20.rst
Comment on lines +202 to +203
themselves, an instance-local property MAY be omitted from a resource
set generated for a job or a child instance.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would these properties be stripped from allocated R sets (e.g. what gets stored in the job KVS dir) by the scheduler? Or just stripped by the sub-instance resource module when it builds the inventory?

If the scheduler should strip these, the change currently wouldn't require a fluxion change since R is stored via libschedutil.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking the scheduler would strip them, but intentionally left that unspecified in the spec.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be more clear, by "the scheduler" I did indeed mean the thing generating the resource set for a job, i.e. the R stored in the KVS would have instance-local properties stripped, since they're somewhat meaningless in that context. Whether that is done by the actual scheduler or via something after the fact (libschedutil or the Python equivalent) is probably just an implementation detail and doesn't need to be in the spec (unless you'd prefer that?)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That seems right to me and you're right, libschedutil vs scheduler is implementation detail. I was asking whether the stripping was occuring in the enclosing instance or the sub-instance. I'm hearing enclosing instnace, which i agree with.

It's probably OK IMHO to be firm and use SHALL here as well as call out that the scheduler writes R and is responsible for this.

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

Successfully merging this pull request may close these issues.

2 participants