[ 
https://issues.apache.org/jira/browse/IGNITE-15726?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Lapin updated IGNITE-15726:
-------------------------------------
    Description: 
Let's check how other vendors solve the issue of non-sql api to manager tables 
or table like structures.

h3. Problem
Currently there are two variants of internal table api:
* The one that uses closure as a parameter, e.g. _Table createTable(String 
name, Consumer<TableChange> tableInitChange);_
* Syntactic sugar over closures presented in the form of a builder
{code:java}
        TableDefinition schTbl1 = SchemaBuilders.tableBuilder("PUBLIC", 
"tbl1").columns(
            SchemaBuilders.column("key", ColumnType.INT64).asNonNull().build(),
            SchemaBuilders.column("val", ColumnType.INT32).asNullable().build()
        ).withPrimaryKey("key").build();

        clusterNodes.get(0).tables().createTable(schTbl1.canonicalName(), tblCh 
->
            SchemaConfigurationConverter.convert(schTbl1, tblCh)
                .changeReplicas(1)
                .changePartitions(10)
        );
{code}

It's not possible to use first option from within thin clients cause it's not 
possible to transfer closure over network.
Second one is better however it doesn't support rename and some other alter 
operations. 
It worth to mention that there's and 
[option|https://issues.apache.org/jira/browse/IGNITE-15557] of pojo based 
configuration api that is similar to builders and has similar disadvantages.

Taking into consideration that api mentioned above partially duplicates ddl for 
tables it makes sense to do a research checking whether other vendors provide 
such kind of non-ddl table management api.

  was:
Let's check how other vendors solve the issue of non-sql api to manager tables 
or table like structures.

h3. Problem
Currently there are two variants of internal table api:



> Research non-sql production-proven table management api options.
> ----------------------------------------------------------------
>
>                 Key: IGNITE-15726
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15726
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3
>
> Let's check how other vendors solve the issue of non-sql api to manager 
> tables or table like structures.
> h3. Problem
> Currently there are two variants of internal table api:
> * The one that uses closure as a parameter, e.g. _Table createTable(String 
> name, Consumer<TableChange> tableInitChange);_
> * Syntactic sugar over closures presented in the form of a builder
> {code:java}
>         TableDefinition schTbl1 = SchemaBuilders.tableBuilder("PUBLIC", 
> "tbl1").columns(
>             SchemaBuilders.column("key", 
> ColumnType.INT64).asNonNull().build(),
>             SchemaBuilders.column("val", 
> ColumnType.INT32).asNullable().build()
>         ).withPrimaryKey("key").build();
>         clusterNodes.get(0).tables().createTable(schTbl1.canonicalName(), 
> tblCh ->
>             SchemaConfigurationConverter.convert(schTbl1, tblCh)
>                 .changeReplicas(1)
>                 .changePartitions(10)
>         );
> {code}
> It's not possible to use first option from within thin clients cause it's not 
> possible to transfer closure over network.
> Second one is better however it doesn't support rename and some other alter 
> operations. 
> It worth to mention that there's and 
> [option|https://issues.apache.org/jira/browse/IGNITE-15557] of pojo based 
> configuration api that is similar to builders and has similar disadvantages.
> Taking into consideration that api mentioned above partially duplicates ddl 
> for tables it makes sense to do a research checking whether other vendors 
> provide such kind of non-ddl table management api.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to