해결된 질문
작성
·
188
1
4분 50초 경
" rack 전체가 뻗는것 보다 노드 하나 뻗는 확률이 더 올라간다? "
라고 해주셨는데 잘 이해가 가지 않아서 질문드립니다.
제가 이해한 바로는
결국 신뢰성과 가용성 둘중 하나는 포기를 해야하고 그 둘 사이의 타협적 결정을 잘 해야 한다.
가용성을 위해 단일 노드에 모든 복제본을 둘 경우 속도는 빠르지만 신뢰성 보장이 어렵고 장애 대응이 불가능 하다.
신뢰성을 위해 복제본을 모든 데이터 센터 혹은 많은 가상 노드에 복제해둘 경우 신뢰성은 극한으로 올라가지만 데이터를 가져오는데 시간이 너무 오래결려 가용성이 떨어진다.
그래서 그 둘 사이의 타협점을 구한 것이 Replica Placement다.
위처럼 이해하면 될까요??
답변 2
2
안녕하세요 최지혁님,
우선 제 강의를 수강해주셔서 감사하고 금주에 외부일정이 이제 마무리 되어서 답변해드립니다.
rack 전체가 뻗는것 보다 노드 하나 뻗는 확률이 더 올라간다?
저도 다시 들어보았는데 구두로 설명하다보니 다소 어감의 차이가 있을 수도 있겠네요. 이해하신바처럼 별도의 Rack 전체에 문제가 생기는 것 보다 단일 노드에 문제가 생길 확률이 보다 높으므로, (흐름을 이어서 얘기하면) 단일 노드에 (신뢰성을 고려하지 않고) replica 전체를 저장할 경우 그 노드 자체가 모종의 문제로 인해 문제가 생길경우 복제본들이 다 사용할 수 없는 현상이 나타날 수 있습니다.
그래서 이를 Hedging 하기 위해서 Replica Placement 기반하여 적절히 복제본을 배치하게 됩니다.
위에서 "가용성을 위해" 부분을 제외하고 이해하신 부분이 맞습니다. 극한으로 쓰기속도 High 처리하 하기 위해서 단일 노드에 모든 복제본을 배치할 경우, Trade off로 신뢰성이 무너지게 됩니다. 이에 맨 위에서 언급한 것처럼 그 노드에 문제가 생기면 복제본을 가져올 곳이 없으므로
원활한 장애대응을 할 수 없게 됩니다.
신뢰성과 대역폭을 비교해서 예를 들은 이유는 "수강생분 또는 학생분들이 해당 replica placement에 대해 처음 들었을때, 왜 이렇게 를 만들었을까?" 라는 의구심이 생길 수 있으므로, 단순 암기가 아닌 조금더 논리적으로 이해하고 숙지하기 위해서 예를 들었다고 참고해주시면 좋을 것 같습니다. 😀
0