Asynchronous Table Transactions
The current table update features include the following:
- Add/Remove columns.
- Partial Row changes.
- RowSet changes, including adding, removing, and updating rows.
- Row updates via an uploaded CSV. Rows can be added, removed, and updated via CSV uploads.
While Synapse currently supports adding and removing columns from a table updating a column is not supported (PLFM-3884).
The following example illustrates a common table use case:
- User downloads all of the data from a table as CSV using either the web or command line clients.
- The user changes the resulting CSV making row update, deletes, and additions. The user will also add or remove columns to the CVS.
- The user then attempts to upload the CSV back to the table in Synapse, expecting the row and schema changes to be applied.
It is possible for a client to first change a table schema then apply the CSV update as two separates operations. The results are acceptable when both operations succeed. However, if the schema change succeeds but the CSV fails, the table is left in an unexpected state. Users expect both operations to processed as a single transaction (both operations either fail or both operations succeed).