Project

General

Profile

Actions

Feature #13688

open

[API] optional asynchronous flag for create/update operations

Added by Tom Clegg over 6 years ago. Updated 8 months ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
-
Target version:
Story points:
-
Release:
Release relationship:
Auto

Description

Background: Some APIs (e.g., "create group") are slow because they recompute the permission graph. If the API responds before the permission graph is updated, and the client tries to retrieve the new/updated object right away, it might receive a confusing 404 error.

Usually, clients want the simplicity of immediate consistency. However, sometimes they would rather have API calls return faster: e.g., when issuing many create/update calls in a row.

For these cases, the API should accept an "asynchronous update" flag with create/update requests, indicating the client doesn't need a guarantee that the update is visible (i.e., permission graph is updated) at the moment it receives its response. In most cases (like "create collection") this will be a no-op. For transactions that update the permission view, the view should be updated after the response has been returned to the client.

The async flag should be advertised in the discovery doc via *_requires_parameters methods.


Related issues

Blocked by Arvados - Bug #13593: [API] Sequence of "create group" requests runs slowly, and can crash API serverResolvedLucas Di Pentima03/12/2019Actions
Actions

Also available in: Atom PDF