рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк "рд╣реЛрджреЛрдк рдореЗрдВ рд▓реБрдбреЛрдкрд░" рдХреЗ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдХреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ "рд╣реИрдбреЛрдк рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рддрд░реАрдХреЗ"
рдЬрд╝реВрдХрд┐рдкрд░ рдХреНрдпрд╛ рд╣реИ, рд╣рдбреЛрдк рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрд╕рдХрд╛ рд╕реНрдерд╛рди рд╣реИред рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЪреНрдЪрд╛рдИред рдПрдХ рдорд╛рдирдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреА рдпреЛрдЬрдирд╛ред рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рдордиреНрд╡рдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордиреНрд╡рдп рд╕рдорд╕реНрдпрд╛рдПрдВред рдЬрд╝реВрдХреАрдкрд░ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ред ZooKeeper рдбреЗрдЯрд╛ рдореЙрдбрд▓ред Znode рдЭрдВрдбреЗред рд╕рддреНрд░ред рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдЖрджрд┐рдо (рд╡рд┐рдиреНрдпрд╛рд╕, рд╕рдореВрд╣ рд╕рджрд╕реНрдпрддрд╛, рд╕рд░рд▓ рддрд╛рд▓реЗ, рдиреЗрддрд╛ рдЪреБрдирд╛рд╡, рдЭреБрдВрдб рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рддрд╛рд▓рд╛ рд▓рдЧрд╛рдирд╛)ред рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреАрдкрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ред рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдбреА.рдмреА. Zabред рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред

рдЖрдЬ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреАрдкрд░ рдХреАред рдпрд╣ рдЪреАрдЬ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рдЕрдкрд╛рдЪреЗ Hadoop рдЙрддреНрдкрд╛рдж рдХреА рддрд░рд╣, рдПрдХ рд▓реЛрдЧреЛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рдЖрджрдореА рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
, , , . . - - . . ZooKeeper тАУ , . , , .
, , . , MapReduce , , . , , . MapReduce - , . MapReduce , , , . , ZooKeeper.
, Hadoop, Yahoo! Apache. HBase. JIRA HBase, , - , . . . ZooKeeper, , , , . , Hadoop. , , , .

, - , . , , . , , ZooKeeper, . . тАУ , . HDFS, MapReduce , . , ZooKeeper. - , .

? , , , . , , , , , , - , . TCP, , . TCP . . - . . , , . , - , , . .
, , latency. , . Latency тАУ - , , .
. тАУ . -, , , . , . . . , , . .
. , - . , - Hadoop. . , . , - , , . - . .
, , -, . , , cat . тАУ Vim . , . Vim , , , - . , , .

, .
, , , . тАУ ? , . , ? , , - . - , , - , - . , -, - , ?
, . , тАУ , - .
, , , - , тАУ ? - race condition, , , - ? - . .
тАУ . , , , .
, , , , . , , , . - , , , . , , . . . . - , , .
ZooKeeper. тАУ , , , .

, . , тАУ HDFS, HBase. -, , slave-. , , , .

тАУ Coordination Service, . . , - backup stanby , . , . backup. - , , backup. Coordination Service. , .

тАУ , . , . - , . , - slaves, , , . .

, , -slaves, . , . , Cassandra, .
, . .

- , , , , . тАУ , , , . - , . . .

(), , , .

тАУ partial failures. , , - , , , , , . . .
, . тАУ , . . , .
ZooKeeper , .

, , , , , . , shared-nothing. , , , , , .
, shared memory . context switch, . . , , .

, , , . - . , , , , , , . , , , , . , .
. , , , , . . , .
. , , .
? , ? , , , . -, , - , - . - , , - . , . . , , .
тАУ group membership. - , тАУ , . , , , , . , , .
тАУ leader election, , . тАУ , - , . , , . , , , .
тАУ mutually exclusive access. . , , - , , , . - . , , -. , , locks.
ZooKeeper . , .

. - , - . , , - . .
.
- , , .

ZooKeeper . тАУ standalone, . . , . тАУ 100 , , 100 . , ZooKeeper. high availability. ZooKeeper . , . , . тАУ , , тАУ . , .
. , , . .
, - . - . , , , . . тАУ . тАУ -? . watch mechanism, , - . .

Client тАУ , ZooKeeper.
Server тАУ ZooKeeper.
Znode тАУ ZooKeeper. znode ZooKeeper , .
. тАУ update/write, - . .
, , , ZooKeeper.

ZooKeeper . , . , . znodes.
znode - , , , 10 . znode - .

Znode . . znode , .
. тАУ ephemeral flag. Znode - . , . , . , - . , .
тАУ sequential flag. znode. , 1_5. , p_1, тАУ p_2. , , , , тАУ sequential.
znode. , .

тАУ watch flag. , - . , . ZooKeeper , . , - . , - , .
, . , , .

. , , . - .
- . , - . , , .

, API . , , create znode . znode, . - , . . znode.
тАУ . , , znode . , znode, , , , .
, ┬л-1┬╗.

тАУ znode. true, , false.
flag watch, .
flag , . .
тАУ getData. , znode . flag watch. , . , , .

SetData. version. , znode .
┬л-1┬╗, .
тАУ getChildren. znode, . , flag watch.
sync , , .
, , , write, - , , , . , , , , .

. . , .
, , update/write, . create, setData, sync, delete. read тАУ exists, getData, getChildren.

, . , -. . , . . ZooKeeper? , ? , , , , ?
ZooKeeper . , znode. , , . , . , , .
getData . true. - , , , , . , - , true. , .
SetData. , ┬л-1┬╗, . . , , , . , . , , , . , , , - . , , . , , . .

тАУ group membership. , , . , . -, - , .
? workers create. . sequential , . children , , .


, Java-. , main. , . host, , . . . тАУ .
? API, . . ZooKeeper. hosts. , , 5 . , connectedSignal. , . , - . persistent. , , . . . , . , close , . , - , ZooKeeper .

- ? . , - , . , , lock1. , , lock . , getData , . . , watcher , , . . , lock, , lock , , . . . , . lock , , - .

, . , . ? , . . , . . - , . , .
- , , , . , . - , , .
, , herd effect, . . , , , , , .

, . , lock, hert effect. , id lock. , lock , , , , lock. , lock. , id, lock, . , .
id, lock, watcher , - . . . lock. , id lock, . , lock, - .

ZooKeeper? 4 . тАУ Request. ZooKeeper Atomic Broadcast. Commit Log, . In-memory Replicated DB, . . , .
, Request Processor. In-memory .

. instances ZooKeeper .
, Commit log. , , , log . .

ZooKeeper Atomic Broadcast тАУ , .
ZAB ZooKeeper. , - . , . , . , , , . . broadcasting , .
write request. , transactional update. .
рдФрд░ рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХреА рдмреЗрд╡рдХреВрдлреА рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдЪреАрдЬ, рдпрджрд┐ рджреЛ рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рд╣реЛрдЧреА, рдЕрд░реНрдерд╛рдд рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдпрдВ рдЗрд╕рд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рдФрд░ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЧрд┐рд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдСрдкрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрд╕ рд╕рдордп рд╣реБрдП рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реЛ рдЬрд╛рдПрдЧреА, рдЕрд░реНрдерд╛рдд рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрд╕реА рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрджреНрдпрддрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдВрддрд┐рдо рд░рд╛рдЬреНрдпреЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИрдВред







