-
Notifications
You must be signed in to change notification settings - Fork 304
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
HPCC-26634 Check query status only on QueriesOnly roxies #18073
Conversation
https://track.hpccsystems.com/browse/HPCC-26634 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wangkx a couple comments. Basically I wonder if you want the targets that "canPublishQueries" instead of the ones that "onlyPublishQuries".
Cloud only supports one or the other now, but like bare-metal in may support both in the future.
Perhaps see clusterInfo.canPublishQueries() to understand what I mean.
esp/smc/SMCLib/TpContainer.cpp
Outdated
@@ -689,6 +689,17 @@ extern TPWRAPPER_API void initContainerRoxieTargets(MapStringToMyClass<ISmartSoc | |||
} | |||
} | |||
|
|||
extern TPWRAPPER_API void queryQueriesOnlyRoxieTargetNames(StringArray& names) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would probably name this "get" rather than "query" since you are building a list.
But I wonder whether you really want "QueriesOnlyRoxie". Current cloud makes it seem like there are only 2 types but remember in bare-metal there are three types, and it may become like that again in cloud some day.
enum RoxieTargetType
{
RTTUnknown = 0,
RTTPublished = 1,
RTTQueued = 2,
RTTBoth = 3
};
I think RTTPublished means the same as "QueriesOnly" and "RTTQueued" is like "roxie-workunit.
But RTTBoth can also have queries on it.
What it boils down to for cloud is just the function name, but for bare-metal we should probably support RTTBoth and RTTPublished.
This might be too long but the idea would be a function name like "getRoxieTargetsSupportingPublishedQueries()".
{ | ||
IConstWUClusterInfo& clusterInfo = clusters.item(i); | ||
if (clusterInfo.getPlatform() == RoxieCluster) | ||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If as mentioned above you change the name to something like "getRoxieTargetsSupportingPublishedQueries()" you may want to check clusterInfo.canPublishQueries() before adding to list?
For containerized, the existing WUListQueries tries to check suspended queries for all roxies. The existing WUListQueries returns a query not found error if there is a non-queries roxie. For bare metal, the existing WUListQueries tries to get suspended queries for every target which contains a RoxieCluster process. The same error occurs for the targets which cannot publish queries. The WUListQueries should not check suspended queries for the roxies which cannot publish queries. Signed-off-by: wangkx <[email protected]>
@afishbeck I made the changes based on your comments. Please review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wangkx looks good.
@ghalliday this PR is ready to be merged. |
For containerized, the existing WUListQueries tries to check suspended queries for both queriesOnly roxie and non-queriesOnly roxie. the existing WUListQueries returns a query not found error if there is a non-queriesOnly roxie. For bare metal, the existing WUListQueries tries to get suspended queries for every target which contains a RoxieCluster process. The same error occurs for the target which has both RoxieCluster process and ThorCluster process (ex. thor_roxie). The WUListQueries should not check suspended queries for the non-queriesOnly roxie and the target which has both RoxieCluster process and ThorCluster process.
Type of change:
Checklist:
Smoketest:
Testing: