`

LinkedIn 架构笔记

阅读更多

LinkedIn 架构笔记

网址:

 

现在是 SNS 的春天,最近又有消息传言新闻集团准备收购 LinkedIn 。有趣的是,LinkedIn 也是 Paypal 黑帮 成员创建的。在最近一个季度,有两个 Web 2.0 应用我用的比较频繁。一个是Twitter ,另一个就是 LinkedIn

LinkedIn 的 CTO Jean-Luc Vaillant 在 QCon 大会上做了 ”Linked-In: Lessons learned and growth and scalability “ 的报告。不能错过,写一则 Blog 记录之。

LinkedIn 雇员有 180 个,在 Web 2.0 公司中算是比较多的,不过人家自从 2006 年就盈利了,这在 Web 2.0 站点中可算少的。用户超过 1600 万,现在每月新增 100 万,50% 会员来自海外(中国用户不少,也包括 ).

开篇明义,直接说这个议题不讲"监控、负载均衡”等话题,而是实实在在对这样特定类型站点遇到的技术问题做了分享。LinkedIn 的服务器多是 x86 上的 Solaris ,关键 DB 用的是 Oracle 10g。人与人之间的关系图生成的时候,关系数据库有些不合时宜,而把数据放到内存里进行计算就是必经之路。具体一点说,LinkedIn 的基本模式是这样的:前台应用服务器面向用户,中间是DB,而DB的后边还有计算服务器来计算用户间的关系图的。

问题出来了,如何保证数据在各个 RAM 块(也就是不同的计算服务器)中是同步的呢? 需要一个比较理想的数据总线(DataBus)机制。

第一个方式是用 Timestamp . 对记录设置一个字段,标记最新更新时间。这个解决方法还是不错的---除了有个难以容忍的缺陷。什么问题?就是 Timestamp 是 SQL调用发起的时间,而不是 Commit 的确切时间。步调就不一致喽。

systimestamp.png

第二个办法,用 Oracle 的 ORA_ROWSCN (还好是 Oracle 10g). 这个伪列包含 Commit 时候的 SCN(System Change Number),是自增的,DB 自己实现的,对性能没有影响。Ora_ROWSCN 默认是数据库块级别的粒度,当然也可做到行级别的粒度。唯一的缺点是不能索引(伪列). 解决办法倒也不复杂:增加一个 SCN 列,默认值"无限大"。然后用选择比某个 SCN 大的值就可以界定需要的数据扔到计算服务器的内存里。

ORA_ROWSCN 是 Oracle 10g 新增的一个特性,不得不承认,我过去忽略了这一点。我比较好奇的是,国内的 Wealink、联络家等站点是如何解决这个关系图的计算的呢?

分享到:
评论

相关推荐

    大型网站架构技术方案集锦

    大型网站架构技术方案集锦 PlentyOfFish 网站架构...LinkedIn 架构笔记 Yahoo!社区架构 Craigslist 的数据库架构 Fotolog.com 的技术信息拾零 Digg 网站架构 Amazon 的 Dynamo 架构 财帮子(caibangzi.com)网站架构

    Kafka全套学习笔记.zip

    本套学习笔记将带你深入理解Kafka的核心概念、架构设计以及实战技巧。 一、Kafka概述 Kafka是一个高吞吐量的分布式发布订阅消息系统,它的主要特性包括持久化、分区、复制和并行处理。Kafka的设计目标是提供低延迟...

    我的渗透学习笔记.zip

    我的渗透学习笔记信息收集公司和个人网站是信息的重要来源,查看公司的LinkedIn个人资料,以确定高级经理,董事和非技术人员。 很多时候,最薄弱的密码属于许多公司的管理人员。 搜索公司网站上的“关于我们”页面也...

    手写“Kafka笔记”.pdf

    Kafka笔记 Kafka是LinkedIn开发的一个内部基础设施系统,旨在处理持续数据流。Kafka的设计理念是将数据看作是一个持续变化和不断增长的流,基于这样的想法构建出一个数据系统,一个数据架构。Kafka外在表现很像消息...

    Kafka学习笔记.rar

    Apache Kafka是一款开源的流处理平台,由LinkedIn开发并捐赠给了Apache软件基金会。它最初设计为一个高吞吐量、低延迟的消息队列系统,但现在已经成为大数据领域的重要组件,广泛用于实时数据管道和流式处理。Kafka...

    kafka相关内容 的学习笔记

    在这个学习笔记中,我们将深入探讨Kafka的核心概念、架构以及它在大数据生态系统中的应用。 1. **核心概念** - **主题(Topic)**:主题是Kafka中的数据分类,类似于数据库中的表。每个主题可以被分成多个分区。 ...

    大数据笔记kafka-jvm.zip

    1. Kafka概述:Kafka最初由LinkedIn开发,后贡献给Apache基金会,它是一个分布式的、基于发布/订阅的消息系统,能够处理海量的实时数据流。 2. Kafka架构:包括生产者、消费者、 broker节点和 Zookeeper等组件,提供...

    kafka知识导图笔记.rar

    **Kafka知识导图笔记详解** Kafka是一个分布式流处理平台,由LinkedIn开发并开源,现在是Apache软件基金会的一部分。它被设计为高吞吐量、低延迟的消息系统,广泛用于实时数据管道和流处理应用。Kafka的核心概念...

    Java【分布式】学习笔记01分布式Java应用

    从给定的文件信息来看,标题和描述都指向了“Java分布式学习笔记01分布式Java应用”,这显然是关于Java在分布式环境下的应用和技术的学习资料。虽然提供的部分内容由于格式问题难以直接解析,但我们可以根据标题、...

    LinkedInLearningSQL:LinkedIn学习SQL课程的注意事项

    LinkedIn学习-学习SQL编程学习领域/实践方法结合使用SQLite和DB浏览器界面来编写查询和练习SQL语言练习使用版本控制软件将注释上载到github以供以后参考利用Markdown语言有效地跟踪个人课程笔记介绍数据库按列(字段...

    kafka笔记.zip

    Kafka是Apache软件基金会的一个关键项目,由LinkedIn公司最初设计,并最终以Scala和Java语言实现。作为一个高性能、分布式的流处理平台,Kafka被广泛应用于实时数据管道和流应用之中。它的核心功能是作为一个消息...

    kafka的相关笔记与资料

    它最初由LinkedIn开发,后来贡献给了开源社区,如今已经成为分布式消息传递领域的明星产品。本文将深入探讨Kafka的核心概念、设计原理以及实际应用,帮助读者全面理解并掌握这一中间件。 一、Kafka基本概念 1. **...

    kafka学习笔记:知识点整理.docx

    Kafka是一个分布式流处理平台,由LinkedIn开发并贡献给了Apache软件基金会。它是消息中间件的一种,广泛应用于大数据实时处理、日志收集、用户行为追踪等领域。 ### 1. 为什么需要消息系统 - **解耦**:消息队列使...

    Kafka最新完整学习笔记.pdf

    Kafka是一个分布式流处理平台,它最初由LinkedIn公司开发,现在是一个开源项目,由Apache软件基金会维护。Kafka主要用于构建实时数据管道和流应用程序。它具有高性能、水平扩展、高可靠性的特点,特别适合于大数据...

    【kafka技术资料】-(机构内训资料)kafka知识导图笔记

    Kafka是一款高性能、分布式的消息中间件,最初由LinkedIn开发,并于2011年开源,现在是Apache软件基金会的顶级项目。Kafka被广泛应用于实时数据流处理、日志聚合、用户行为追踪等多个领域,其核心特性包括高吞吐量、...

    kafka课上笔记,介绍、原理、实操

    Apache Kafka 是一个强大的分布式流处理平台,由 LinkedIn 开发并在2011年成为Apache软件基金会的顶级项目。它的设计目标是提供高吞吐量、低延迟的数据传递,支持实时数据管道和流式应用程序。Kafka的核心特性包括...

    kaflka_learn3_kafka_源码

    2. **Kafka 架构**:解释 Kafka 的分布式架构,包括 Broker(代理服务器)、Zookeeper 的角色以及如何通过它们实现高可用性和数据冗余。 3. **消息模型**:描述如何使用生产者和消费者API发送和接收消息,包括同步...

    javasnmp源码-penetrationLean:我的渗透学习笔记

    公司和个人网站是信息的重要来源,查看公司的LinkedIn个人资料,以确定高级经理,董事和非技术人员。 很多时候,最薄弱的密码属于许多公司的管理人员。 搜索公司网站上的“关于我们”页面也可以找到薄弱的目标。 IP...

Global site tag (gtag.js) - Google Analytics