+ All Categories

Zk

Date post: 13-Jul-2015
Category:
Upload: andrey-stepachev
View: 202 times
Download: 2 times
Share this document with a friend
Popular Tags:
24
Андрей Степачев Zookeeper, или как управлять зоопарком пятница, 25 января 13 г.
Transcript
Page 1: Zk

Андрей Степачев

Zookeeper, или как управлять зоопарком

пятница, 25 января 13 г.

Page 2: Zk

Основные принципы

пятница, 25 января 13 г.

Page 3: Zk

Файловая система

3

/

/app1

/app2

/app1/p1

name: /app1version: 10childs: [...]data: [...]

P1

/app1/p2 P2

/app1/p3P3

name: /app1/p3data: [...]session: P3

пятница, 25 января 13 г.

Page 4: Zk

FIFO обработка сообщений и А-Линеаризация записи

4

TX W

RequestProcessor

ZUB

DB

ZK ClientFIFO

ZK ClientFIFO

RR

W W W

W

TX WDB

TX W

DB

TX W

пятница, 25 января 13 г.

Page 5: Zk

Кворум и 2-х фазный коммит

5

ZK QuorumFollower

Client

2P CommitFollower

Follower

Leader

Client Client Client

пятница, 25 января 13 г.

Page 6: Zk

Консистентность

6

ZK QuorumFollower

Client

2P CommitFollower

Leader

Client Client Client

1

2

1 1

1 1 11

пятница, 25 января 13 г.

Page 7: Zk

Консистентность

7

ZK QuorumFollower

Client

2P CommitFollower

Leader

Client Client Client

1

1sync()read()

2

2 2 2

2

пятница, 25 января 13 г.

Page 8: Zk

Консистентность

8

ZK QuorumFollower

Client

2P CommitFollower

Leader

Client Client Client

sync()read()

2

2 2 2

22

2

пятница, 25 января 13 г.

Page 9: Zk

Рецепты

пятница, 25 января 13 г.

Page 10: Zk

Рецепт: Управление конфигурацией

10

/app1

/app1/config

C1 C2 C3

пятница, 25 января 13 г.

Page 11: Zk

Рецепт: Рандеву (1/2)

11

/app1

/app1/workers

W1

alive-w1

Leader

putData(ephemeral)

Listen w1-queueputData

пятница, 25 января 13 г.

Page 12: Zk

Рецепт: Рандеву (2/2)

12

/app1

/app1/workers

W1

alive-w1

Leader

Listen w1-queue Listen

task1putData

getData

пятница, 25 января 13 г.

Page 13: Zk

Рецепты: Блокировки (1/6)

13

/app1

/app1/my-lock

lock-0001

C1

пятница, 25 января 13 г.

Page 14: Zk

Рецепты: Блокировки (2/6)

14

/app1

/app1/my-lock

lock-0001

C1 C2

lock-0002

пятница, 25 января 13 г.

Page 15: Zk

Рецепты: Блокировки (3/6)

15

/app1

/app1/my-lock

lock-0001

C1 C2

lock-0002

C3

lock-0003

пятница, 25 января 13 г.

Page 16: Zk

Рецепты: Блокировки (4/6)

16

/app1

/app1/my-lock

C2

lock-0002

C3

lock-0003 lock-0004

C1

пятница, 25 января 13 г.

Page 17: Zk

Рецепты: Блокировки (5/6)

17

/app1

/app1/my-lock

C2

lock-0002

C3

lock-0003 lock-0004

C1

пятница, 25 января 13 г.

Page 18: Zk

Рецепты: Блокировки (6/6)

18

/app1

/app1/my-lock

C2 C3

lock-0003 lock-0004

C1

пятница, 25 января 13 г.

Page 19: Zk

Производительность

пятница, 25 января 13 г.

Page 20: Zk

250 clients, 100 msg in-fly, 1kb

20

пятница, 25 января 13 г.

Page 21: Zk

Масштабируемость

21

Servers 100% Reads 0% Reads

13 460k 8k

9 296k 12k

7 257k 14k

5 165k 18k

3 87k 21k

пятница, 25 января 13 г.

Page 22: Zk

Реакция на сбои

22

• 1 - follower• 2 - different follower• 3 - leader

• 4a,b,c - followers• 5 - leader• 6 - leader recovery

пятница, 25 января 13 г.

Page 23: Zk

Задержки (latency)

23

• 1kb• Синхронный create• Асинхронный delete• И так 50000 раз

servers workers 3 5 7 9

1

10

20

776 748 758 711

1831 1831 1572 1540

2740 2336 1934 1890

• средняя для 3 - 1.2ms• средняя для 9 - 1.4ms

пятница, 25 января 13 г.

Page 24: Zk

+7 916 635-23-16

[email protected]

Спасибо

Андрей Степачев

По материалам Yahoo.Research

пятница, 25 января 13 г.


Recommended