You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Chudov (Jira)" <ji...@apache.org> on 2023/03/31 09:43:00 UTC
[jira] [Commented] (IGNITE-16985) Design table management flow (part 1)
[ https://issues.apache.org/jira/browse/IGNITE-16985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17707222#comment-17707222 ]
Denis Chudov commented on IGNITE-16985:
---------------------------------------
Things that require attention:
1. The contract of #update(token, updater) is violated in createTableLocally and updateAssignmentsInternal: update operation in updateAssignmentsInternal is not commutative
2. PartitionReplicaListener should be created by ReplicaManager. In TableManager it is created only to pass to to #startReplica method, meanwhile it requires additional fields and thread pools in TableManager.
3. tableManager.tableAsync in tablesVv.update in SqlSchemaManager: possibly should be replaced to #get(token).
Also, it leads to possible race with table creation: API future is done before calciteSchemaVv is completed.
4. tablesByIdVv.get(evt.revision()) : potential OutdatedTokenException in case when metastorage watch processing gets significantly behind configuration updates.
> Design table management flow (part 1)
> -------------------------------------
>
> Key: IGNITE-16985
> URL: https://issues.apache.org/jira/browse/IGNITE-16985
> Project: Ignite
> Issue Type: Task
> Reporter: Alexander Lapin
> Assignee: Denis Chudov
> Priority: Major
> Labels: ignite-3
> Attachments: VersionedValuesUpdates.svg, VersionedValuesUpdates.yuml, onTableCreate.svg, onTableCreate.yuml, onTableDrop.svg, onTableDrop.yuml, table.svg, table.yuml
>
>
> As a part of the issue planed:
> # Draw a time diagram of all operations: createTable(), dropTable(), table(), tables().
> # Emphases of correctness work of causality tokens: tablesByIdVv.
> # Reflect cross components interactions. Components: Schema manager, SQL manager (SqlQueryProcessor), Affinity manager (it is not dedicated for now).
>
> The task for this ticket is to make a detailed diagram of the current flow, to ease the design itself.
> Definition of done:
> We have detailed and clear description of table manager flows and the ticket IGNITE-18989 is enriched with details about the flaws we want to fix.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)