[Heritrix/Knowledge-Base]Heritrix 용어 해설 - Frontier queue budget (번역)
210.Heritrix/00. Personal Note 2016. 8. 2. 15:50Frontier queue budgets
BdbFrontier는 queue에 각 집중도(attention)를 할당하는 "budgeting" 작업을 한다.
이러한 세팅 방법은 queue가 정규화된 텀을 가지고 active 상태에 속해있다 벗어났다 할 수 있도록 로테이팅 할 수 있게 한다. ( active 상태는 queue가 URI를 worker thread에 제공할 수 있는 상태를 말하며, ready/in-process/snoozed 상태로 분류될 수 있다 ) Queue를 언제 비활성화 시킬 것인지에 대한 결정은 현재 queue가 가지고 있는 activity balance가 고갈되었는지 여부에 달려있다. 이 balance는 URI가 더 높은 'cost'를 가질 수록 더 빨리 닳는다. 따라서 상대적으로 더 적은 cost의 URI 들을 가진 queue들이 더 많은 attention을 갖게 되고, 반대로 더 많은 cost를 가진 URI들이 더 적은 attention을 갖게 된다.
비활성화(inactive)된 queue는 FIFO queue의 제일 마지막으로 가게 되는데, 이 queue는 queue들의 queue라고 할 수 있으며 모든 inactive queue들이 이곳에서 대기(pending)한다. active 상태의 queue가 전부 in-progress 중이거나 snooze 상태로 쉬고 있을 때, worker thread를 놀게 하면 안되므로 이 inactive queue를 다시 활성화 시킨다. 활성화 되면 queue의 activity balance는 다시 충전 되며, queue에 속해 있는 각각의 URI들은 그 balance를 다시 감소 시킨다. balance가 다시 마이너스 상태가 되면 queue는 다른 queue들에게 active될 기회를 넘기며 다시 비활성화 된다. 만약 inactive 상태의 queue가 없다면 비활성화 되자마자 다시 balance가 충전 되며 활성화 된다.
전체 수명인 'total budget'은 각 queue 당 세팅을 해주어야한다. Queue의 총 지출(queue가 active 되어 있던 모든 상태에서 이루어진 지출)이 이 값을 초과 하면 queue는 은퇴(retired)한다. 즉, 영구적으로 inactive 상태가 된다. 'total budget'을 증가시키는 것과 같은 작업자의 개입만이 queue를 은퇴(retirement)상태에서 재호출 할 수 있다. 하지만 retired상태 동안 queue 는 여전히 대기중인 URI를 포함하며 새로 발견된 URI들도 받기 때문에 작업자가 어떤 URI를 크롤링하는데 더 노력을 기울여야 할지 결정하기에 좋은 상태이다.
retired 상태의 queue들이 홀딩하고 있는 URI들은 대기 중인 URI로 세어지지 않기 때문에 모든 active/inactive queue가 비어질 때 크롤링이 끝나 버릴 수 있다. 따라서 retired queue가 있을 경우 'pause-at-finish' 기능을 이용하는 것이 좋은데, 이는 finish state에 도달했을 때 크롤링이 끝나버리는 것이 아니라 일시정지 상태로 대기할 수 있도록 한다. retired queue 이외의 queue들이 모두 비어졌을 때, 크롤링을 끝내지 않고 잠시 멈춤으로써 작업자는 크롤링 진행상태를 살펴보다가 같은 context에 대해 크롤링을 더 진행할 지 아니면 정말로 크롤링을 끝낼 지 결정을 할 수 있다.
https://webarchive.jira.com/wiki/display/Heritrix/Frontier+queue+budgets
(세부적인 사항은 생략하였고, 이해를 바탕으로 완역하였음)
'210.Heritrix > 00. Personal Note' 카테고리의 다른 글
[Heritrix/Knowledge-Base]Heritrix 내부 동작 방법 - Crawl Recovery (번역) (0) | 2016.08.02 |
---|---|
Log (0) | 2015.07.22 |