https://tech.okcupid.com/vespa-vs-elasticsearch/
- OkCupid가 오픈소스 검색엔진으로 Vespa를 선택한 이유 - 데이팅 추천상대를 실시간 랭킹에 따라 바꿔야 하는데, 기존의 매칭시스템은 계속 바뀌는 사용자의 상태를 빠르게 반영이 어려움 - ElasticSearch는 인메모리 부분 업데이트에 대한 지원이 없음 ㅤ→ 문서는 대부분 정적이지만, 사용자의 정보(좋아요,사람과의 연결/패스,메시징)은 동적으로 계속 바뀜 - Vespa : 빅데이타를 위한 오픈소스 검색엔진 ( 데이터 분석보다는 서빙하는 목적으로 최적화 ) ㅤ→ 전체 문서를 재인덱싱할 필요없이 인메모리 부분 업데이트 지원 (노드당 1초에 40~50K 업데이트 가능 ) ㅤ→ 유연한 랭킹 프레임워크를 재공해서 질의할때 처리가능 ㅤ→ TensorFlow 등의 머신러닝 모델과 직접 연동 ㅤ→ REST 호출시 YQL(Yahoo Query Language) 를 사용한 질의 가능 ㅤ→ Java 컴포넌트를 이용해서 로직 커스터마이즈 가능 ㅤ→ 확장성에 있어서는 샤드에 대한 생각을 할 필요가 없음. 노드를 추가/제거할때마다 데이터가 자동으로 복구되고 복제본에서 재배포됨 - Vespa가 OkCupid 의 내부에 더 잘맞음 ㅤ→ OkCupid 는 사용자에 대한 다양한 정보를 통합해서 사람을 매칭 ㅤ→ 필터와 정렬기준이 각각 100개가 넘으며 계속 추가므로 이런 워크플로우 지원에 Vespa가 적합 ㅤ→ 데이터 쓰기 및 쿼리도 기존 매칭시스템과 유사 ㅤ→ 랭킹 프렘임워크가 훨씬 유연하고 직관적임 ㅤ→ ElasticSearch 의 이상한 쿼리구조 보다, YQL의 표현능력이 더 우수
ㅤ→ 자동 데이터 배포 기능이 작은 팀에 적합 음성 기능은 200자로 제한됨 |