[ 
https://issues.apache.org/jira/browse/IGNITE-20745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17815289#comment-17815289
 ] 

Vladislav Pyatkov commented on IGNITE-20745:
--------------------------------------------

We already have a check for created tables in TableManager:
{code:java}
TableManager#startedTables
{code}
But the methods to access the cache are not used for the tables API. Because we 
want consistency between several nodes, when a node creates a table, the other 
node gets it through the API, and the same is true for removing the table.
We can make the invariants weaker. For example, we will check the MC only in 
cases where the table was not found in the cache (startedTables). Obviously, 
this deprives us of the removal invariant.


> TableManager.tableAsync(int tableId) is slowing down thin clients
> -----------------------------------------------------------------
>
>                 Key: IGNITE-20745
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20745
>             Project: Ignite
>          Issue Type: Improvement
>    Affects Versions: 3.0.0-beta1
>            Reporter: Pavel Tupitsyn
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>         Attachments: ItThinClientPutGetBenchmark.java
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Performance difference between embedded and client modes is affected 
> considerably by the call to *IgniteTablesInternal#tableAsync(int id)*. This 
> call has to be performed on every individual table operation.
> We should make it as fast as possible. Something like a dictionary lookup + 
> quick check for deleted table.
> ||Part||Duration, us||
> |Network & msgpack|19.30|
> |Get table|14.29|
> |Get tuple & serialize|12.86|



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to