You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Bessonov (Jira)" <ji...@apache.org> on 2022/06/03 11:08:00 UTC
[jira] [Updated] (IGNITE-17074) Create integer tableId identifier for tables
[ https://issues.apache.org/jira/browse/IGNITE-17074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ivan Bessonov updated IGNITE-17074:
-----------------------------------
Description:
First of all, this requirement comes from the PageMemory component restrictions - having an entire UUID for table id is too much for a loaded pages list. Currently the implementation uses String hash, just like in Ignite 2.x. This is a bad solution.
In Ignite 3.x configuration model, every configuration update is serialized by design. This allows us to have atomic counters basically for free. We could add a {{int lastTableId}} configuration property to a {{{}{{TablesConfigurationSchema}}{}}}, for example, and increment it every time new table is created. Then all we need is to read this value in all components that need it.
Maybe we should even use it in thin clients, but that needs a careful consideration. Originally, int tableId is intended to be used in storage implementations and maybe as a part of unique RowId, associated with tables, but that's only a speculation.
was:
First of all, this requirement comes from the PageMemory component restrictions - having an entire UUID for table id is too much for a loaded pages list. Currently the implementation uses String hash, just like in Ignite 2.x. This is a bad solution.
In Ignite 3.x configuration model, every configuration update is serialized by design. This allows us to have atomic counters basically for free. We could add a {{int lastTableId }}configuration property to a {{{}TablesConfigurationSchema{}}}, for example, and increment it every time new table is created. Then all we need is to read this value in all components that need it.
Maybe we should even use it in thin clients, but that needs a careful consideration. Originally, int tableId is intended to be used in storage implementations and maybe as a part of unique RowId, associated with tables, but that's only a speculation.
> Create integer tableId identifier for tables
> --------------------------------------------
>
> Key: IGNITE-17074
> URL: https://issues.apache.org/jira/browse/IGNITE-17074
> Project: Ignite
> Issue Type: Improvement
> Reporter: Ivan Bessonov
> Priority: Major
> Labels: ignite-3
>
> First of all, this requirement comes from the PageMemory component restrictions - having an entire UUID for table id is too much for a loaded pages list. Currently the implementation uses String hash, just like in Ignite 2.x. This is a bad solution.
> In Ignite 3.x configuration model, every configuration update is serialized by design. This allows us to have atomic counters basically for free. We could add a {{int lastTableId}} configuration property to a {{{}{{TablesConfigurationSchema}}{}}}, for example, and increment it every time new table is created. Then all we need is to read this value in all components that need it.
> Maybe we should even use it in thin clients, but that needs a careful consideration. Originally, int tableId is intended to be used in storage implementations and maybe as a part of unique RowId, associated with tables, but that's only a speculation.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)