+ All Categories
Home > Documents > Horizontally scaled data processing architecture Using Redis @

Horizontally scaled data processing architecture Using Redis @

Date post: 28-Dec-2016
Category:
Upload: vuanh
View: 218 times
Download: 2 times
Share this document with a friend
22
XXX Horizontally scaled data processing architecture Using Redis @
Transcript
Page 1: Horizontally scaled data processing architecture Using Redis @

XXX

HorizontallyscaleddataprocessingarchitectureUsingRedis

@

Page 2: Horizontally scaled data processing architecture Using Redis @

About me

Ophir Hordan Member of Jfrog swamp Leading Bintray development

Page 3: Horizontally scaled data processing architecture Using Redis @

Bintray – Leading Distribution platform – Support distribution of Maven,

Debian, RPM, Docker, nuget…. – Use CDN for fast download – Runs in multiple site around the

world

Page 4: Horizontally scaled data processing architecture Using Redis @

Some Numbers ___________

Packages 300k

Downloads 900m/Month

Page 5: Horizontally scaled data processing architecture Using Redis @
Page 6: Horizontally scaled data processing architecture Using Redis @
Page 7: Horizontally scaled data processing architecture Using Redis @
Page 8: Horizontally scaled data processing architecture Using Redis @

Services

– Download binaries – Web application – REST API

– Backend micro services

Page 9: Horizontally scaled data processing architecture Using Redis @
Page 10: Horizontally scaled data processing architecture Using Redis @

The Layout

UI & REST API

MongoDB

Download Server

CouchDB

Index Calculation

Async Process

Event Processing

Event Processing

Page 11: Horizontally scaled data processing architecture Using Redis @

No single point of failure

Page 12: Horizontally scaled data processing architecture Using Redis @

True distribution

Page 13: Horizontally scaled data processing architecture Using Redis @

Quiet period

Page 14: Horizontally scaled data processing architecture Using Redis @

Data Sharding

Page 15: Horizontally scaled data processing architecture Using Redis @
Page 16: Horizontally scaled data processing architecture Using Redis @

and Twemproxy aka nutcracker Twemproxy

Page 17: Horizontally scaled data processing architecture Using Redis @

The flow Service

Twemproxy

Micro Service

Twemproxy

Page 18: Horizontally scaled data processing architecture Using Redis @

DB0InboundData

DB1Queuemanagementandquiteperiod

DB2WorkingDBandretriescounter

-ZsetbyEmestemp-Hashfordatapayload

HashkeysValuewithdatapayload

-Hashfordatapayload-HashforretrycounEngandrecoverydata

Redis structure LUAScanallkeysMovetodb1

zrangeByScore(currentEmestampminus5seconds)

Page 19: Horizontally scaled data processing architecture Using Redis @

Service Pod Microservice Redis

Outbound Twemproxy

Redis

Pod

Pod

Inbound Twemproxy

Microservice

Page 20: Horizontally scaled data processing architecture Using Redis @

Things we learned on the way… •  Multiple values in single key is problematic to

monitor •  aof file disk flush settings has big impact on

Redis performance •  No official package of Redis and Twemproxy •  Twemproxy only support single Redis db •  Redis can easily hold Millions of keys •  Protocol buffer works well as Redis document •  Twemproxy doesn't have fail over •  Twemproxy has limited sharding support (was

good enough for us)

Page 21: Horizontally scaled data processing architecture Using Redis @

QUESTIONS?

Page 22: Horizontally scaled data processing architecture Using Redis @

Recommended