[teiid-issues] [JBoss JIRA] (TEIID-2578) add/remove schema elements

Ramesh Reddy (JIRA) issues at jboss.org
Sat Nov 12 17:58:00 EST 2016


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

Ramesh Reddy commented on TEIID-2578:
-------------------------------------

To explain this further, Teiid currently has deployment based model, where a .vdb file deployment kicks off the creation of the VDB, and VDB file in an *external* file holds the metadata related to the VDB. This metadata is in read only mode. In this model, Teiid does *NOT* own metadata, it just reads from a file supplied, however who ever designed the metadata own it, they manage it external to the Teiid. So, inline edits are not possible.

In the new system being proposed, there is a metadata repository, that Teiid keeps track of all the VDBs along with their metadata. Any changes you do using CREATE, ALTER and DROP happen to the metadata residing inside this metadata repository. When the changes are valid, a version of the metadata is deployed in Teiid as a VDB automatically. This is done because, in order to edit metadata using DDL Teiid needs to *OWN* the metadata to control it. 

The contention we have now is, should we go down this path? should we own both modes of operation, or keep to one. Since deployment is what we have done, it is impossible to get rid of this, without metadata repository, we can not give dynamic edibility of metadata. 

When I initially designed the system my recommendation is to have both modes of operation, with slightly modified/different capabilities in each mode. 

- In the deployment model, the source schema can be fetched during start of server or at the deployment time of VDB, in metadata mode, the schema can be fetched dynamically at any time, but it is static until it is *explicitly* refreshed by user, the restart of server does not affect it.

- In the deployment model, user can use "import vdb" feature to import a child VDB into parent VDB. When a child VDB is modified independent of parent VDB, the changes are immediately reflected in the parent VDB. In repository model, the concept of import VDB where two or more independent VDBs working together does not exist, there is single VDB. For convenience purpose we provided DDL statement "import VDB", but this does one time copy of metadata from child VDB into parent VDB. After that, any changes to child will not be reflected automatically in the parent.

- In the deployment model, the translators are registered at VDB scope, in the metadata repository model they are registered at global scope (same in embedded)

- Management of metadata in cluster mode for *embedded* is not defined, current techniques are designed for working inside WildFly. So, this is one concern.

- Repository model is much like any other RDBMS system like Oracle, Postgesql etc, where user with DDL can control the all aspects of the database. So it will be easier concept to explin to *new* users.

I see pros/cons on both sides, IMO we may be able support both with some extra work, but with understanding of the above limitations. We can not make both work exactly same, and depending upon the client/user needs we can recommend one system over the other.

Now we would like to know your opinions? 

> add/remove schema elements
> --------------------------
>
>                 Key: TEIID-2578
>                 URL: https://issues.jboss.org/browse/TEIID-2578
>             Project: Teiid
>          Issue Type: Feature Request
>          Components: Query Engine
>            Reporter: Ramesh Reddy
>            Assignee: Ramesh Reddy
>             Fix For: 9.2
>
>
> Schemas are currently static after load.  Modifications can only happen with restarts or new versions.  We should allow add/drop at runtime.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the teiid-issues mailing list