TIL | DB 동시성

Yeseul Han·2023년 9월 16일
0
post-thumbnail
  • 서버 증설은 되었는데, DB 부하가 많이 감.
    한시적으로 이벤트를 주최해서 트래픽 급증

DB 리소스 이용률 또한 높아 서버 및 DB에 많은 부하를 주기 시작하였는데 이 상황을 어떻게 극복하는 것이 좋을까?

인스턴스가 10~20~30 DB 이슈가 없게 처리해야

-작업성

이쪽에서 읽은 정보가 저쪽에서 읽은 정보랑 달라서: 즉 동시성 문제 어떻게 극복하는가?!

  • 회사에서 동시성문제는 제일 가장 많이 묻는 인터뷰Q
  • 조회를 분리한다. 왜냐면 조회가 가장 많이 일어나니까ㅇㅇ = CQRS패턴

  • REDIS 처럼 cashe를 사용한다

  • DB lock. 내가 지금 쓰고 있으니까 너 쓰지마 , <- 근데 락 때문에 어려움 = "분산 락"

  • DB 쿼리가 느리다 : 백발백중 조인관계가 많기 때문. ㅎㅎㅎㅎ

그리고 foreign키 삭제가 일어나면 cascade가 일어나면서 db락이 걸림. 그래서 락이 걸린 db가 느려지는 것이다.!! 이거 더 공부할 필요가 있음.
=> foreignkey를 쓰지 말자는 =>그냥 foreign가 아닌 pk값을 들고 있어도 필요한 경우만 pk값을

우린 백엔드 개발자로 db만 공부할것 아니기 때문에 그럼 foreignkey 없이 가는게 나을수도 있음.

오토스케일링 등을 통해 컨테이너 기반 스케일 아웃 드을 알아보았다.

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-EC2-%EC%98%A4%ED%86%A0-%EC%8A%A4%EC%BC%80%EC%9D%BC%EB%A7%81-ELB-%EB%A1%9C%EB%93%9C-%EB%B0%B8%EB%9F%B0%EC%84%9C-%EA%B0%9C%EB%85%90-%EA%B5%AC%EC%B6%95-%EC%84%B8%ED%8C%85-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

profile
코딩 잘하고 싶다

0개의 댓글