Thod Nguyen, eHarmony 公司的CTO,向我們展示了這個世界最大的交友服務網站的使用者體驗的飛躍式提升。在使用了MongoDB的技術之後,與原有的關係型資料庫相比,eHarmony的配對速度提高了95%,同時也使網站增加了進50%的訂閱量。
eHarmony現在的主要業務集中在北美、澳洲以及英國。自從公司2000年成立以來,公司一直保持良好的服務記錄--------超過120萬對配對成功的情侶最終步入婚姻的殿堂。到今天為止,eHarmony已經擁有55000000的註冊使用者。不久的將來,它們的業務即將擴充到另外的20個國家,相信這個數字很快又會出現快速的增長。
eHarmony僱傭了一些相當專業的資料工程師來迎接未來的眾多夥伴。網站的使用者在註冊時候會被要求填寫一份詳細的問卷,之後,他們的答案將會被用於智能的模式分析,之後產生一個針對該使用者的個人檔案。之後的資料研究更多是有關機器學習和分析預測,這些研究將被運用到最終的使用者配對演算法當中來提高配對的命中率。
使用者配對的過程可不像Google那樣單純的搜尋一個物品或語句,這一過程是“雙向的”,並且需要涉及使用者之間許多屬性比如年齡、地點、教育背景、收入等等的交叉引用和得分。
在eHarmony最初的架構當中,整個系統只使用一個單一的單片資料庫來儲存所有的使用者資料以及配對資訊,顯然這並不能適應網站業務發展的需要。後來,他們開始用Postgres資料庫將配對資訊分開存放,這的確一定程度上解決了他們的問題,但是隨著網站的潛在配對資料達到了30億條、25TB資料 /天以後,對一個使用者群運行一次完整的配對分析,需要花費至少2周時間。同時,伴隨著資料量的增長,資料模型也變得越來越複雜。而演算法策略的調整需要整個資料庫資料的清空和重載,這不僅增加了操作的複雜度和停機,更阻礙了公司業務的快速發展。
eHarmony明白他們需要一個新的方法,他們的資料庫需要具備:
——支援複雜的多屬性查詢,這是他們配對分析系統最根本的需要。
——更靈活的資料模型,這使得他們可以更精確地運用新的屬性。
——大規模的在常見硬體裝置的部署,並且不增加現有的裝置開銷。
eHarmony曾經選擇Apache Solr作為可能的方案,但因為雙向搜尋而不是單向搜尋,選擇Apache Solr的計劃擱淺。之後,Apache Cassandra也因為API難以相容現有資料模型、讀寫操作的不平衡等原因退出了競爭。
最終,在謹慎的評估之後,eHarmony選擇了MongoDB。
MongoDB除了能滿足上述的三個需求之外,還通過MongoDBEnterprise給予了eHarmony許多企業服務的支援。
Thod通過這次的MongoDB和eHarmony的合作,也總結出了給讀者們的幾點意見:
——早使用MongoDB,MongoDB可以提供絕佳的資料模型應用,分割以及發布產品。
——測試時,運用產品資料和查詢功能。隨機殺死節點來測試資料庫應對多個失敗情況的反應。
——在隱藏下運行,對比現有的關係型資料庫來瞭解MongoDB處理大量資料的表現。
當然,MongoDB也不是eHarmony的全部資料管理架構,他們的資料工程師團隊還將MongoDB與Hadoop相結合,此外還結合了Apache Spark和 R語言。
這次資料庫轉換的ROI已經得到了驗證:
——95%更快。配對速度提高了95%,配對全部使用者群的速度從2周縮短到了12小時。
——30%更高。潛在配對人的交流度提高了30%。
——50%增加。付費使用者增加了50%。
——60%增加。單一網站訪問量增加了60%。
當然,這個故事並沒有這麼快結束。隨著eHarmony準備擴大到其他的20個國家,他們也打算擴大他們的資料研究團隊。同時他們將開始添加基於地理位置的服務,以此來充實他們的移動端體驗,而這也正好符合MongoDB對於地理空間索引和查詢的支援。