[ https://issues.apache.org/jira/browse/S2GRAPH-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16404313#comment-16404313 ]
ASF GitHub Bot commented on S2GRAPH-181: ---------------------------------------- GitHub user SteamShon opened a pull request: https://github.com/apache/incubator-s2graph/pull/138 [S2GRAPH-181]: MutateVertices yield different state with different storage type. - change serializer/deserializer on RockStorage. You can merge this pull request into a Git repository by running: $ git pull https://github.com/SteamShon/incubator-s2graph S2GRAPH-181 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-s2graph/pull/138.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #138 ---- commit 50c9eaf89d2f5ffffdc51b48e82015baf138a517 Author: DO YUNG YOON <steamshon@...> Date: 2018-02-26T10:00:23Z add Vertex upsert on schemaVersion v4. commit b0356f50fd81a191540ef3cac7875e859a54301a Author: DO YUNG YOON <steamshon@...> Date: 2018-03-19T02:16:43Z Merge remote-tracking branch 'apache/master' into S2GRAPH-181 ---- > 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)