作者:rgx-秀_550 | 来源:互联网 | 2023-09-09 18:37
LKD是一个典型的SNS公司,datainfrastructure是fullstack,包括了KVstore(Voldemort)documentstore(Espresso)ch
LKD是一个典型的SNS公司,data infrastructure 是full stack,包括了
- KV store (Voldemort)
- document store (Espresso)
- change data capture (Databus)
- message as service (Kafka)
- search as service
- graph database (Dgrpah)
- online OLAP (pinot)
- object store (ambry)
- cluster management (Helix)
Kafka大家很熟悉。其他项目比如Databus、Dgraph、Ambry,知名度虽然不大,其实也都是非常不错的项目。
比如Databus ,功能很强大。如果作为ETL工具看,Hadoop中的sqoop 是用jdbc 直连数据库,性能损耗大,不能像Databus 一样提供long back /snaopshot query 。跟数据库复制中间件比,Databus能将数据从db中持续导出到异构的存储系统中,而不是同一类型的数据库。
图数据库领域,neo4j虽然更出名,但是关键特性如sharding、HA, 需要购买lisence才可以使用 ;Dgraph 开源版本也都支持这些特性。Golang 实现,存储引擎也有一些特别的优化,LSMTree 的一个变种。
对象存储领域,swift因为openstack 的缘故更为大家熟悉,但python 编写,性能是个问题,同时还依赖sqlite存放一些原数据,架构太重了。小文件聚合存储之类的重要特性也不支持。LKD的对象存储叫Ambry,java实现,支持小文件聚合,异步删除compact ,erasure code ,geo- replication ,都是非常棒的企业级特性。
Helix尤其推荐了解一下,是lkd data infrastructure 中最重要的一个组件。Databus, Espresso, Pinot, Ambry 这几个系统,都有用到 。Helix 是一个集群管理框架,更确切的说是一个分布式存储框架。大家知道,zk /etcd 是个好东西,分布式系统的节点状态、配置信息,都可以放到zk里面。但是还有一些常见的问题zk 并不关心,比如sharding,replication,failover ,route,rebalance 等。Helix 以zk 为persistent storage,针对前面提到的几个通用问题做了建模,设计了内部数据结构,提供一些常见的默认策略,同时不失灵活性,也支持用户自己定义 。从功能上讲,Helix 跟Hbase的HMaster 或者TiKV里面的PD有点像。同时,Helix 是一个框架框架,而不仅仅是一个模块或者组件。可以说,Helix 是分布式存储系统的一个building block 。
LKD 的系统不少都发了paper ,搜集了下pdf 放到了github 上,有兴趣的同学可以参考下。评论部分暂时只写了英文,汉语有空再补充。
Papers4DataAchitect github.com