[
https://issues.jboss.org/browse/TEIID-3632?page=com.atlassian.jira.plugin...
]
Barry LaFond commented on TEIID-3632:
-------------------------------------
Connected to a remote server containing 30+ data sources
Designer refresh() method compiles and caches Translator, Data Source and VDB objects
using the following API calls
Loading translator definitions (names and properties)
* admin.getTranslators()
* admin.getTranslatorPropertyDefinitions()
> 120 CLI calls (3 per translator to get all 3 property definition
types: Override, Import & Extension props)
Load data source template names
* admin.getDataSourceTemplateNames()
24 CLI calls (24 different resource adapters & data source types)
Load data source template names
* admin.getDataSourceNames()
24 CLI calls (24 different resource adapters & data source types)
Retrieve DS properties for 35 data sources
* over 1800 CLI calls to get properties for 35 data sources
* Looks like all the ds types are checked for each data source
AdminFactory re-uses the following methods to obtain maps or arrays or maps of
"names". Seems inefficient to make the same CLI calls multiple times within the
same call stack.
* getInstalledResourceAdaptorNames()
* getResourceAdapterNames()
* getDeployedResourceAdaptorNames()
* getDataSourceTemplateNames()
* getConnectionFactoryNames()
Performance issue retrieving data source and translator definitions
through the AdminFactory
--------------------------------------------------------------------------------------------
Key: TEIID-3632
URL:
https://issues.jboss.org/browse/TEIID-3632
Project: Teiid
Issue Type: Bug
Reporter: Barry LaFond
Assignee: Ramesh Reddy
Based on the issue described in TEIIDDES-2592, we discovered that connecting to a remote
server that contained ~ 40 data sources required > 10 minutes to refresh the Server
view in Teiid Designer. After some debugging it appeared that some of the current
behavior in AdminFactory results multiple redundant CLI calls to retrieve intermediate
information to compile even a simple list of data source names.
In Teiid Designer, we modified our forked Admin8Factory to define a few cached sets of
data that get cleared if data is changed by our ExecutionAdmin class for any created or
deleted data sources.
Note that Designer's Server management paradigm includes the requirement to view the
DS/Translator/VDB contents on the server.
So I'm assuming that there could be some benefit if Teiid AdminFactory adapted a
similar approach to improving the performance/behavior of the internal methods of this
class.
see:
https://github.com/Teiid-Designer/teiid-designer/blob/master/plugins/teii...
for details
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)