Google+的构建使用了哪些技术?
BigTable是一种压缩的、高性能的、高可扩展性的,基于Google文件系统(Google File System,GFS)的数据存储系统,用于存储大规模结构化数据,适用于云计算。
BigTable发展于2004年,现今已成为Google的应用程序。像是MapReduce就常通过BigTable来存储或更改数据,其他还有Google Reader、Google Maps、Google Book Search、"MySearch History"、 Google Earth、Blogger.com、Google Code hosting、Orkut、YouTube以及Gmail等。Google自行发展出特别的巨型数据库的原因,自然是性能的问题。
BigTable不是传统的关系型数据库,不支持JOIN这样的SQL语法,BigTable更像今日的NoSQL的Table-oriented,优势在于扩展性和性能。BigTable的Table数据结构包括row key、col key和timestamp,其中row key用于存储倒转的URL,例如www.google.com必须改成com.google.www。BigTable使用大量的Table,在Table之下还有Tablet。每一个Tablets大概有 100-200MB,每台机器有100个左右的Tablets。所谓的Table是属于immutable 的SSTables,也就是存储方式不可修改。另外Table还必须进行压缩,其压缩又分成table的压缩或系统的压缩。客户端有一指向META0的Tablets的指针,METAO tablets 保储所有的META1的tablets的数据记录。
For Google+'s most innovative feature, video conferencing with Hangouts, GigaOM has a good article on that stack, which is based on Announcing Google+ Hangouts, written by Tech Lead Justin Uberti. Unlike Skype, which runs on a cost effective P2P model, Hangouts is completely hosted by Google. This must cost a staggering amount of money. You are on your own here. Nobody can replace the bandwidth being donated by the Google fairy.
That's Google in a box. Then again, an ex-Googler thinks you can do better using MessagePack, JSON, Hadoop, jQuery, and MongoDB. If you can do better for a world wide base of a billion users is a completely different question.