You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@s2graph.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/06/04 09:23:00 UTC

[jira] [Commented] (S2GRAPH-215) Implement a Storage Backend for JDBC driver, such as H2, MySql using the Mutator and Fetcher interfaces.

    [ https://issues.apache.org/jira/browse/S2GRAPH-215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16499940#comment-16499940 ] 

ASF GitHub Bot commented on S2GRAPH-215:
----------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/incubator-s2graph/pull/167


> Implement a Storage Backend for JDBC driver, such as H2, MySql using the Mutator and Fetcher interfaces.
> --------------------------------------------------------------------------------------------------------
>
>                 Key: S2GRAPH-215
>                 URL: https://issues.apache.org/jira/browse/S2GRAPH-215
>             Project: S2Graph
>          Issue Type: Improvement
>          Components: s2core
>            Reporter: Daewon Jeong
>            Priority: Minor
>
> h2. Implement a Storage Backend for JDBC driver, such as H2, MySql using the Mutator and Fetcher interfaces.
> S2GRAPH-213  The issue has been completed.
> I will try to implement Fetcher and Mutator for JDBC by using the abstract mutation/query function completed in the above issue(S2GRAPH-213).
> Direction of implementation
>  - Data sorting and transactions take advantage of the functionality provided by the RDBMS.
> h2. DDL (table, index)
> Assume that the 's2graph' service, the 'user' column, and the 'friends' label are created using the s2graph management function as shown in the example below.
> The label friends has an 'idx_age_score' that uses the age, score properties and (age, score) fields.
> {noformat}
>     val serviceName = "s2graph"
>     val columnName = "user"
>     val labelName = "friends"
>     val service = management.createService(serviceName, "localhost", "s2graph_htable", -1, None).get
>     val serviceColumn =
>       management.createServiceColumn(serviceName, columnName, "string", Nil)
>     val label = management.createLabel(
>       labelName,
>       service.serviceName,
>       serviceColumn.columnName,
>       serviceColumn.columnType,
>       service.serviceName,
>       serviceColumn.columnName,
>       serviceColumn.columnType,
>       service.serviceName,
>       Seq(
>         Index("idx_age_score", Seq("age", "score"))
>       ),
>       Seq(
>         Prop(name = "score", defaultValue = "0.0", dataType = "double"),
>         Prop(name = "age", defaultValue = "0", dataType = "int")
>       ),
>       isDirected = true,
>       consistencyLevel = "strong",
>       hTableName = None,
>       hTableTTL = None,
>       schemaVersion = "v3",
>       compressionAlgorithm = "gz",
>       options = options,
>       initFetcherWithOptions = true
>     ).get
> {noformat}
> In this case, H2 database (mysql mode) for label friends creates the following table.
>  Implement a query / mutation that fits the table schema.
> {noformat}
>   CREATE TABLE `_EDGE_STORE_friends`(
>     `id` int(11) NOT NULL AUTO_INCREMENT,
>     `_timestamp` TIMESTAMP NOT NULL default CURRENT_TIMESTAMP,
>     `_from` varchar(256) NOT NULL,
>     `_to` varchar(256) NOT NULL,
>     PRIMARY KEY (`id`),
>     `age` int(32),
>     `score` double,
>     KEY `idx_age_score` (`age`, `score`),
>     UNIQUE KEY `_from` (`_from`,`_to`),
>     UNIQUE KEY `_to` (`_to`,`_from`)
>   ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)