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