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