Different number of subgraphs call for same query

Hi Team,

I am using a single query for multiple users and depending on the users it is calling different number of subgraph calls.

Sample query

query getAssetByPath1 {
  resolveUserHome {
    ...repoMetadata
    ... on DirectoryImpl {
      assetByRelativePath(relativePath: "/cloud-content") {
        ...perUserMetadata
        ... on DirectoryImpl {
          list1: childrenConnection(
            first: 50
            orderBy: [{field: MODIFY_DATE, direction: DESCENDING}]
            filter: {dc_format: null}
          ) {
            edges {
              node {
                ...perUserMetadata
                __typename
              }
              __typename
            }
            pageInfo {
              endCursor
              hasNextPage
              __typename
            }
            __typename
          }
          __typename
        }
        __typename
      }
      __typename
    }
    __typename
  }
}

For e.g.
User1 ( only have asset with path /cloud-content and no children of /cloud-content)

  • 1 SUBGRAPH1 (Let’s say Asset Subgraph) call.

  • 1 SUBGRAPH2 (Let’s say Label Subgraph) call

    • this call uses response from 1st call made to Asset Subgraph.

User2 ( Have asset with path /cloud-content and have multiple children of /cloud-content):

  • 1 SUBGRAPH1 (i.e. Asset Subgraph) call.

  • 2 SUBGRAPH2 (i.e. Label Subgraph) concurrent call.

    • one for parent path /cloud-content.
    • second for children of /cloud-content.
    • Both calls uses response from 1st call made to Asset Subgraph.

Can you please help in understand for User 2.

if Label Subgraph calls are concurrent and both calls uses response from Asset Subgraph response, then why there are two concurrent calls? why it can’t be batched together to avoid 1 extra fanout?

@Dan_Boerner @jonathanrainer - Can you or someone from apollo team please help with this query?

You bet. Give a bit …

Hi @Ajay_Berwal and @Ruchi_Bansal
I checked with our engineers and they said they’d need you to share a query plan to be sure, but that they suspected that the parent and children sit at different levels of the query plan and are treated as distinct despite wanting some of the same data. If those requests are requesting data to be merged at different query paths, this would lead to those results.

Hope that helps!

Hi @Dan_Boerner
Here is the query plan

{
  "usage_reporting": {
    "statsReportKey": "# getAssetByPath1\nfragment labelsOnly on Asset{labels{lastAccessDate}}fragment ultraMinimal on Asset{repo_assetId}query getAssetByPath1{resolveUserHome{...ultraMinimal...on DirectoryImpl{assetByRelativePath(relativePath:\"\"){...labelsOnly...ultraMinimal...on DirectoryImpl{childrenConnection(first:0){edges{node{...labelsOnly...ultraMinimal}}}}}}}}",
    "referencedFieldsByType": {
      "DirectoryImpl": {
        "fieldNames": [
          "assetByRelativePath",
          "childrenConnection"
        ],
        "isInterface": false
      },
      "Query": {
        "fieldNames": [
          "resolveUserHome"
        ],
        "isInterface": false
      },
      "Labels": {
        "fieldNames": [
          "lastAccessDate"
        ],
        "isInterface": false
      },
      "AssetChildEdge": {
        "fieldNames": [
          "node"
        ],
        "isInterface": false
      },
      "AssetChildConnection": {
        "fieldNames": [
          "edges"
        ],
        "isInterface": false
      },
      "Asset": {
        "fieldNames": [
          "labels",
          "repo_assetId"
        ],
        "isInterface": true
      }
    }
  },
  "root": {
    "kind": "Sequence",
    "nodes": [
      {
        "kind": "Fetch",
        "serviceName": "Asset",
        "variableUsages": [],
        "operation": "query getAssetByPath1__Asset__0 { resolveUserHome { __typename repo_assetId ..._generated_onDirectoryImpl1_0 } } fragment _generated_onAssignmentImpl2_0 on AssignmentImpl { __typename repo_assetId } fragment _generated_onClassroomImpl2_0 on ClassroomImpl { __typename repo_assetId } fragment _generated_onCompositeImpl2_0 on CompositeImpl { __typename repo_assetId } fragment _generated_onDirectoryImpl2_0 on DirectoryImpl { __typename repo_assetId } fragment _generated_onFileImpl2_0 on FileImpl { __typename repo_assetId } fragment _generated_onLibraryImpl2_0 on LibraryImpl { __typename repo_assetId } fragment _generated_onProjectImpl2_0 on ProjectImpl { __typename repo_assetId } fragment _generated_onDirectoryImpl3_0 on DirectoryImpl { __typename repo_assetId list1: childrenConnection(first: 2) { edges { node { __typename repo_assetId ..._generated_onAssignmentImpl2_0 ..._generated_onClassroomImpl2_0 ..._generated_onCompositeImpl2_0 ..._generated_onDirectoryImpl2_0 ..._generated_onFileImpl2_0 ..._generated_onLibraryImpl2_0 ..._generated_onProjectImpl2_0 } } } } fragment _generated_onDirectoryImpl1_0 on DirectoryImpl { assetByRelativePath(relativePath: \"/cloud-content\") { __typename repo_assetId ..._generated_onAssignmentImpl2_0 ..._generated_onClassroomImpl2_0 ..._generated_onCompositeImpl2_0 ..._generated_onDirectoryImpl3_0 ..._generated_onFileImpl2_0 ..._generated_onLibraryImpl2_0 ..._generated_onProjectImpl2_0 } }",
        "operationName": "getAssetByPath1__Asset__0",
        "operationKind": "query",
        "id": null,
        "inputRewrites": null,
        "outputRewrites": null,
        "contextRewrites": null,
        "schemaAwareHash": "b2e620df5ff5c8fb416b3b604d08b1330344b6be77141a9f680c5445638929be",
        "authorization": {
          "is_authenticated": false,
          "scopes": [],
          "policies": []
        }
      },
      {
        "kind": "Parallel",
        "nodes": [
          {
            "kind": "Flatten",
            "path": [
              "resolveUserHome",
              "assetByRelativePath",
              "list1",
              "edges",
              "@",
              "node"
            ],
            "node": {
              "kind": "Fetch",
              "serviceName": "Label",
              "requires": [
                {
                  "kind": "InlineFragment",
                  "typeCondition": "AssignmentImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "ClassroomImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "CompositeImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "DirectoryImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "FileImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "LibraryImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "ProjectImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                }
              ],
              "variableUsages": [],
              "operation": "query getAssetByPath1__Label__1($representations: [_Any!]!) { _entities(representations: $representations) { ..._generated_onAssignmentImpl1_0 ..._generated_onClassroomImpl1_0 ..._generated_onCompositeImpl1_0 ..._generated_onDirectoryImpl1_0 ..._generated_onFileImpl1_0 ..._generated_onLibraryImpl1_0 ..._generated_onProjectImpl1_0 } } fragment _generated_onAssignmentImpl1_0 on AssignmentImpl { labels { lastAccessDate } } fragment _generated_onClassroomImpl1_0 on ClassroomImpl { labels { lastAccessDate } } fragment _generated_onCompositeImpl1_0 on CompositeImpl { labels { lastAccessDate } } fragment _generated_onDirectoryImpl1_0 on DirectoryImpl { labels { lastAccessDate } } fragment _generated_onFileImpl1_0 on FileImpl { labels { lastAccessDate } } fragment _generated_onLibraryImpl1_0 on LibraryImpl { labels { lastAccessDate } } fragment _generated_onProjectImpl1_0 on ProjectImpl { labels { lastAccessDate } }",
              "operationName": "getAssetByPath1__Label__1",
              "operationKind": "query",
              "id": null,
              "inputRewrites": null,
              "outputRewrites": null,
              "contextRewrites": null,
              "schemaAwareHash": "d2e7b79d84a9bf561bbba476be90ddc136be1ea96778fd0fa1fba56adf2e7b75",
              "authorization": {
                "is_authenticated": false,
                "scopes": [],
                "policies": []
              }
            }
          },
          {
            "kind": "Flatten",
            "path": [
              "resolveUserHome",
              "assetByRelativePath"
            ],
            "node": {
              "kind": "Fetch",
              "serviceName": "Label",
              "requires": [
                {
                  "kind": "InlineFragment",
                  "typeCondition": "AssignmentImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "ClassroomImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "CompositeImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "DirectoryImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "FileImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "LibraryImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                },
                {
                  "kind": "InlineFragment",
                  "typeCondition": "ProjectImpl",
                  "selections": [
                    {
                      "kind": "Field",
                      "name": "__typename"
                    },
                    {
                      "kind": "Field",
                      "name": "repo_assetId"
                    }
                  ]
                }
              ],
              "variableUsages": [],
              "operation": "query getAssetByPath1__Label__2($representations: [_Any!]!) { _entities(representations: $representations) { ..._generated_onAssignmentImpl1_0 ..._generated_onClassroomImpl1_0 ..._generated_onCompositeImpl1_0 ..._generated_onDirectoryImpl1_0 ..._generated_onFileImpl1_0 ..._generated_onLibraryImpl1_0 ..._generated_onProjectImpl1_0 } } fragment _generated_onAssignmentImpl1_0 on AssignmentImpl { labels { lastAccessDate } } fragment _generated_onClassroomImpl1_0 on ClassroomImpl { labels { lastAccessDate } } fragment _generated_onCompositeImpl1_0 on CompositeImpl { labels { lastAccessDate } } fragment _generated_onDirectoryImpl1_0 on DirectoryImpl { labels { lastAccessDate } } fragment _generated_onFileImpl1_0 on FileImpl { labels { lastAccessDate } } fragment _generated_onLibraryImpl1_0 on LibraryImpl { labels { lastAccessDate } } fragment _generated_onProjectImpl1_0 on ProjectImpl { labels { lastAccessDate } }",
              "operationName": "getAssetByPath1__Label__2",
              "operationKind": "query",
              "id": null,
              "inputRewrites": null,
              "outputRewrites": null,
              "contextRewrites": null,
              "schemaAwareHash": "e7e3ff6294fd6336226d8f821afb2b71d99ee11cbb7ce53f1e1a0c76599d336c",
              "authorization": {
                "is_authenticated": false,
                "scopes": [],
                "policies": []
              }
            }
          }
        ]
      }
    ]
  },

  "formatted_query_plan": "QueryPlan {\n  Sequence {\n    Fetch(service: \"Asset\") {\n      {\n        resolveUserHome {\n          __typename\n          repo_assetId\n          ..._generated_onDirectoryImpl1_0\n        }\n      }\n\n      fragment _generated_onAssignmentImpl2_0 on AssignmentImpl {\n        __typename\n        repo_assetId\n      }\n\n      fragment _generated_onClassroomImpl2_0 on ClassroomImpl {\n        __typename\n        repo_assetId\n      }\n\n      fragment _generated_onCompositeImpl2_0 on CompositeImpl {\n        __typename\n        repo_assetId\n      }\n\n      fragment _generated_onDirectoryImpl2_0 on DirectoryImpl {\n        __typename\n        repo_assetId\n      }\n\n      fragment _generated_onFileImpl2_0 on FileImpl {\n        __typename\n        repo_assetId\n      }\n\n      fragment _generated_onLibraryImpl2_0 on LibraryImpl {\n        __typename\n        repo_assetId\n      }\n\n      fragment _generated_onProjectImpl2_0 on ProjectImpl {\n        __typename\n        repo_assetId\n      }\n\n      fragment _generated_onDirectoryImpl3_0 on DirectoryImpl {\n        __typename\n        repo_assetId\n        list1: childrenConnection(first: 2) {\n          edges {\n            node {\n              __typename\n              repo_assetId\n              ..._generated_onAssignmentImpl2_0\n              ..._generated_onClassroomImpl2_0\n              ..._generated_onCompositeImpl2_0\n              ..._generated_onDirectoryImpl2_0\n              ..._generated_onFileImpl2_0\n              ..._generated_onLibraryImpl2_0\n              ..._generated_onProjectImpl2_0\n            }\n          }\n        }\n      }\n\n      fragment _generated_onDirectoryImpl1_0 on DirectoryImpl {\n        assetByRelativePath(relativePath: \"/cloud-content\") {\n          __typename\n          repo_assetId\n          ..._generated_onAssignmentImpl2_0\n          ..._generated_onClassroomImpl2_0\n          ..._generated_onCompositeImpl2_0\n          ..._generated_onDirectoryImpl3_0\n          ..._generated_onFileImpl2_0\n          ..._generated_onLibraryImpl2_0\n          ..._generated_onProjectImpl2_0\n        }\n      }\n    },\n    Parallel {\n      Flatten(path: \"resolveUserHome.assetByRelativePath.list1.edges.@.node\") {\n        Fetch(service: \"Label\") {\n          {\n            ... on AssignmentImpl {\n              __typename\n              repo_assetId\n            }\n            ... on ClassroomImpl {\n              __typename\n              repo_assetId\n            }\n            ... on CompositeImpl {\n              __typename\n              repo_assetId\n            }\n            ... on DirectoryImpl {\n              __typename\n              repo_assetId\n            }\n            ... on FileImpl {\n              __typename\n              repo_assetId\n            }\n            ... on LibraryImpl {\n              __typename\n              repo_assetId\n            }\n            ... on ProjectImpl {\n              __typename\n              repo_assetId\n            }\n          } =>\n          {\n            ..._generated_onAssignmentImpl1_0\n            ..._generated_onClassroomImpl1_0\n            ..._generated_onCompositeImpl1_0\n            ..._generated_onDirectoryImpl1_0\n            ..._generated_onFileImpl1_0\n            ..._generated_onLibraryImpl1_0\n            ..._generated_onProjectImpl1_0\n          }\n\n          fragment _generated_onAssignmentImpl1_0 on AssignmentImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onClassroomImpl1_0 on ClassroomImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onCompositeImpl1_0 on CompositeImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onDirectoryImpl1_0 on DirectoryImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onFileImpl1_0 on FileImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onLibraryImpl1_0 on LibraryImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onProjectImpl1_0 on ProjectImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n        },\n      },\n      Flatten(path: \"resolveUserHome.assetByRelativePath\") {\n        Fetch(service: \"Label\") {\n          {\n            ... on AssignmentImpl {\n              __typename\n              repo_assetId\n            }\n            ... on ClassroomImpl {\n              __typename\n              repo_assetId\n            }\n            ... on CompositeImpl {\n              __typename\n              repo_assetId\n            }\n            ... on DirectoryImpl {\n              __typename\n              repo_assetId\n            }\n            ... on FileImpl {\n              __typename\n              repo_assetId\n            }\n            ... on LibraryImpl {\n              __typename\n              repo_assetId\n            }\n            ... on ProjectImpl {\n              __typename\n              repo_assetId\n            }\n          } =>\n          {\n            ..._generated_onAssignmentImpl1_0\n            ..._generated_onClassroomImpl1_0\n            ..._generated_onCompositeImpl1_0\n            ..._generated_onDirectoryImpl1_0\n            ..._generated_onFileImpl1_0\n            ..._generated_onLibraryImpl1_0\n            ..._generated_onProjectImpl1_0\n          }\n\n          fragment _generated_onAssignmentImpl1_0 on AssignmentImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onClassroomImpl1_0 on ClassroomImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onCompositeImpl1_0 on CompositeImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onDirectoryImpl1_0 on DirectoryImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onFileImpl1_0 on FileImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onLibraryImpl1_0 on LibraryImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n\n          fragment _generated_onProjectImpl1_0 on ProjectImpl {\n            labels {\n              lastAccessDate\n            }\n          }\n        },\n      },\n    },\n  },\n}",
  "query": {
    "string": "fragment ultraMinimal on Asset {\n\trepo_assetId\n}\n\nfragment labelsOnly on Asset {\n\tlabels {\n\t\tlastAccessDate\n\t}\n}\n\nquery getAssetByPath1 {\n\tresolveUserHome {\n\t\t...ultraMinimal\n\t\t... on DirectoryImpl {\n\t\t\tassetByRelativePath(relativePath: \"/cloud-content\") {\n\t\t\t\t...ultraMinimal\n\t\t\t\t...labelsOnly\n\t\t\t\t... on DirectoryImpl {\n\t\t\t\t\tlist1: childrenConnection(first: 2) {\n\t\t\t\t\t\tedges {\n\t\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\t\t...ultraMinimal\n\t\t\t\t\t\t\t\t...labelsOnly\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}",
    "fragments": {
      "map": {
        "labelsOnly": {
          "type_condition": "Asset",
          "selection_set": [
            {
              "Field": {
                "name": "labels",
                
                "selection_set": [
                  {
                    "Field": {
                      "name": "lastAccessDate",
                      
                      "selection_set": null,
                      "field_type": {
                        "Named": "DateTime"
                      },
                      "include_skip": {
                        "include": "Yes",
                        "skip": "No"
                      }
                    }
                  }
                ],
                "field_type": {
                  "Named": "Labels"
                },
                "include_skip": {
                  "include": "Yes",
                  "skip": "No"
                }
              }
            }
          ]
        },
        "ultraMinimal": {
          "type_condition": "Asset",
          "selection_set": [
            {
              "Field": {
                "name": "repo_assetId",
                
                "selection_set": null,
                "field_type": {
                  "NonNullNamed": "ID"
                },
                "include_skip": {
                  "include": "Yes",
                  "skip": "No"
                }
              }
            }
          ]
        }
      }
    },
    "operation": {
      "name": "getAssetByPath1",
      "kind": "query",
      "type_name": "Query",
      "selection_set": [
        {
          "Field": {
            "name": "resolveUserHome",
            
            "selection_set": [
              {
                "FragmentSpread": {
                  "name": "ultraMinimal",
                  "known_type": "Asset",
                  "include_skip": {
                    "include": "Yes",
                    "skip": "No"
                  },
                  "defer": "No",
                  "defer_label": null
                }
              },
              {
                "InlineFragment": {
                  "type_condition": "DirectoryImpl",
                  "include_skip": {
                    "include": "Yes",
                    "skip": "No"
                  },
                  "defer": "No",
                  "defer_label": null,
                  "known_type": "DirectoryImpl",
                  "selection_set": [
                    {
                      "Field": {
                        "name": "assetByRelativePath",
                        
                        "selection_set": [
                          {
                            "FragmentSpread": {
                              "name": "ultraMinimal",
                              "known_type": "Asset",
                              "include_skip": {
                                "include": "Yes",
                                "skip": "No"
                              },
                              "defer": "No",
                              "defer_label": null
                            }
                          },
                          {
                            "FragmentSpread": {
                              "name": "labelsOnly",
                              "known_type": "Asset",
                              "include_skip": {
                                "include": "Yes",
                                "skip": "No"
                              },
                              "defer": "No",
                              "defer_label": null
                            }
                          },
                          {
                            "InlineFragment": {
                              "type_condition": "DirectoryImpl",
                              "include_skip": {
                                "include": "Yes",
                                "skip": "No"
                              },
                              "defer": "No",
                              "defer_label": null,
                              "known_type": "DirectoryImpl",
                              "selection_set": [
                                {
                                  "Field": {
                                    "name": "childrenConnection",
                                    
                                    "selection_set": [
                                      {
                                        "Field": {
                                          "name": "edges",
                                          
                                          "selection_set": [
                                            {
                                              "Field": {
                                                "name": "node",
                                                
                                                "selection_set": [
                                                  {
                                                    "FragmentSpread": {
                                                      "name": "ultraMinimal",
                                                      "known_type": "Asset",
                                                      "include_skip": {
                                                        "include": "Yes",
                                                        "skip": "No"
                                                      },
                                                      "defer": "No",
                                                      "defer_label": null
                                                    }
                                                  },
                                                  {
                                                    "FragmentSpread": {
                                                      "name": "labelsOnly",
                                                      "known_type": "Asset",
                                                      "include_skip": {
                                                        "include": "Yes",
                                                        "skip": "No"
                                                      },
                                                      "defer": "No",
                                                      "defer_label": null
                                                    }
                                                  }
                                                ],
                                                "field_type": {
                                                  "NonNullNamed": "Asset"
                                                },
                                                "include_skip": {
                                                  "include": "Yes",
                                                  "skip": "No"
                                                }
                                              }
                                            }
                                          ],
                                          "field_type": {
                                            "NonNullList": {
                                              "NonNullNamed": "AssetChildEdge"
                                            }
                                          },
                                          "include_skip": {
                                            "include": "Yes",
                                            "skip": "No"
                                          }
                                        }
                                      }
                                    ],
                                    "field_type": {
                                      "Named": "AssetChildConnection"
                                    },
                                    "include_skip": {
                                      "include": "Yes",
                                      "skip": "No"
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        ],
                        "field_type": {
                          "Named": "Asset"
                        },
                        "include_skip": {
                          "include": "Yes",
                          "skip": "No"
                        }
                      }
                    }
                  ]
                }
              }
            ],
            "field_type": {
              "Named": "Asset"
            },
            "include_skip": {
              "include": "Yes",
              "skip": "No"
            }
          }
        }
      ],
      "variables": {}
    },
    "subselections": {},
    "unauthorized": {
      "paths": [],
      "errors": {
        "log": true,
        "response": "errors"
      }
    },
    "filtered_query": {
      "string": "query getAssetByPath1 {\n  resolveUserHome {\n    ...ultraMinimal\n    ... on DirectoryImpl {\n      assetByRelativePath(relativePath: \"/cloud-content\") {\n        ...ultraMinimal\n        ...labelsOnly\n        ... on DirectoryImpl {\n          list1: childrenConnection(first: 2) {\n            edges {\n              node {\n                ...ultraMinimal\n                ...labelsOnly\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\nfragment labelsOnly on Asset {\n  labels {\n    lastAccessDate\n  }\n}\n\nfragment ultraMinimal on Asset {\n  repo_assetId\n}\n",
      "fragments": {
        "map": {
          "labelsOnly": {
            "type_condition": "Asset",
            "selection_set": [
              {
                "Field": {
                  "name": "labels",
                  
                  "selection_set": [
                    {
                      "Field": {
                        "name": "lastAccessDate",
                        
                        "selection_set": null,
                        "field_type": {
                          "Named": "DateTime"
                        },
                        "include_skip": {
                          "include": "Yes",
                          "skip": "No"
                        }
                      }
                    }
                  ],
                  "field_type": {
                    "Named": "Labels"
                  },
                  "include_skip": {
                    "include": "Yes",
                    "skip": "No"
                  }
                }
              }
            ]
          },
          "ultraMinimal": {
            "type_condition": "Asset",
            "selection_set": [
              {
                "Field": {
                  "name": "repo_assetId",
                  
                  "selection_set": null,
                  "field_type": {
                    "NonNullNamed": "ID"
                  },
                  "include_skip": {
                    "include": "Yes",
                    "skip": "No"
                  }
                }
              }
            ]
          }
        }
      },
      "operation": {
        "name": "getAssetByPath1",
        "kind": "query",
        "type_name": "Query",
        "selection_set": [
          {
            "Field": {
              "name": "resolveUserHome",
              
              "selection_set": [
                {
                  "FragmentSpread": {
                    "name": "ultraMinimal",
                    "known_type": "Asset",
                    "include_skip": {
                      "include": "Yes",
                      "skip": "No"
                    },
                    "defer": "No",
                    "defer_label": null
                  }
                },
                {
                  "InlineFragment": {
                    "type_condition": "DirectoryImpl",
                    "include_skip": {
                      "include": "Yes",
                      "skip": "No"
                    },
                    "defer": "No",
                    "defer_label": null,
                    "known_type": "DirectoryImpl",
                    "selection_set": [
                      {
                        "Field": {
                          "name": "assetByRelativePath",
                          
                          "selection_set": [
                            {
                              "FragmentSpread": {
                                "name": "ultraMinimal",
                                "known_type": "Asset",
                                "include_skip": {
                                  "include": "Yes",
                                  "skip": "No"
                                },
                                "defer": "No",
                                "defer_label": null
                              }
                            },
                            {
                              "FragmentSpread": {
                                "name": "labelsOnly",
                                "known_type": "Asset",
                                "include_skip": {
                                  "include": "Yes",
                                  "skip": "No"
                                },
                                "defer": "No",
                                "defer_label": null
                              }
                            },
                            {
                              "InlineFragment": {
                                "type_condition": "DirectoryImpl",
                                "include_skip": {
                                  "include": "Yes",
                                  "skip": "No"
                                },
                                "defer": "No",
                                "defer_label": null,
                                "known_type": "DirectoryImpl",
                                "selection_set": [
                                  {
                                    "Field": {
                                      "name": "childrenConnection",
                                      
                                      "selection_set": [
                                        {
                                          "Field": {
                                            "name": "edges",
                                            
                                            "selection_set": [
                                              {
                                                "Field": {
                                                  "name": "node",
                                                  
                                                  "selection_set": [
                                                    {
                                                      "FragmentSpread": {
                                                        "name": "ultraMinimal",
                                                        "known_type": "Asset",
                                                        "include_skip": {
                                                          "include": "Yes",
                                                          "skip": "No"
                                                        },
                                                        "defer": "No",
                                                        "defer_label": null
                                                      }
                                                    },
                                                    {
                                                      "FragmentSpread": {
                                                        "name": "labelsOnly",
                                                        "known_type": "Asset",
                                                        "include_skip": {
                                                          "include": "Yes",
                                                          "skip": "No"
                                                        },
                                                        "defer": "No",
                                                        "defer_label": null
                                                      }
                                                    }
                                                  ],
                                                  "field_type": {
                                                    "NonNullNamed": "Asset"
                                                  },
                                                  "include_skip": {
                                                    "include": "Yes",
                                                    "skip": "No"
                                                  }
                                                }
                                              }
                                            ],
                                            "field_type": {
                                              "NonNullList": {
                                                "NonNullNamed": "AssetChildEdge"
                                              }
                                            },
                                            "include_skip": {
                                              "include": "Yes",
                                              "skip": "No"
                                            }
                                          }
                                        }
                                      ],
                                      "field_type": {
                                        "Named": "AssetChildConnection"
                                      },
                                      "include_skip": {
                                        "include": "Yes",
                                        "skip": "No"
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          ],
                          "field_type": {
                            "Named": "Asset"
                          },
                          "include_skip": {
                            "include": "Yes",
                            "skip": "No"
                          }
                        }
                      }
                    ]
                  }
                }
              ],
              "field_type": {
                "Named": "Asset"
              },
              "include_skip": {
                "include": "Yes",
                "skip": "No"
              }
            }
          }
        ],
        "variables": {}
      },
      "subselections": {},
      "unauthorized": {
        "paths": [],
        "errors": {
          "log": true,
          "response": "errors"
        }
      },
      "filtered_query": null,
      "defer_stats": {
        "has_defer": false,
        "has_unconditional_defer": false,
        "conditional_defer_variable_names": []
      },
      "is_original": false,
      "schema_aware_hash": "f6985d6fc7cee272eea9b8e1ec758653ebd4cab97c5894b50fc968c9bd166e8a"
    },
    "defer_stats": {
      "has_defer": false,
      "has_unconditional_defer": false,
      "conditional_defer_variable_names": []
    },
    "is_original": true,
    "schema_aware_hash": "a6bcee8e820d644d42fb496dc0076b9f9b8c279e6e9a402c72c09bef78281281"
  },
  "query_metrics": {
    "depth": 7,
    "height": 12,
    "root_fields": 1,
    
  },
  "estimated_size": 18291
}

The QUERY

fragment ultraMinimal on Asset {
	repo_assetId
}

fragment labelsOnly on Asset {
	labels {
		lastAccessDate
	}
}

query getAssetByPath1 {
	resolveUserHome {
		...ultraMinimal
		... on DirectoryImpl {
			assetByRelativePath(relativePath: "/cloud-content") {
				...ultraMinimal
				...labelsOnly
				... on DirectoryImpl {
					list1: childrenConnection(first: 2) {
						edges {
							node {
								...ultraMinimal
								...labelsOnly
							}
						}
					}
				}
			}
		}
	}
}

I can see below concurrent label calls to subGraph.

  • 1 Asset call - fetches parent and children list

  • 2 Label calls in parallel:

  • Children labels: resolveUserHome.assetByRelativePath.list1.edges.@.node

  • Parent labels: resolveUserHome.assetByRelativePath

So question is why there are two concurrent calls for children and parent, why It can’t be single call? as there is no dependency of these concurrent calls on one another?

@Dan_Boerner Can you please help in this?