본문 바로가기

6장4

[빅데이터 저장 및 분석을 위한 NoSQL & Redis] Chapter 6 - Redis Cluster 시스템 & 로그 모니터링 6.1 복제 & 분산 시스템 개요 자원 공유 서버 자원 제한적, 과부하 시 다른 서버 자원 활용으로 효율성 증가 성능 향상 과부하 발생 시 로드 밸런싱을 통해 자원 분배 가능 안정성 복제 서버로 장애 대체하여 작동 데이터 참조 가능해 위험 분산 가능 Redis: 마스터-슬레이브, 마스터-슬레이브-센티널, 파티션 클러스터로 복제, 분산처리 가능 Partition 유형 범위 파티션 (Range Partition) Key-Value를 서버에 분산 저장 서버 대수 결정에 따라 저장 위치 결정 서버에 저장할 데이터 양 불균형 문제 발생 가능 해시 파티션 (Hash Partition) Hash 알고리즘으로 데이터 분산 저장 Partition 구현 방법 Client Side Partitioning 사용자가 데이터 분.. 2023. 8. 20.
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 6장 키-값 저장소 설계 키-값 저장소 설계 키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스이다. 이 저장소에 저장되는 값은 고유 식별자를 키로 가져야한다. 키와 값 사이의 이런 연결관계를 “키-값” 쌍이라고 지칭한다. 키-값 쌍에서의 키는 유일해야 하며 해당 키에 매달린 값은 키를 통해서만 접근할 수 있다. 키는 일반 텍스트일 수도 있고 해시값일수도 있다. 성능상의 이유로 키는 짧을수록 좋다. 키-값 쌍에서의 값은 문자열일 수 도 있고 리스트일 수도 있고 객체일 수도 있다. 키-값 저장소는 보통 값으로 무엇이 오든 상관하지 않는다. 키-값 저장소로 널리 알려진 것으로는 아마존 다이나모, memcached, 레디스 같은 것들이 있다. 문제 이해 및 설계 범위 확정 완벽한 설계는 없다. 읽기, 쓰기 그리고 .. 2023. 2. 28.
[쉽게 배우는 운영체제] ch.6 프로세스 동기화 - 연습 & 심화 문제 연습 문제 1. 2개 이상의 프로세스가 서로의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 무엇이라 하는가? 교착 상태 (dead lock) 2. 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 나타내는 방향성이 있는 그래프? 자원 할당 그래프 (resource allocation graph) 3. 네 가지 교착 상태 필요조건에 대한 설명 상호 배제 (mutual exclusion) : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적 자원이어야 함. 비선점 (non-preemption): 한 프로세스가 사용중인 자원은 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다. 점유와 대기 (hold and wait): 프로세스가 어떤 자원을 할당 .. 2022. 11. 6.
[만들면서 배우는 클린 아키텍처] Chapter6. 영속성 어댑터 구현하기 CH 6. 영속성 어댑터 구현하기 1. 의존성 역전 서비스가 영속성 기능을 사용하기 위해 포트 인터페이스를 호출 육각형 아키텍처에서 영속성 어댑터는 주로 아웃고잉 어댑터 => 앱에서 호출하기 때문, 반대의 경우는 없다. 포트는 앱과 영속성 사이의 간접적 계층 영속성 문제에 신경쓰지 않고 도메인 코드 개발 목적 영속성 계층에 코드 의존성을 없앰 이럴 경우, 영속성 코드를 변경하더라도 코어 코드에 영향이 없음 런타임에도 여전히 앱이 영속성 코드에 의존하고 있다. 인터페이스 계약을 만족하는 한 영속성 코드 수정은 문제가 없다. 2. 영속성 어댑터의 책임 입력을 받는다. 주로 도메인 엔티티, DB 연산 전용 객체 입력을 데이터베이스 포맷으로 매핑한다. JPA Entity 객체 매핑 JPA를 제외한 기술도 고려 .. 2022. 10. 31.
반응형