You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@s2graph.apache.org by "DOYUNG YOON (JIRA)" <ji...@apache.org> on 2018/02/26 09:59:00 UTC
[jira] [Assigned] (S2GRAPH-181) MutateVertices yield different
state with different storage type.
[ https://issues.apache.org/jira/browse/S2GRAPH-181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
DOYUNG YOON reassigned S2GRAPH-181:
-----------------------------------
Assignee: DOYUNG YOON
> MutateVertices yield different state with different storage type.
> -----------------------------------------------------------------
>
> Key: S2GRAPH-181
> URL: https://issues.apache.org/jira/browse/S2GRAPH-181
> Project: S2Graph
> Issue Type: Bug
> Reporter: DOYUNG YOON
> Assignee: DOYUNG YOON
> Priority: Major
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> Find out different properties of the vertex with `RocksStorage` backend.
> `ServiceColumn` is defined as follow.
> {noformat}
> {
> "serviceName": "s2graph",
> "columnName": "user",
> "columnType": "string",
> "props": [{
> "name": "is_active",
> "dataType": "boolean",
> "defaultValue": false
> },
> {
> "name": "phone_number",
> "dataType": "string",
> "defaultValue": "-"
> },
> {
> "name": "nickname",
> "dataType": "string",
> "defaultValue": ".."
> },
> {
> "name": "age",
> "dataType": "integer",
> "defaultValue": 0
> }
> ]
> }
> {noformat}
> `insert` vertex with partial property(first insert request only has is_active, and the second one only has phone_number) should behave like 'upsert'.
> The first `insert` request.
> {noformat}
> [{
> "id": 1,
> "props": {
> "is_active": true
> },
> "timestamp": 1417616431
> }]
> {noformat}
> The second `insert` request.
> {noformat}
> [{
> "id": 1,
> "props": {
> "phone_number": "abcdefg"
> },
> "timestamp": 1417616432
> }]
> {noformat}
> The expected state on vertex 1 should be following.
> {noformat}
> {
> "id": 1,
> "props": {
> "is_active": true,
> "phone_number": "abcdefg",
> "nickname": "..", // default value.
> "age": 0 // default value.
> }
> }
> {noformat}
> Above is what fetched vertex looks like when storage backend is `AsynchbaseStorage`, but `RocksStorage` gives different vertex.
> {noformat}
> {
> "id": 1,
> "props": {
> "is_active": false, // default value
> "phone_number": "abcdefg",
> "nickname": "..", // default value.
> "age": 0 // default value.
> }
> }
> {noformat}
> Note that `is_active` give default value instead of first value user inserted(the second request overwrite the first request).
> Suggest to fix `RocksStorage` to behave like `AsynchbaseStorage`.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)