Top Banner
1
31

Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

Jun 30, 2015

Download

Documents

Yandex
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

1

Page 2: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

2

Page 3: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

3

Mongodb,  UGC  project    

 -­‐  billions  objects;    -­‐  terabytes  of  data  MongoDB;    -­‐  high  Disk  I/O;    -­‐  big  size  Indexes    -­‐  balancing  &  connec?ons  to  DB;    -­‐  troubleshoo?ng  mongodb;    

Page 4: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

4

диск

 ~6,4  billion  objects:    

Page 5: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

5

диск

 ~6  Tb  filesize:    

Page 6: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

6

диск

 ~1.5  Tb  IndexSize;    

Page 7: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

7

диск  >  6  billion  opera?ons  every  day;        

Page 8: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

8

диск  -­‐  over  50000  chunks      

Page 9: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

9

диск

Notes:      -­‐  write  global  lock  to  DB;    -­‐  no  transac?ons;    -­‐  single  threaded  chunk  moving  job;    -­‐  20000  connec?ons  limit  to  mongod/mongos;      -­‐  Mongos  unable  to  work  in  RO  mode;    -­‐  no  connec?on-­‐pool  

Page 10: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

10

Page 11: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

11

Page 12: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

12

Page 13: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

13

Page 14: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

14

DBA  at  work:  

Page 15: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

15

Usual  RS:  

Secondary  

Secondary  

Secondary  hidden  

Primary    

ReplicaSet:  

UP  UP  

UP  

UP  

UP  delay  

Page 16: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

16

Clean  hidden  and  Startup:  

Secondary  

Secondary  

Secondary  hidden  

Primary    

ReplicaSet:  

Startup  

UP  

UP  

UP  

Page 17: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

17

Recover  Secondary:  

Secondary  

Secondary  

Secondary  hidden  

Primary    

ReplicaSet:  

DOWN  

DOWN  

UP  

UP  

rsync  

Page 18: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

18

Chunk-­‐defrag  RS:  

Secondary  

Secondary  

Secondary  hidden  

Primary    

ReplicaSet:  

UP  UP  

UP  

Defrag  UP  

Defrag  UP  delay  

Page 19: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

19

Recover  Secondary:  

Secondary   Secondary  

Secondary  hidden  

Primary    

ReplicaSet:  

DOWN  

DOWN  

UP  

Defrag  UP  

rsync  

Page 20: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

20

Usual  RS:  

Secondary  

Secondary  

Secondary  hidden  

Primary    

ReplicaSet:  

UP  UP  UP  defrag  

UP  defrag  

UP  defrag  

Page 21: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

21

Disk  I/O:  

 -­‐  ext4    -­‐  raid0  и  raid10    -­‐  mount  op?ons    -­‐  dirty  pages    -­‐  SSD  

Page 22: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

22

Monitoring:  

 -­‐  db.serverStatus()    -­‐  rs-­‐indexes-­‐consistency    -­‐  indexes-­‐miss-­‐ra?o    -­‐  backgroundFlushing    -­‐  heap_usage_bytes    -­‐  connec?ons    -­‐  replica?on    -­‐  qr|qw  

Page 23: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

23

mongostat  -­‐-­‐discover:  

Page 24: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

24

Balancing:  

-­‐  sh.getBalancerState()  -­‐  moveChunk  

Page 25: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

25

Mongos:  

Page 26: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

26

Mongos  drop  tcp  cfg:  

drop  tcp  

Page 27: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

27

Mongos  drop  tcp  shard:  

drop  tcp  

Page 28: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

28

Mongos  fast  fix:  

drop  tcp  

 -­‐j  REJECT  -­‐-­‐reject-­‐with  tcp-­‐reset  

Page 29: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

29

Keepalived  config:  

Page 30: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

30

Mongos  RS  down  —  ALL  DOWN:  

Page 31: Андрей Годин - Базы данных: Документоориентированная горизонтально масштабируемая NoSQL СУБД MongoDB

31

Thank  you!  Ques?ons?  

Andrey  Godin  h=p://yandex.ru  @airesp_ya  agodin@yandex-­‐team.ru