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

Pavel Tupitsyn commented on IGNITE-20745:
-----------------------------------------

*TableManager#getTable* (which uses *startedTables*) seems like a good solution.

It is not a problem to return a dropped table:
* Any operations on such a table will fail anyway
* This is consistent with embedded API behavior when the user stores *Table* in 
a variable

Basically, the following code will behave the same way for embedded and client 
APIs:
{code:java}
var table = tables.table("foobar");

while (true) {
  table.recordView().get(...);
}
{code}

> 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