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

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

Github user daewon commented on the issue:

    https://github.com/apache/incubator-s2graph/pull/14
  
    This PR is no longer valid due to other changes. 
    So I think this issue should be closed.


> Apply squash optimization on mutateElements and make it default behavior on 
> Storage.
> ------------------------------------------------------------------------------------
>
>                 Key: S2GRAPH-26
>                 URL: https://issues.apache.org/jira/browse/S2GRAPH-26
>             Project: S2Graph
>          Issue Type: Improvement
>            Reporter: DOYUNG YOON
>            Assignee: Daewon Jeong
>              Labels: optimization, write
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> Currently AsynchbaseStorage that implement Storage trait using HBase use 
> squash optimization on snapshot edges at mutateEdges. 
> for example, if there are requests on same snapshotEdge that consists of 
> (insert, delete, insert, delete, insert) in their timestamp order, then we 
> only need to apply last insert. 
> ex) lets assume that there are 5 requests on from “shon” to “dun” with label 
> “friend”, insert(t0), delete(t1), insert(t2), delete(t3), insert(t4).
> without squashing same snapshot edges in memory, then 5 of following actions 
> need to be done.
> # fetch snapshot edge
> # lock this snapshot edge.
> # build new update and delete, insert, degree on IndexEdges.
> # fire above update/delete/insert/degree mutations into HBase.
> # release lock on this snapshotEdge.
> we can do 1, 2, 5(fetch, lock, release lock) one time and squash mutations 
> that built from multiple requests and squash them.
> above logic needs to keep consistency between multiple indexEdges and purpose 
> above logic is make only one thread on same snapshot edge be able to 
> mutate(note the lock). since we will acquire lock on this edge, it is much 
> efficient squash multiple requests on same snapshotEdge to avoid heavy 
> operation, fetch, lock, release lock. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to