Skip to content

Prototyping a demonstrator workflow for extended DataDescriptor matching#8561

Merged
ktf merged 2 commits into
AliceO2Group:devfrom
matthiasrichter:dev-datadescriptor
Apr 28, 2022
Merged

Prototyping a demonstrator workflow for extended DataDescriptor matching#8561
ktf merged 2 commits into
AliceO2Group:devfrom
matthiasrichter:dev-datadescriptor

Conversation

@matthiasrichter

Copy link
Copy Markdown
Collaborator

There is a request to support input specs matching all blocks of
a particular origin/description with all but a specific sub spec.
E.g. a processor with input spec {TST/SAMPLE/!0} matching all blocks
of {TST/SAMPLE} with a subspec other than '0', and the output
{TST/SAMPLE/0}.

A custom matcher can be created for this purpose using xor operation
to invert the result of the embedded SubSpecificationTypeValueMatcher.

@matthiasrichter matthiasrichter requested a review from a team as a code owner April 12, 2022 10:47
Comment thread Framework/Core/src/DataSpecUtils.cxx Outdated
Comment on lines 333 to 336

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

@ktf, I guess this was added to allow quick implementation without considering too many corner cases. Maybe we can solve this now. At some point we want to support this anyhow.

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.

yes, exactly. The problem is extracting a ConcreteDataType from anything which is not a query. We basically need to revisit all the places where DataSpecUtils::asConcreteDataType is used and see if we cannot change it to something that matches the whole query. In particular I think the place where we serialise the workflow needs to have a recursive parser / serialiser to serialise and read back the query.

Comment on lines 112 to 113

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Since it's two bool variables which will be logically xor'ed, this corresponds to a negation.

It's a demonstrator and it's working. I will implement the DataDescriptorMatcher::Op::Not alongside Op::Just, this will probably not require the other change above, but the 'Not' operator might have similar implications on the uniqueness of the matcher parameters.

There is a request to support input specs matching all blocks of
a particular origin/description with all but a specific sub spec.
E.g. a processor with input spec {TST/SAMPLE/!0} matching all blocks
of {TST/SAMPLE} with a subspec other than '0', and the output
{TST/SAMPLE/0}.

A custom matcher can be created for this purpose using operation 'not'
to invert the result of the embedded SubSpecificationTypeValueMatcher.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants