Vespa बनाम ElasticSearch
(tech.okcupid.com)-
OkCupid ने open source search engine के रूप में Vespa को क्यों चुना
-
डेटिंग के लिए सुझाए जाने वाले मैचों को real-time ranking के आधार पर बदलना पड़ता है, लेकिन मौजूदा matching system में लगातार बदलती user state को तेज़ी से reflect करना मुश्किल था
-
ElasticSearch में in-memory partial update के लिए support नहीं है
→ document ज़्यादातर static होते हैं, लेकिन user information (like, लोगों के साथ connection/pass, messaging) dynamically लगातार बदलती रहती है
- Vespa: big data के लिए open source search engine (data analysis की तुलना में serving के उद्देश्य से optimized)
→ पूरे document को फिर से reindex किए बिना in-memory partial update support (प्रति node 1 सेकंड में 40~50K updates संभव)
→ flexible ranking framework देता है, जिससे query के समय processing संभव है
→ TensorFlow जैसे machine learning models के साथ direct integration
→ REST call के समय YQL(Yahoo Query Language) का उपयोग करके query संभव
→ Java component का उपयोग करके logic customize किया जा सकता है
→ scalability के मामले में shard के बारे में सोचने की ज़रूरत नहीं। node जोड़ने/हटाने पर data अपने-आप recover होता है और replica से फिर deploy हो जाता है
- Vespa, OkCupid के अंदरूनी उपयोग के लिए ज़्यादा उपयुक्त है
→ OkCupid users की विविध जानकारी को एकीकृत करके लोगों का matching करता है
→ filter और sorting criteria प्रत्येक 100 से अधिक हैं और लगातार बढ़ रहे हैं, इसलिए ऐसे workflow support के लिए Vespa उपयुक्त है
→ data write और query भी मौजूदा matching system से मिलते-जुलते हैं
→ ranking framework कहीं ज़्यादा flexible और intuitive है
→ ElasticSearch की अजीब query structure की तुलना में YQL की expressive power बेहतर है
→ automatic data deployment feature छोटी team के लिए उपयुक्त है
2 टिप्पणियां
Vespa के इतिहास और वैल्यू पर एक कोरियाई परिचयात्मक लेख
ओपन सोर्स Yahoo Vespa https://web.archive.org/web/20210922122357/…
( 2023 तक, ब्लॉग हट चुका है, इसलिए उसे Wayback Machine लिंक से बदल दिया गया है )
"Vespa एक मोटरसाइकिल ब्रांड का नाम भी है, लेकिन यह Vertical Search Plaform का संक्षिप्त रूप है"
"Yahoo की मुख्य तकनीकों में, जिनके बारे में हमेशा कहा जाता था कि वे शायद कभी सार्वजनिक नहीं की जाएँगी, उनमें Vespa उन गिनी-चुनी शीर्ष तकनीकों में से एक थी जिनका बार-बार उल्लेख होता था"
"Vespa सर्च इंजन को केंद्र में रखकर बना एक एकीकृत कंटेंट प्रोसेसिंग प्लेटफ़ॉर्म का component set है। सरल शब्दों में इसे सर्च इंजन कहा जा सकता है, लेकिन सामान्य Solr या Elastic जैसे सर्च इंजनों की तुलना में इसके आसपास मौजूद सहायक components कहीं अधिक हैं।"
लेख काफ़ी लंबा है, लेकिन बाद के हिस्से में Vespa को वास्तव में लागू करने वाले OkCupid के सिस्टम आर्किटेक्चर से लेकर search query (YQL) आदि दिखाए गए हैं, इसलिए मूल लेख देखना बेहतर होगा.
लेख के अंत में भी यह बात है, लेकिन ElasticSearch कहीं ज़्यादा इस्तेमाल होता है, और Vespa की कमी यह है कि इसकी community अभी उतनी बड़ी नहीं है.
लेकिन जैसा यहाँ दिखता है, जिन searches को लगातार बदलते रहना पड़ता है, उनमें Vespa भी एक शानदार विकल्प बन सकता है.
उदाहरण के तौर पर dating partner matching दिया गया है, लेकिन e-commerce searches को भी आजकल real-time में बदलना पड़ता है ताकि बेहतर नतीजे मिल सकें.