분산 라우팅 테이블 검색
애플리케이션이 DRT(분산 라우팅 테이블)를 검색하려면 먼저 검색 쿼리를 만들어야 합니다. 원하는 키 값은 DrtStartSearch 함수가 호출될 때 애플리케이션에서 지정합니다. 검색 동작은 DRT_SEARCH_INFO 구조에서 애플리케이션에서 지정한 정보에 따라 결정됩니다.
일반적으로 검색에서 결과를 검색할 때 애플리케이션 이벤트와 검색이 끝날 때 다른 애플리케이션 이벤트가 신호를 보냅니다. 그러나 fIterative 가 DRT_SEARCH_INFO 설정되면 그 과정에서 각 노드와 접촉할 때 애플리케이션 이벤트를 신호를 받을 수 있습니다.
이벤트가 신호를 받은 후 애플리케이션은 결과에 대해 DrtGetSearchResult 함수를 호출합니다. 반환된 코드가 S_OK 경우 결과는 API에서 반환된 DRT_SEARCH_RESULT 구조에서 가리켰습니다. 반환된 결과는 DRT_SEARCH_INFO 지정된 값 범위에 속합니다. 검색에서 일치하는 항목을 찾지 않는 경우 결과 반환이 끝나면 DRT_E_NO_MORE 값만 반환됩니다.
다음 정보는 DRT_SEARCH_INFO 포함된 멤버가 애플리케이션이 DRT 인프라의 검색 동작을 구체적으로 지시하도록 허용하는 방법을 자세히 설명합니다.
fAllowCurrentInstanceMatch
기본적으로 DRT 검색 결과에는 로컬 노드 외부에서 찾은 일치 항목만 포함됩니다. fAllowCurrentInstanceMatch를 설정하면 검색 결과에 로컬 DRT instance 있는 일치 항목도 포함됩니다.
cMaxEndpoints
검색에서 반환된 결과의 수량 및 범위는 애플리케이션에서 cMaxEndpoints (수량) 및 pMinimumKey 및 pMaximumKey (범위) 값을 사용하여 지정하고 DRT_SEARCH_INFO 참조합니다.
cMaxEndpoints = 1인 경우 DRT 인프라는 키를 검색하여 pMinimumKey 및 pMaximumKey 값으로 지정된 범위 내에서 일치하는 항목을 반환합니다DRT_SEARCH_INFO. 이 일치 항목은 정확히 일치하거나 범위 내에서 가장 가까운 일치일 수 있습니다. 일치하는 항목을 찾을 수 없으면 DRT_E_NO_MORE 반환됩니다.
cMaxEndpoints > 1이면 DRT 인프라는 cMaxEndpoints 값까지 범위 내에서 일치 항목을 반환합니다. 반환된 일치 항목은 범위 내에서 정확한 일치 또는 가장 가까운 일치 결과를 포함할 수 있습니다. 또한 pMinimumKey 및 pMaximumKey 가 동일한 값으로 설정된 경우 해당 값에 대해서만 검색이 수행되고, 찾을 수 없는 경우 DRT_E_NO_MORE 반환합니다.
fAnyMatchInRange
fAnyMatchInRange 멤버는 첫 번째 일치 항목이 지정된 범위 내에 있는 후 검색이 중지되는지 또는 DrtStartSearch API에 지정된 키와 가장 가까운 일치 항목에 대한 검색이 계속되는지 여부를 나타냅니다. fAnyMatchInRange가 설정되면 DRT_SEARCH_INFOcMaxEndpoints의 지정된 값에 관계없이 cMaxEndpoints = 1을 사용하여 검색이 수행됩니다.
fIterative
fIterative 멤버는 검색 중에 DRT 인프라에서 연결한 각 노드에 연결된 키/엔드포인트 데이터가 DRT_SEARCH_RESULT 통해 애플리케이션에서 사용할 수 있게 되었는지를 지정합니다. fIterative를 TRUE로 설정하면 cMaxEndpoints = 1 값이 강제로 적용됩니다. DRT에 대한 검색 쿼리 내에서 fIterative 를 TRUE 로 설정하면 각 노드 또는 "홉"과 접촉한 후 애플리케이션이 다시 호출됩니다. 각 홉 결과에는 DRT가 다음에 검색할 노드를 나타내는 키가 포함됩니다. 홉 결과는 drtGetSearchResult를 통해 DRT_MATCH_INTERMEDIATE 결과로 반환됩니다.
pMinimumKey 및 pMaximumKey
pMinimumKey 및 pMaximumKey 멤버를 사용하여 범위 내에 있는 키를 검색할 수 있습니다. fAnyMatchInRange 멤버가 FALSE로 설정된 경우 DRT는 범위 내에 있는 검색 대상(DrtStartSearch 함수에 전달된 pKey 인수를 사용하여 지정됨)에 가장 가까운 키를 반환합니다. DrtStartSearch에 전달된 pKey 인수는 pMinimumKey 및 pMaximumKey로 정의된 범위 내에 있어야 합니다. 정확한 키를 검색하려면 pMinimumKey, pMaximumKey 및 pKey 를 동일한 값으로 설정합니다.
관련 항목