본문 바로가기

데이터엔지니어링3

데이터 중심 애플리케이션 설계 - 분산시스템의 골칫거리 분산 시스템의 골칫거리 잘못될 가능성이 있다면 잘못된다 ㅠㅠ 결함과 부분 장애 우리는 소프트 웨어를 결정적으로 설계한다. 하지만 네트워크로 연결된 여러 컴퓨터에서 실행되는 소프트웨어는 오류가 날 수 있다. 부분 장애: 어떤 부분은 잘 동작하지만 어떤 부분은 예측할 수 없는 방향으로 고장 비결정적이다. 클라우드 컴퓨팅과 슈퍼컴퓨팅 대규모 컴퓨팅 구축 방법에 관한 철학 한쪽 끝에 고성능 컴퓨팅이 있다(high-performance computing, HPC) 다른 극단에는 클라우드 컴퓨팅이 있다. 사용ㅇ컴퓨터, 신축적, 주문식 자원할당(elastic, on-demand), 계량결제 전통적인 기업형 데이터센터는 이 두 극단의 중간지점에 있다. 철학에 따라 결함 처리 방법도 다르다. 슈퍼컴퓨터: 단일 노드처럼 .. 2023. 4. 28.
데이터 중심 애플리케이션 설계 - 트랜잭션 트랜잭션 트랜잭션은 수십년동안 여러 내결함성 결여로 인해 발생되는 문제를 해결하는 메커니즘으로 채택되어 왔다. 데이터베이스에 접속하는 애플리케이션에서 프로그래밍모델을 단순화 하려는 목적으로 만든 것이다. 안전성보장: safety guarantee: db에서 트랜잭션 사용을 통해 어플의 잠재적 오류와 동시성 문제를 무시할 수 있다. 항상 트랜잭션이 필요한 것은 아니다.‘ 이번장의 중요 질문: 트랜잭션이 필요한지 아닌지 어떻게 알 수 있을까? 애매모호한 트랜잭션의 개념 관계형 데이터베이스는 거의 모두 트랜잭션을 채택하는 경우가 많고, 비관계형 베이스는 채택하는 경우도, 아닌 경우도 있다. ⇒ 이 과정에서 트랜잭션의 의미가 약화되었다. ACID의 의미 원자성(atomicity), 일관성 (consistency.. 2023. 4. 26.
데이터 중심 애플리케이션 설계 - 파티셔닝 파티셔닝 샤딩 : 데이터를 파티션으로 쪼갤 필요가 있다. 파티션 : region, tablet, vnode, vbucket 처럼 서비스마다 쓰이는 용어가 다양하다. 데이터 단위가 하나의 파티션에 속한다. 파티셔닝을 원하는 주된 이유는 확장성이다. ⇒ 분산하여 질의 부하를 감소시킴 트랜잭션 기반인지, 분석 기반인지에 따라 시스템을 튜닝하는 방법은 다르지만, 기본적으로 둘ㄷ ㅏ파티셔닝의 원칙이 적용된다. 파티셔닝과 복제 보통 복제와 파티셔닝을 함께 적용해 각 파티션의 복사본을 여러노드에 적용한다. 한 노드에 여러 파티션을 저장할 수도 있다. 각 파티션마다 리더파티션이 있는 구조 키-값 데이터 파티셔닝 파티셔닝의 목적은 질의부하를 노드사이에 고르게 분산시키는 것이다. Skewed: 파티셔닝이 고르게 이루어지지.. 2023. 4. 24.