Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
REDIS
charsyam@naver.com
데이터 분배 전략
데이터 분배
Range
Range
1~백만: 1번
백만1~2백만: 2번
Range
Range가 너무 크면
서버별 사용 리소스가
크게 차이날 수 있다.
Range
서버 추가 시에 Range 조
절이 없으면 데이터 이동
이 없다.
Range
User #1
User #10
User #1000000
User #1000001
User #1000100
User #2000000
User #2000001
User #2000200
User #3000000
S...
Modulo
Modulo
Id % 서버대수 = k
Modulo
서버 대수에 따라서 데이
터 이동이 많아짐.
Modulo
가능하면 2배씩 증가하는
게 유리.
Modulo
Logical Shard
Physical Shard
Modulo
User #1
User #4
User #7
User #2
User #5
User #8
User #3
User #6
User #9
ServerUser #1
1
Consistent Hash
서버의 추가/제거 시에
1/n 정도의 데이터만 사라
진다.
Consistent Hash
다른 방식은 데이터의 서버
위치가 고정적이지만, CH
는 유동적
Consistent Hash
A
Add A,B,C Server
A
B
Add A,B,C Server
A
B
C
Add A,B,C Server
A
B
C
1
Add Item 1
A
B
C
1
2
Add Item 2
A
B
C
1
2
3
4
5
Add Item 3,4,5
A
B
C
2
3
4
5
Fail!! B Server
A
B
C
1
2
3
4
5
Add Item 1 Again -> Allocated C
Server
A
B
C
1
2
3
4
5
1
Recover B Server -> Add Item 1
Indexed
Indexed
해당 데이터가 어디 존재하
는지 Index 서버가 따로 존
재
Indexed
해당 데이터가 어디 존재하
는지 Index 서버가 따로 존
재
Indexed
Index 변경으로 데이터 이
동이 자유롭다.
Indexed
Index 서버에 대한 관리가
추가로 필요.
Indexed
User #1
User #2000
User #1000000
User #2
User #2001
User #10000
User #3
User #6
User #5000
ServerUser #5000
3
Inde...
그외 이슈들
캐시는 얼마나 둬야 할까? 또는 사이징?
Multiget Hole 문제
로컬 캐쉬
캐시 사이징
최근의 추세는 캐시빨…
데이터량, 처리 속도등을 고려해야 함
캐시 서버가 몇대까지 죽어도 괜찮을까?
장비가 많은것 보다는 좋은 장비에 여
러 개 띄우는게 더 유리…
로컬 캐쉬
보통은 Remote Cache
Network, Latency, 성능등의 이슈
적절한 로컬 캐쉬를 사용하면 유리
Expire Time을 짧게 가져감
Multiget Hole
친구의 정보를 가져올 때…
캐시 서버가 1대에서 3대로 늘면…
정말 캐시 서버의 부하는 1/3일까요?
내 친구 모두를 가져오면…
Thank you.
Próxima SlideShare
Cargando en…5
×

Redis edu 5

  • Sé el primero en comentar

Redis edu 5

  1. 1. REDIS charsyam@naver.com 데이터 분배 전략
  2. 2. 데이터 분배
  3. 3. Range
  4. 4. Range 1~백만: 1번 백만1~2백만: 2번
  5. 5. Range Range가 너무 크면 서버별 사용 리소스가 크게 차이날 수 있다.
  6. 6. Range 서버 추가 시에 Range 조 절이 없으면 데이터 이동 이 없다.
  7. 7. Range User #1 User #10 User #1000000 User #1000001 User #1000100 User #2000000 User #2000001 User #2000200 User #3000000 ServerUser #1000005 2
  8. 8. Modulo
  9. 9. Modulo Id % 서버대수 = k
  10. 10. Modulo 서버 대수에 따라서 데이 터 이동이 많아짐.
  11. 11. Modulo 가능하면 2배씩 증가하는 게 유리.
  12. 12. Modulo Logical Shard Physical Shard
  13. 13. Modulo User #1 User #4 User #7 User #2 User #5 User #8 User #3 User #6 User #9 ServerUser #1 1
  14. 14. Consistent Hash
  15. 15. 서버의 추가/제거 시에 1/n 정도의 데이터만 사라 진다. Consistent Hash
  16. 16. 다른 방식은 데이터의 서버 위치가 고정적이지만, CH 는 유동적 Consistent Hash
  17. 17. A Add A,B,C Server
  18. 18. A B Add A,B,C Server
  19. 19. A B C Add A,B,C Server
  20. 20. A B C 1 Add Item 1
  21. 21. A B C 1 2 Add Item 2
  22. 22. A B C 1 2 3 4 5 Add Item 3,4,5
  23. 23. A B C 2 3 4 5 Fail!! B Server
  24. 24. A B C 1 2 3 4 5 Add Item 1 Again -> Allocated C Server
  25. 25. A B C 1 2 3 4 5 1 Recover B Server -> Add Item 1
  26. 26. Indexed
  27. 27. Indexed 해당 데이터가 어디 존재하 는지 Index 서버가 따로 존 재
  28. 28. Indexed 해당 데이터가 어디 존재하 는지 Index 서버가 따로 존 재
  29. 29. Indexed Index 변경으로 데이터 이 동이 자유롭다.
  30. 30. Indexed Index 서버에 대한 관리가 추가로 필요.
  31. 31. Indexed User #1 User #2000 User #1000000 User #2 User #2001 User #10000 User #3 User #6 User #5000 ServerUser #5000 3 Index Server User 5000 is in 3
  32. 32. 그외 이슈들 캐시는 얼마나 둬야 할까? 또는 사이징? Multiget Hole 문제 로컬 캐쉬
  33. 33. 캐시 사이징 최근의 추세는 캐시빨… 데이터량, 처리 속도등을 고려해야 함 캐시 서버가 몇대까지 죽어도 괜찮을까? 장비가 많은것 보다는 좋은 장비에 여 러 개 띄우는게 더 유리…
  34. 34. 로컬 캐쉬 보통은 Remote Cache Network, Latency, 성능등의 이슈 적절한 로컬 캐쉬를 사용하면 유리 Expire Time을 짧게 가져감
  35. 35. Multiget Hole 친구의 정보를 가져올 때… 캐시 서버가 1대에서 3대로 늘면… 정말 캐시 서버의 부하는 1/3일까요? 내 친구 모두를 가져오면…
  36. 36. Thank you.

×