1. 용도 특화형 인덱싱
대규모 데이터를 다룰 경우 RDBMS로는 한계가 있다. 따라서 배치 처리로 RDBMS에서 데이터를 추출해서 별도의 인덱스 서버와 같은 것을 만들고 이 인덱스 서버에 웹 애플리케이션에서 RPC(Remote Procedure Call) 등으로 액세스 하는 방법을 사용한다.
1) RPC와 웹 API
위 그림에서 DB에서 정기적으로 corn 등으로 데이터를 추출해 2의 인덱스 서버로 넘긴다. 인덱스로는 2에서 검색용 역 인덱스를 만들어준다. 그러면 AP서버에서는 인덱스를 가지고 있는 2인덱스 서버에 RPC로 액세스 한다. 요즘은 RPC보다 웹 API라고(JSON이랑 http로 처리) 부른다.
AP서버에 인덱스를 직접 저장하지 않는 이유는 AP서버에 충분한 메모리가 탐재되어있지 않는 경우가 많아서 이다. 또한 AP서버 아키텍처 면에서 볼 때 커다란 검색 인덱스를 여러 프로세스에서 같이 사용하도록 구성하는 것은 적합하지 않다.
2) 용도 특화형 인덱싱
-위에 설명한 바와 같이 데이터를 정기적으로 뽑아내고 뽑아낸 데이터에서 데이터 구조를 구축(검색용 역 인덱스, 키워드 링크용 Tire 등(7장 +a)) 구조화 데이터를 저장한 서버를 C++로 개발, RPC로 액세스
2. 대규모 웹 애플리케이션에 있어서 이론과 실전
결론은 이론과 실전 균형을 잘 맞춰서 서비스를 실행해나가야 한다. 이론을 너무 추구해 논문을 쓸 정도의 지식을 갖추었다고 해도 막상 구현하려고 하면 구현하기 위해 필요한 여러 배드 노하우가 표출되고, 이론 없이 단순히 테크닉만으로 그때그때 문제만 해결해 나가면 서비스가 점점 커지며 그런 단순한 테크닉 만으로 해결할 수 없는 시기가 온다. 따라서 이론과 실전 균형 있게 지식을 쌓아나가야 한다.
'개발관련 도서 > 대규모 서비스를 지탱하는 기술' 카테고리의 다른 글
5. 압축 프로그래밍 (0) | 2021.05.09 |
---|---|
3-2. 분산을 고려한 MySQL 운용 (0) | 2021.05.05 |
3-1. OS 캐시 (0) | 2021.05.03 |
3장. 대규모 데이터를 다루기 위한 기초지식(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.03 |
2-1.규모조정, 확장성(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.02 |