Mon, 07/09/2007 - 16:57 — Todd Hoff
A fascinating and detailed story of how LiveJournal
evolved their system to scale. LiveJournal was an early player in the
free blog service race and faced issues from quickly adding a large
number of users. Blog posts come fast and furious which causes a lot of
writes and writes are particularly hard to scale. Understanding how
LiveJournal faced their scaling problems will help any aspiring website
builder.
Site: http://www.livejournal.com/
Information Sources
LiveJournal
- Behind The Scenes Scaling Storytime
Google Video
Tokyo Video
2005 version
Platform
Linux
MySql
Perl
Memcached
MogileFS
Apache
What's Inside?
Scaling from 1, 2, and 4 hosts to cluster of servers.
Avoid single points of failure.
Using MySQL
replication only takes you so far.
Becoming IO bound kills scaling.
Spread out writes and reads for more parallelism.
You can't keep adding read slaves and scale.
Shard
storage approach, using DRBD
, for maximal throughput. Allocate shards based on roles.
Caching
to improve performance with memcached. Two-level hashing to distributed RAM.
Perlbal
for web load balancing.
MogileFS, a distributed file system, for parallelism.
TheSchwartz
and Gearman for distributed job queuing to do more work in parallel.
Solving persistent connection problems.
Lessons Learned
Don't be afraid to write your own software to solve
your own problems. LiveJournal as provided incredible value to the
community through their efforts.
Sites can evolve from small 1, 2 machine setups to
larger systems as they learn about their users and what their system
really needs to do.
Parallelization is key to scaling. Remove choke
points by caching, load balancing, sharding, clustering file systems,
and making use of more disk spindles.
Replication has a cost. You can't just keep adding more and more read slaves and expect to scale.
Low level issues like which OS event notification
mechanism to use, file system and disk interactions, threading and even
models, and connection types, matter at scale.
Large sites eventually turn to a distributed queuing and scheduling mechanism to distribute large work loads across a grid.
分享到:
相关推荐
从LiveJournal后台发展看大规模网站性能优化方法 一、LiveJournal发展历程与背景 LiveJournal,一个始于1999年的校园项目,最初是由一群技术爱好者为了实现博客、论坛、社交网络以及文章聚合等功能而创立的。它的...
LiveJournal架构现状概况,网上收集的,但是来源忘记了!
【LiveJournal:深入理解LiveJournal数据库】 LiveJournal,作为一个历史悠久的在线日记和社交网络平台,其背后的数据存储和管理机制是构建大规模社交网络的关键部分。本文将深入探讨LiveJournal数据库的相关知识点...
Inside LiveJournal\'s Backend. or,. “holy hell that\'s a lot of hits!” April 2004. Brad Fitzpatrick. brad@danga....
LiveJournal 源存档 这是背后的代码库,从存储库的创建到官方存储库在 2014 年被LiveJournal.com, Inc关闭。 尽管官方存储库不再公开,但在此之前的源代码仍然根据 GNU GPL 获得许可,并由各种不同的版权所有者提供...
iPhoto的插件,可将图像上传到LiveJournal Scrapbook(Fotobilder)照片托管服务。
LiveJournal's Backend A history of scaling.PDF
LiveJournal的Java API:XML-RPC服务,http客户端,*。bml客户端。 需要Java 1.5+
LiveJournal API npm install livejournal 该软件包提供对LiveJournal的XMLRPC和JSONRPC API的访问。XMLRPC 例子// get posts inside the journal using XMLRPCLiveJournal . xmlrpc . getevents ( { journal : '...
《Livejournal Narrow-crx插件:提升Livejournal用户体验的利器》 Livejournal Narrow-crx插件,是一款专为英语环境下的Livejournal.com用户设计的扩展程序。它的主要功能是优化网站的阅读体验,特别是针对那些内容...
Java LiveJournal Client是一款基于Java 2 SE 5.0开发的开源软件,它为用户提供了一个方便的工具,能够与LiveJournal服务进行交互,实现日志的更新和其他相关操作。这款客户端利用了LiveJournal协议,使得Java开发者...
【Python Livejournal Backup 开源项目】是一个专门针对Livejournal博客平台的备份工具,它由Python编程语言编写,旨在帮助用户方便地保存他们在Livejournal上的个人日志。该项目的核心功能是根据用户提供的用户名和...
Karaife Livejournal Client是一款开源的网络日志客户端,专为KDE桌面环境设计,它由Python编程语言实现。这款应用的核心目标是提供一个便捷、功能丰富的工具,让用户能够轻松地与基于Livejournal服务的社交网络进行...
简单的用户脚本使livejournal.com变得更好。 缩小太大的实时新闻主题。 Сужаетслишкомширокиетемыlivejournal.com。 支持语言:English
在Livejournal页面(国家、城市)上显示地理知识信息 Chrome扩展程序可在Livejournal页面上显示geo-ip信息Livejournal可以记录评论者的IP。 该工具基于记录的IP添加geo-ip信息。 您可以立即查看评论从世界的哪个地方...
博客LiveJournal客户端是一款基于JavaScript开发的应用程序,专为使用LiveJournal平台的用户设计。LiveJournal是一个流行的在线日记和社交网络服务,它允许用户创建和维护个人博客,与朋友和社区分享想法、故事和...
从LiveJournal后台发展看大规模网站性能优化方法 70 一、LiveJournal发展历程 70 二、LiveJournal架构现状概况 70 三、从LiveJournal发展中学习 71 1、一台服务器 71 2、两台服务器 72 3、四台服务器 73 4...
Pepys是完全用Java编写的LiveJournal的客户端。 它可以插入希望添加LiveJournal功能的任何Java程序中,并且可以在GPL下免费使用。