簡體   English   中英

使用位集的社交圖

[英]Social graphs using bitsets

我在一篇文章中碰到了以下內容,該互聯網技術公司討論了他們如何將社交功能融入其應用程序:

Apache Thrift,Krati數據存儲,JavaEWAH壓縮位圖和JRuby構成了我們的遠程服務的一部分,該服務以高性能的持久壓縮位圖格式存儲我們的社交圖。

我試圖從中弄清楚。 到目前為止,我已經弄清了Apache Thift(以及為什么要使用它),JavaEWAH,位集,社交圖和GUI分析的含義。 Krati數據源似乎並沒有很好的Wiki /教程。 此外,對於如何使用位集和上述技術存儲和處理社交圖,我無法理解設置。

如果您能解釋相同的內容,並引導我獲得相關資源。 或者,如果您可以對上述堆棧提出更好的替代方案。

好的,讓我們先介紹一些基礎知識:

我想,您的文章就是這樣的: http : //www.nextbigwhat.com/technology-implementation-for-social-features-297/

http://en.wikipedia.org/wiki/Social_graph “互聯網環境中的社交圖是描述互聯網用戶個人關系的圖”

http://thrift.apache.org/將軟件堆棧與代碼生成引擎結合在一起,以構建可在C ++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,JavaScript, Node.js,Smalltalk,OCaml和Delphi等語言。

https://github.com/krati/krati Krati是一個簡單的持久數據存儲,具有非常低的延遲和高吞吐量。 它旨在輕松與需要大量讀寫的應用程序集成,而無需費力地調整配置,性能和JVM垃圾回收。

http://code.google.com/p/javaewah/位數組數據結構在Java中作為BitSet類實現。...JavaEWAH是Java位集類的字對齊的壓縮變體。

http : //jruby.org/apidocs/serialized-form.html ...。

-----這是我的解釋:

本文的內容是技術實現。 因此,他們列出了所有內容。 在這種情況下,我想我們暫時可以忽略apache Thrift,因為這只是膠水,他們使用膠水將技術彼此聯系在一起。 同樣,jrubi形式在某種程度上超出了社交圖的考慮范圍。 是的,社交圖需要輸入和輸出,但是表單可以解決主題的細節層次來自那里的問題。

有趣的部分是krati和javaewah。 閱讀這篇文章很明顯,他們可以通過成員身份實現社交圖。 這可以是關於組或角色或類似的東西。 成員資格可以實現為位圖:擁有一個帶有位圖的組,每個用戶一個位。 可以尋址每個位以檢查用戶是否為成員。 就如此容易。 位圖由Krati組成,然后由JavaEWAH存儲/管理。 缺點是:用戶越多,位圖就越大。 優點:快速。

在關系數據庫中,每個關系都將實現為外鍵2個外鍵對(這會導致某些索引開銷>例如,鍵的2個整數,然后對雙索引的2 * 2 + x個整數,從而x在數據庫上呈遞減形式) 。 尤其是每個組具有大量成員資格時,這可能會遇到磁盤空間利用率挑戰。 因此,我認為在這種情況下,就存儲利用率而言,壓縮的BitMap實現更為出色。

UPDATE ---

一個人可以寫關於整個主題的書。 我想我需要在這里指出一點。 但是,從這里出發的好起點是:

http://www.slideshare.net/lemire/all-about-bitmap-indexes-and-sorting-them

https://github.com/jingwei/krati/commit/ab1432003e59a07269d23c1cb307625b0e8c5be2

http://en.wikipedia.org/wiki/Data_store http://en.wikipedia.org/wiki/Key-value_store (以獲得關於不同數據庫概念的概念,而不僅僅是相對的概念)

http://dev.mysql.com/doc/refman/5.0/en/innodb-physical-record.html (以獲取一些有關外鍵2外鍵關系成本的信息)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM