하위 문자열 색인 동기화
소스 속성이 변경되면 하위 문자열 색인의 데이터가 동기화되어야 합니다. 새 객체 작성(삽입), 기존 객체의 속성 수정(업데이트) 또는 객체 삭제(제거) 작업을 수행하려면 하위 문자열 색인의 데이터를 업데이트해야 합니다.
다음은 하위 문자열 색인을 해당 소스 속성과 동기화하는 데 사용할 수 있는 옵션입니다.
• 이벤트 기반 동기화
• 예약된 백그라운드 질의 처리
• 수동 동기화
하위 문자열 색인마다 서로 다른 동기화 방법을 사용할 수 있습니다. 각각의 개별 하위 문자열 색인 및 작업 유형(삽입, 업데이트 또는 제거)을 동기화를 위해 별도로 구성할 수 있습니다. 예를 들어, 삽입 및 업데이트 작업에는 이벤트 처리를 사용하고 제거 작업에는 백그라운드 질의 처리를 사용할 수 있습니다.
이벤트 기반 동기화
이벤트 기반 동기화는 삽입, 업데이트 또는 제거 이벤트에 대해 수행될 수 있습니다. 이벤트 기반 동기화가 활성화된 경우, 소스 속성은 원래 작업과 동일한 트랜잭션에 있는 하위 문자열 색인과 동기화됩니다. 변경 사항이 하위 문자열 색인을 사용하는 모든 질의에 즉시 반영됩니다. 이 옵션의 단점은 작업의 처리 시간이 늘어난다는 것입니다.
이벤트 기반 동기화는
구성 파일에서
synchronizeOnInsert,
synchronizeOnRemove 및
synchronizeOnUpdate 특성을 사용하여 구성합니다. 이 동기화 옵션은 기본적으로 비활성화되어 있습니다.
예약된 백그라운드 질의 처리 동기화
예약된 백그라운드 질의 처리를 사용하도록 동기화를 구성한 경우 구성 파일을 기준으로 예약된 질의가 정기적으로 실행됩니다. 예약된 질의 처리는 이 기간 동안 실행되어야 할 하위 문자열 색인 및 작업 유형을 결정합니다. 이러한 개별 작업을 실행하는 데 별도의 처리 질의가 사용됩니다. 삽입 및 업데이트 작업의 경우 전체 소스 테이블 또는 가장 최근 변경 사항(마지막 처리 이후의 변경 사항)이 처리될 수 있습니다. 제거 작업의 경우 전체 하위 문자열 색인만 처리될 수 있습니다.
예약된 백그라운드 질의 처리 동기화는
구성 파일에 지정된 기간 특성(
synchronizationSchedulePeriod) 및 간격 특성(
scheduleSynchronizeFullInsertInterval,
scheduleSynchronizeFullRemoveInterval,
scheduleSynchronizeFullUpdateInterval,
scheduleSynchronizeRecentInsertInterval 및
scheduleSynchronizeRecentUpdateInterval)을 사용하여 구성합니다.
구성한 기간 및 간격 특성에 따라 동기화 빈도가 결정됩니다. 예를 들어, 기간이 10초이고 간격이 30(기간)일 경우 동기화 빈도는 300초마다 한 번입니다. 간격 값이 0 미만이면 질의 처리를 사용하는 동기화가 수행되지 않습니다. 간격 값이 0이면 메소드 서버가 시작될 때 한 번만 동기화가 수행됩니다.
예약된 백그라운드 질의 처리는 하위 문자열 색인 처리 시간으로 인해 소스 객체에 대한 작업에 영향을 주지 않습니다. 소스 객체에 대한 작업과 하위 문자열 색인 동기화 간에 지연이 발생합니다. 따라서 이 지연 시간 내에 수행된 질의는 소스 객체의 현재 상태와 일치하지 않을 수 있습니다.
수동 동기화
수동 동기화는 subStringIndexTool과 함께 sync 작업을 사용하여 수행합니다. 이 작업은 메소드 서버에서 지정된 하위 문자열 색인에 대해 즉시 전체 동기화를 실행합니다.