본문 바로가기

기술스택을 쌓아보자83

데이터 중심 애플리케이션 설계 - 복제 - 다중 리더 복제 다중 리더 복제 리더에 대한 의존성이 높다. 리더가 여러개: 다중리더설정, 마스터미스터 액티브/액티브 복제 다중 리더 복제의 사용사례 다중 데이터센터 운영 데이터 센터마다 리더를 두고 복제를 진행 오프라인 작업을 하는 클라이언트 인터넷이 끊어진 동안 앱이 계속 동작해야하는 경우 이 경우 로컬 데이터베이스가 있다. 아키텍처 관점에서 보면 근본적으로 다중 리더복제와 동일하다.(구글 캘린더?) 협업 편집 실시간 협업 편집 애플리케이션: ex 구글독스 오프라인 사용 사례와 공통점이 많다. 로컬에 적용하고 이후 비동기방식으로 타 사용자의 db와 연동한다. 충돌이 없으려면 편집전 문서의 lock을 얻어야한다. [펌] 파일락(File Lock) 쓰기 충돌 다루기 동기 대 비동기 충돌감지 단일 리더: 들어온 순서대로 .. 2023. 4. 21.
데이터 중심 애플리케이션 설계 - 복제 - 복제 지연 문제- 복제 지연 문제 리더기반 복제 : read-scaling 아키텍처 쓰기는 하나의 노드에서(리더기반) 나머지 복제된 노드는 읽기 처리만 진행하면 됨 쓰기비율이 낮고 읽기 비율이 높은 경우 유용하다. 실제로는 비동기식 복제에서만 동작한다. 동기식으로 처리시 네트워크 중단 등으로 시스템 불안정 초래 또한 비동기 처리 후 과거 데이터를 보여줄 수 있음.(불일치 발생=일시적인 효과 ⇒ 최종적 일관성) 자신이 쓴 내용읽기 일반적으로 사용자는 사용자가 제출한 데이터를 읽을 수 있음. 이때 종종 새로운 데이터는 리더에게 전송하지만 팔로워에서 읽을 수 있도록 함 ⇒ 데이터가 팔로워에 반영되지 않을 경우 유실된 것처럼 보이기도 함. 이 경우 입력은 보장하나 읽기는 보장할 수 없다 ⇒ 쓰기 후 읽기 일관성의 필요성 수정 시.. 2023. 4. 20.
데이터 중심 애플리케이션 설계 - 복제 - 리더와 팔로워 복제: 네트워크로 연결된 여러 장비에 동일한 데이터의 복사본을 유지한다는 의미 복제가 필요한 이유 지리적으로 가깝게 유지해 지연 시간을 줄임 장애가 발생해도 지속적으로 동작하여 가용성 높임 장비의 수를 확충하여 읽기 처리량을 늘림 큰 데이터를 볼 때에는 파티셔닝을 살펴본다. 복제의 어려움은 변경처리에 있다. 복제를 위한 알고리즘 단일리더(single-leader): 다중리더(multi-leader) 리더없는(leader-less) 리더와 팔로워 replica: 복제된 데이터를 저장하는 각 노드 일반적인 해결책 리더기반 복제(leader-based replication) active , passive, master, slave) 리더가 되는 서버를 하나 지정한다(master, primary) 리더는 데이터.. 2023. 4. 18.
[Codewars 6kyu / Python]- datetime 패키지로 날짜 빼고 시간만 처리하기/시간 연산하기 문제 여러분은 한 기업의 컴퓨팅 전문가입니다. 특정 시간들에 대한 인풋값을 입력하면 해당 시간의 range, avg, median 값을 출력해야 합니다. 예상되는 input과 output의 형태는 아래와 같습니다. "01|15|59, 1|47|6, 01|17|20, 1|32|34, 2|3|17" => "Range: 00|47|18 Average: 01|35|15 Median: 01|32|34" - 이 문제는 날짜를 다룰 필요가 없습니다. - 시간은 60진수 바탕이기 때문에 일반적인 숫자처럼 다루기 보다는 time 형태로 변환하여 연산해야합니다. Codewars - Achieve mastery through coding practice and developer mentorship A coding pract.. 2023. 4. 16.