[ 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)