[ 
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)

Reply via email to