Life Log

RSS reader 의 crawling 주기 최적화를 위한 방법 ?

Chester 2005. 11. 13. 02:01
HanRSS 를 제작하신 성렬님의 블로그에 올라와 있는 재밌는 문제에 대한 의견입니다.

앞서서 해결책을 적어주신 리카님의 해결책 중에 두번째 방법이 가장 실효성이 높을 것 같습니다. 살짝만 부연해보겠습니다.
구글의 crawler 역시 최장 하루에 한번씩 갱신여부를 확인하지만, 업데이트 주기가 늘어나고 신규 인바운드 링크가 많이 생길수록 크롤링 주기를 줄입니다. 최고 얼마주기까지 줄이는지는 모르겠네요 ^^ 중요한 시사점은 crawling 주기를 adaptive 하게 하기위한 다양한 로직들을 가지고 있다는 것이죠. ( 자세한 설명은 없었지만 대충 어떻게 할꺼라는 감은 오시죠 ? )

정리하면 ..
1. 사람들의 collective intelligence 활용 ( Rica 님이 제안하신^^ )
-> 사람들이 갱신을 요청하는 빈도수와 이 요청을 받고 해당 사이트에 크롤링 들어갔을때 갱신되어 있는 빈도수 사이의 correlation 을 구하고, 이 값이 높은 사이트는 crawling 주기 등의 우선순위를 높여보는 것이죠 ( 당연히 correlation 값이 상당히 높게 나올겁니다. )
2. 위에서 얻어지는 통계값으로 crawling 주기를 adaptation :)
-> 일정시간이 흐르면 여기는 대충 얼마에 한번씩 가면 되겠고, 우리가 수집하는 feed 중에 몇번째로 중요한 사이트로 추정됨.. 이런 값들이 나오겠죠 ?

PING 을 받거나, 충분한 자원을 투입하여 크롤링 주기를 빡쎄게 하거나 등등 이산적으로 완벽해결이 가능한 방법을 제외하고는 100%의 완성도를 보장하는 시스템은 불가능하다고 생각합니다. ( 물론 Rica 님이 첫번째 해법으로 제시하신 것처럼 돈ㅈㄹ을 하면 가능하죠^^ )
사용자들의 행태등을 이용해서 모델링을 살짝 해보시고, "수학"을 좀하시면 적어도 99 %이상의 확률로 최신성과 효율성을 추구할 수 있으리라 생각합니다.

원문에서 제기하신 3) 문제해결 단계의 해법은 1)설계와 2)단순구현 구간과는 전혀 다른 직관력을 요구하는 단계라고 생각합니다. HanRSS의 건승을 기원합니다 !!!