elasticsearch
Elasticsearch Solo System to Db and General System Change Db Selection Process

elasticsearch 단독 체제에서 RDB 를 병행하는 체제로 전환하기 (1부, 2024-04-17 기준 미완성, 현재 작성중)

현재 사용하던 서비스가 로그 조회 기능을 메인으로 시작되어 elasticsearch 단독 체제로 사용중에 있었으나

몇가지 이슈사항들이 발생하여 RDB 를 병행하는 방식으로 체제 전환을 고려하게 되었다.

elasticsearch 단독 체제의 문제점

태생이 다름

elasticsearch검색 엔진으로 태어났다 주 목적이 검색 이다 rdb저장소로 태어났다 주 목적이 저장 이다

위와 같은 이유로 각자의 메인 역할이 있다 물론 둘다 저장검색 이 가능하나 메인 기능이 아닌 어떻게 보면 부가기능이므로 한계가 명확하다

1. 높은 메모리 점유율

elasticsearch 는 메모리를 많이쓴다

그 이유는 주 목적이 검색 이기 때문인데,

검색의 중요 요소는 정확성속도 이기 때문이다

구글에서 키워드를 입력하고 검색 버튼을 눌렀을 때 검색 결과를 보기 까지 10초 이상이 걸린다고 생각하면

많은 스트레스가 예상된다.

그렇기 때문에 elasticsearch 는 검색 성능을 극대화하기 위하여 작업 처리속도가 느린 보조기억장치(하드디스크) 에서 데이터를 바로 검색하기 보다는

메모리 캐싱을 적극적으로 활용하여 높은 검색 성능을 발휘환다.

대표적으로 캐싱되는 데이터들은 아래와 같다

필드 데이터 캐시

쿼리 캐시

샤드 요청 캐시

도큐먼트 캐시

2. ACID 미지원

3. Deep Paging 불가(가능하지만 권장하지 않음)