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

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

Github user SteamShon commented on a diff in the pull request:

    https://github.com/apache/incubator-s2graph/pull/34#discussion_r54368965
  
    --- Diff: 
s2core/src/main/scala/com/kakao/s2graph/core/storage/Storage.scala ---
    @@ -1,64 +1,324 @@
     package com.kakao.s2graph.core.storage
     
    -import com.google.common.cache.Cache
    +import com.kakao.s2graph.core.ExceptionHandler.{Key, Val, KafkaMessage}
    +import com.kakao.s2graph.core.GraphExceptions.FetchTimeoutException
     import com.kakao.s2graph.core._
    -import com.kakao.s2graph.core.mysqls.{Service, Label}
    -import com.kakao.s2graph.core.utils.logger
    +import com.kakao.s2graph.core.mysqls._
    +import com.kakao.s2graph.core.types._
    +import com.kakao.s2graph.core.utils.{Extensions, logger}
     import com.typesafe.config.Config
    -
    -
    +import org.apache.hadoop.hbase.util.Bytes
    +import org.apache.kafka.clients.producer.ProducerRecord
    +import scala.annotation.tailrec
     import scala.collection.Seq
    +import scala.collection.mutable.ArrayBuffer
     import scala.concurrent.{ExecutionContext, Future}
    -import scala.util.Try
    +import scala.util.{Random, Try}
    +
    +abstract class Storage[R](val config: Config)(implicit ec: 
ExecutionContext) {
    --- End diff --
    
    Major changes goes here. now all common codes located on Storage abstract 
class.


> Remove unnecessary abstraction layer, Storage.
> ----------------------------------------------
>
>                 Key: S2GRAPH-17
>                 URL: https://issues.apache.org/jira/browse/S2GRAPH-17
>             Project: S2Graph
>          Issue Type: Task
>            Reporter: DOYUNG YOON
>            Assignee: DOYUNG YOON
>              Labels: client, refactoring
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Currently Graph contains following components.
> Graph has storage and each storage have followings.
> # SerDe: serialize and deserialize IndexEdge/SnapshotEdge/Vertex into bytes.
> # MutationBuilder: convert IndexEdge/SnapshotEdge into RPC which is dependent 
> on storage backend. 
> # QueryBuilder: issue RPC for fetch on storage backend
> With these components, storage know how to actually store/fetch 
> IndexEdge/SnapshotEdge/Vertex to, from storage backend.
> In my opinion, storage layer is unnecessary since all graph instance does is 
> delegating into storage. I am suggesting to remove storage layer and use 
> different Graph class for different storage backend.
> So for example, change AsynchbaseStorage into AsynchbaseGraph.
> I want to discuss how our Graph Client should be on this issue and change it 
> according to discussion.



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

Reply via email to