[
https://issues.apache.org/jira/browse/IGNITE-20916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mirza Aliev updated IGNITE-20916:
---------------------------------
Summary: Remove API future related code from TableManager (was: API future
of table creation may be completed incorrectly)
> Remove API future related code from TableManager
> ------------------------------------------------
>
> Key: IGNITE-20916
> URL: https://issues.apache.org/jira/browse/IGNITE-20916
> Project: Ignite
> Issue Type: Bug
> Reporter: Denis Chudov
> Priority: Major
> Labels: ignite-3
>
> After some changes, the map TableManager#tableCreateFuts is used in single
> place only: TableManager#completeApiCreateFuture which makes no sense. It
> should be either removed or (more probably) we have some races on table
> creation from user API's point of view.
> Basically, there should be a rework of partition start and moving
> responsibility for partitions from tables to zones, and the table start
> process will have to look completely different and it will be split between
> different meta storage revision (unlike now: everything related to the table
> start happens within single revision updates).
> For example:
> * some distribution zone "zone0" is created on meta storage revision {_}5{_};
> * zone creation process writes assignment changes to meta storage with
> revision {_}5+x{_}, so the zone partitions will be started on revision _5+x_
> * some table "table0" is created within zone0 on revision {_}y{_}. This
> revision y can be either less or greater than _5+x_ (but still greater than 5
> and never equal to {_}5+x{_}). API future should wait for completion of all
> listeners for the revision _max(5+x, y)._
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)