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