Real-Time Delivery Architecture at Twitter

  Рет қаралды 56,315

Parleys

Parleys

8 жыл бұрын

With hundreds of millions of users, Twitter operates one of the world's largest real-time delivery systems, large enough and pervasive enough to exert noticeable "pressure" on the overall internet itself. At steady state, Twitter receives thousands of tweets a second that it needs to deliver to disks, in-memory timelines, email, and mobile devices. The name of the game for Twitter is "now", so those deliveries, which multiply according to the graph of who follows whom, need to occur in real-time. In this session, we will dive into both the "write path" and "read path" of Twitter to understand the architecture which supports those tweets, and also how Twitter serves them through one of the world's largest web sites.
Author:
Attila Szegedi
Attila Szegedi is a Principal Member of the Technical Staff at Oracle, working on dynamic language features on the Java platform and the Nashorn JavaScript runtime for the JVM. Before joining Oracle, Attila worked as a Staff Engineer in Twitter's Runtime Systems group. He is also known for his work on several Open Source projects, most notably he is a contributor to Mozilla Rhino, an earlier JavaScript runtime for the JVM, a contributor to Kiji, Twitter's server-optimized Ruby runtime, the author of Dynalink, the dynamic linker framework for languages on the JVM, as well as one of the principal developers of the FreeMarker templating language runtime.

Пікірлер: 15
@aneeinaec
@aneeinaec 2 жыл бұрын
The best article ever
@gokukakarot6323
@gokukakarot6323 3 жыл бұрын
He has exactly my thoughts.
@ravitp
@ravitp 3 жыл бұрын
It would be great if could share the presentation.
@prarabdhjoshi9083
@prarabdhjoshi9083 6 жыл бұрын
I would really appreciate it if anyone can answer this question. When they say that the data from the write api comes in and it goes to army of redis instances and does a fan out write, how does it actually find where (in which redis instance) the user timeline for the followers is present? Does that also come from the social graph service? If so, how does social graph service keep track of which redis instance has which users timeline? Basically, I am trying to understand how do we know that we need to query a particular redis instance for this user's timeline.
@deepakkansl
@deepakkansl 6 жыл бұрын
I am not sure about this case but most of the databases use sharding (horizontal partitioning) where they partition the data based on some key using hashing (consistent hashing mostly). The social graph service must be returning user ids of the followers to the fan out nodes. The fan out nodes must then be determining the exact redis instance by applying the same hashing algo to the follower's user ids. Again, It's a guess.
@25pranjala
@25pranjala 5 жыл бұрын
As per my understanding, they use a hash lookup using the user ID to locate the redis instance that holds the particular timeline
@vinodc6541
@vinodc6541 3 жыл бұрын
I believe they use consistent hashing. He also mentioned they have a replication factor, which means data would be present on at least replication factor number of instances. There are multiple strategies on how this replication is done within nodes in the ring. I guess that's a discussion for a different day.
@prarabdhjoshi9083
@prarabdhjoshi9083 3 жыл бұрын
Thanks everyone! That cleared it up.
@yaroslav1811
@yaroslav1811 4 жыл бұрын
One question! How it stores an element in a list with twitterid, userid and bits to get only 8+8+4 bytes? redis use string as data type...
@sthirumalai
@sthirumalai 3 жыл бұрын
Redis stores integers in their integer representation, so for string values that actually hold an integer, there is no overhead for storing the string representation of the integer. redis.io/commands/incr#:~:text=Redis%20stores%20integers%20in%20their,string%20representation%20of%20the%20integer.
@johncenakiwi
@johncenakiwi 5 жыл бұрын
Gilfoyle?
@domaincontroller
@domaincontroller 3 жыл бұрын
09:07 Redis, memchache
@adammarek8822
@adammarek8822 6 жыл бұрын
How old is this talk?
@Quisl
@Quisl 6 жыл бұрын
The slides say its from 2013
@preguntoncojonerocabron1746
@preguntoncojonerocabron1746 5 жыл бұрын
code and code ?? REAL WORLD samples ? Demos are cool, but it is time to talk about the real world! The Succinctly series This frustration translated into a deep desire to produce a series of concise technical books that would be targeted at developers working on the Microsoft platform. We firmly believe, given the background knowledge such developers have, that most topics can be translated into books that are between 50 and 100 pages. This is exactly what we resolved to accomplish with the Succinctly series. Isn’t everything wonderful born out of a deep desire to change things for the better?
Scaling Facebook Live Videos to a Billion Users
51:31
InfoQ
Рет қаралды 87 М.
100😭🎉 #thankyou
00:28
はじめしゃちょー(hajime)
Рет қаралды 56 МЛН
Pray For Palestine 😢🇵🇸|
00:23
Ak Ultra
Рет қаралды 35 МЛН
Кәріс өшін алды...| Synyptas 3 | 10 серия
24:51
kak budto
Рет қаралды 1,1 МЛН
UFC 302 : Махачев VS Порье
02:54
Setanta Sports UFC
Рет қаралды 1,3 МЛН
Keynote: Twitter's search architecture
1:01:02
LuceneSolrRevolution
Рет қаралды 27 М.
How Slack Works
49:54
InfoQ
Рет қаралды 151 М.
Scaling Pinterest • Marty Weiner • GOTO 2014
45:53
GOTO Conferences
Рет қаралды 25 М.
Design Twitter - System Design Interview
26:16
NeetCode
Рет қаралды 452 М.
Top 5 Most Used Architecture Patterns
5:53
ByteByteGo
Рет қаралды 212 М.
How Uber scaled its Real Time Infrastructure to Trillion events per day
39:41
Twitter System Design | System Design Interview Question
47:54
codeKarle
Рет қаралды 109 М.
The Illusion of Execution
52:43
Parleys
Рет қаралды 1,3 М.
ЭТОТ ЗАБЫТЫЙ ФЛАГМАН СИЛЬНО ПОДЕШЕВЕЛ! Стоит купить...
12:54
Thebox - о технике и гаджетах
Рет қаралды 150 М.
Нашел айфоны в мусорке!
0:32
По ту сторону Гугла
Рет қаралды 242 М.
Carregando telefone com carregador cortado
1:01
Andcarli
Рет қаралды 2,3 МЛН
ПРОБЛЕМА МЕХАНИЧЕСКИХ КЛАВИАТУР!🤬
0:59
Корнеич
Рет қаралды 3,7 МЛН
wyłącznik
0:50
Panele Fotowoltaiczne
Рет қаралды 24 МЛН