热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinkedINdatainfrastructure简介

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 上,有兴趣的同学可以参考下。评论部分暂时只写了英文,汉语有空再补充。

Papers4DataAchitectgithub.com《LinkedIN data infrastructure 简介》


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • Iamtryingtocreateanarrayofstructinstanceslikethis:我试图创建一个这样的struct实例数组:letinstallers: ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 这篇文章主要讲解了“如何应对Android面试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何应对 ... [详细]
  • java.lang.Class.getDeclaredMethod()方法java.lang.Class.getDeclaredMethod()方法用法实例教程-方法返回一个Met ... [详细]
  • 讨伐Java多线程与高并发——MQ篇
    本文是学习Java多线程与高并发知识时做的笔记。这部分内容比较多,按照内容分为5个部分:多线程基础篇JUC篇同步容器和并发容器篇线程池篇MQ篇本篇 ... [详细]
author-avatar
rgx-秀_550
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有