热门标签 | 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 简介》


推荐阅读
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 为了确保数据库的高效运行,本文介绍了一种方法,通过编写定时任务脚本来自动清理 `order` 表中状态为 0 或为空的无效订单记录。该脚本使用 PHP 编写,并设置时区为中国标准时间,每 10 分钟执行一次,以保持数据库的整洁和性能优化。此外,还详细介绍了如何配置定时任务以及脚本的具体实现步骤。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
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社区 版权所有