Community

GitHub에서 코드를 검색하는 code search가 23일부터 퍼블릭 베타가 되어 누구나 자신의 아바타를 눌러서 나온 메뉴에서 feature preview에서 활성화해서 사용할 수 있습니다.(코

GitHub에서 코드를 검색하는 code search가 23일부터 퍼블릭 베타가 되어 누구나 자신의 아바타를 눌러서 나온 메뉴에서 feature preview에서 활성화해서 사용할 수 있습니다.(코드 뷰도 같이 열렸습니다.) 새로운 코드 서치는 기존보다 빠르고 강력한 검색을 제공하는데 이 기능을 만든 배경을 설명하는 글입니다. 새 코드 서치는 내부에서 Blackbird라고 부르는 Rust로 자체적으로 만든 검색엔진을 사용했다고 합니다. 기존 오픈소스 검색 엔진을 많이 찾아봤지만 일반적인 텍스트 검색 엔진은 코드 검색에는 적합하지 않았습니다. 기존에 사용하던 코드 검색은 Elasticsearch을 이용해서 만들었는데 당시 800만개의 저장소를 색인하는데 여러 달이 걸렸다. 하지만 지금은 저장소가 2억개가 넘는데다가 코드는 계속 변화하기 때문에 기존 검색엔진으로는 처리하기가 어렵다고 판단해서 Rust로 직접 만들었다고 합니다. 효율적으로 인덱싱하기 위해 인뎃스를 설계하고 Git의 Object ID로 샤딩한 뒤 델타 인코딩을 통해 인덱스할 양을 줄인 덕분에 155억 개의 문서를 18시간 만에 인덱싱할 수 있게 되었다고 합니다. GitHub에서 push 이벤트가 발생하면 Kafka로 보내서 인덱스에 추가하도록 했습니다. 사용자가 검색할 때는 쿼리 서비스가 이를 처리해주고 있어서 새 검색엔진은 p99를 100ms 안에 처리할 수 있다고 합니다.

알림

알림이 없습니다