[teiid-issues] [JBoss JIRA] (TEIID-3632) Performance issue retrieving data source and translator definitions through the AdminFactory

Barry LaFond (JIRA) issues at jboss.org
Sat Aug 15 19:45:26 EDT 2015


    [ https://issues.jboss.org/browse/TEIID-3632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13098714#comment-13098714 ] 

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/teiid/org.teiid.runtime.client/src/org/teiid/runtime/client/admin/v8/Admin8Factory.java for details



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


More information about the teiid-issues mailing list