Overview
오래전 메가존(현 혜택존) 서비스를 담당하던 시기, 포인트 관련된 부분에서 심각한 성능 저하 및 유효성 취약 문제가 발생하였습니다. 장비 고도화를 통해 관련 문제를 해결하기에 앞서, 서비스 로직 및 테이블 재구성을 통한 최적화 작업을 통해 문제를 해결하였습니다.
이에 관해 간단하게 소개하도록 하겠습니다.
Problems
다음과 같이 크게 두 가지 문제가 있었습니다.
- 성능 이슈
- 로그 테이블은 거대한 한 개의 테이블로 구성
- 데이터 누적에 따라 성능이 급격하게 저하
- 유효성 이슈
- 자바 어플리케이션에서만 유효성 체크, 비 정상적인 사용 존재
- 포인트가 현금처럼 사용될 수 있으므로 반드시 필요함
Solutions
1) 파티셔닝을 통한 성능 최적화
오라클 엔터프라이즈 버전에서는 테이블 파티셔닝을 제공하지만, 아쉽게도 오라클 스탠다드에서는 관련 기능이 없습니다. 즉, 어플리케이션 레벨에서 적당히 데이터 분산을 유도하는 방법 밖에는 없습니다. 데이터를 분산하는 방법으로는 여러가지가 존재하겠지만, 저는 월별로 테이블을 분산 저장하는 방식을 사용하였습니다.
[Read More]