아키텍처

Index, Document를 분리하는 방법을 이용한 대용량 데이터 저장소 설계

BUST 2018. 8. 18. 20:21

Index, Document를 분리하는 방법을 이용한 대용량 데이터 저장소 설계

  • 데이터의 용량이 많아 지게되면 관계형 데이터베이스로는 한계가 있다.
    • scale out(sharding)  관계형 데이터베이스로 구현할수 있지만 Application Logic이 복잡해진다
  • index table or look-up table와 document table를  따로 구별하기 설계를 할수 있다.
  • 각각의 저장소에는 cache를 두는 방식으로 응답성을 좋게 할수 있다.
    • 각각의 cache는 데이터의 성격에따라 다르게 설정을 해야된다.
      • 실시간성 데이터, 중요성이 높은 데이터 (ex, 재고 데이터)는 TTL를 적게 두는 방식으로 취한다.
      • 잘 바뀌지 않는 데이터, 느리게 바뀌어도 문제가 없는 데이터 (ex, 상품의 타이틀)을 1분~10분 TTL를 설정을 하는 방식으로 할수 있다.
    • 읽기 요청이 들어올 경우 cache의 데이터가 ttl 유효기간이 지났을 경우 처리방법이 2가지가 있다
      • db에 read 요청을 보낸다음, 데이터가 읽은 동시에 cache의 데이터를 바꿔치기 하고 읽기에 응답한다.
      • cache의 데이터를 먼저 보낸다음 백그라운드에서 read 요청을 보내 cache 데이터를 바꿔치기한다.
  • 데이터의 중복은 허용한다. (비정규화)





'아키텍처' 카테고리의 다른 글

CQRS (Command Query Read Segregation)  (0) 2018.08.20
Log 성격을 가진 데이터의 수집 / 분석 아키텍처  (0) 2018.07.27
람다 아키텍처  (0) 2018.07.22