목록스터디 (9)
생각해보기
검색 시스템의 아키텍처 검색이 가능하기 까지 크롤링 저장 인덱싱 검색 스코어링 결과 표시 처음은 검색할 대상 문서를 가져와야 한다. 대상 문서가 있다면 웹 크롤러를 만들어서 대량 문서를 가져오는 작업이 필요하다. → 가져온 문서를 어떻게 저장할 것인가 문제가 있다. 예를 들어 하나의 db에 저장하면 db가 장애날 경우 복원할 수 없다 따라서 분산 데이터 베이스에 저장해야 한다 가져온 문서로부터 인덱스를 구축하는 것이 필요하다 가져온 문서가 얼마나 정확한지 평가하는 랭킹이 필요하다 전문 검색의 종류 grep 형 : 검색 대상 문서를 처움부터 전부 읽는, 단순한 아키택처 장점 : 즉시성이 좋다. 즉 문서가 갱신되더라도 바로 검색할 수 있으며 검색 누락이 없다. 단순해서 병렬 처리도 간단한다. 단점 : 속도가..
대규모 스터디 DB 스케일 아웃 전략 대규모 서비스 OS 캐시 적중률을 높이기 위해 데이터량이 물리 메모리보다 적게 유지하는 것이 좋다. 따라서 대량의 데이터를 저장하는 테이블은 레코드가 가능한 작게 설계할 것 테이블 전략 정규화를 통해 테이블 분리해 테이블 자체의 레코드 수를 줄인다. 레코드 수를 줄여 필요한 부분만 OS캐시의 적중률을 높이는 방식으로 활용할 수 있다 인덱스를 통해 데이터 탐색 최소화 B트리 VISUAL 사이트 : https://www.cs.usfca.edu/~galles/visualization/BTree.html B+트리 VISUAL 사이트 : https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html B트리를 쓰는 이유 장점 B트..

동시에 여러 개의 프로세스가 동일한 자원을 획득하기 위해 경쟁하는 것 - 경쟁상황 경쟁 상황에서는 특정 순서에 따라 값이 다르게 나올 수 있으므로 동기화가 필요하다 임계구역 - 다른 프로세스와 공유하는 자원 임계구역에서 동기화를 하는 방법 상호배제 : 임계구역에서 프로세스가 수행되는 동안 다른 프로세스는 임계구역에 들어갈 수 없다 진행: 임계구역을 들어가기 위해 대기한 프로세스들중 적절하게 선택해야 한다 한정된 대기 : 기아현상을 막기 위해 임계구역에 들어간 프로세스가 계속해서 임계구역을 점유할 수 없다 동기화를 하는 방법 하드웨어 방법 메모리 장벽 캐시나 레지스터에 값을 캐싱하는 데 각 코어마다 캐싱하는 데이터의 값이 다를 수 있다. 따라서 스레드 실행 도중 메모리 장벽 연산을 만나면 변경된 값을 메모..