stevenzwu commented on code in PR #15528:
URL: https://github.com/apache/iceberg/pull/15528#discussion_r2913350982


##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -2184,6 +2266,157 @@ components:
         destination:
           $ref: '#/components/schemas/TableIdentifier'
 
+    BatchLoadTablesRequest:
+      type: object
+      required:
+        - tables
+      properties:
+        tables:
+          description:
+            "List of tables to load. The `identifier` field for each table 
must be unique
+            across all items in the array"
+          type: array
+          items:
+            $ref: '#/components/schemas/BatchLoadRequestedTable'
+
+    BatchLoadRequestedTable:
+      type: object
+      required:
+        - identifier
+      properties:
+        identifier:
+          $ref: '#/components/schemas/TableIdentifier'
+        if-non-match:
+          type: string
+          description:
+            "ETag value. if it matches the current table ETag, the server can 
skip table metadata in response"
+        requested-snapshots:
+          type: string
+          enum: ["all", "refs"]
+
+    BatchLoadTablesResultItem:
+      description: Result item for a single table in a batch load response
+      type: object
+      required:
+        - identifier
+        - status
+      properties:
+        identifier:
+          $ref: '#/components/schemas/TableIdentifier'
+        status:
+          description:
+            Load table status.
+
+            200 indicates the table was loaded successfully and the `result` 
field is populated.
+            304 indicates the table hasn't changed since the provided ETag, 
and the `result` field is omitted.
+            404 indicates the table identifier does not exist, and the 
`result` field is omitted.
+          type: integer
+          enum: [200, 304, 404]
+        etag:
+          description: Identifies a unique version of the table metadata
+          type: string
+        result:
+          $ref: '#/components/schemas/LoadTableResult'

Review Comment:
   @singhpk234 me and @flyrain chatted a little more this. A catalog server can 
limit the size of the computation it wants to perform for the batch request, 
and move unprocessed items to the unprocessed list in the response payload for 
clients to retry later. That should alleviate the concern on the cost of 
credential vending. Basically, a catalog server has full control on the amount 
of work it chooses to do.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to