Google Platform - Software

Software

Most of the software stack that Google uses on their servers was developed in-house. It is believed that C++, Java, and Python are favored over other programming languages. For example, the back end of Gmail is written in Java and the back end of Google Search is written in C++. Google has acknowledged that Python has played an important role from the beginning, and that it continues to do so as the system grows and evolves.

The software that runs the Google infrastructure includes:

  • Google Web Server (GWS) — Custom Linux-based Web server that Google uses for its online services.
  • Storage systems:
    • Google File System and its successor, Colossus
    • BigTable — structured storage built upon GFS/Colossus
    • Spanner — planet-scale structured storage system, next generation of BigTable stack
    • Google F1 — a distributed, quasi-SQL DBMS based on Spanner, substituting a custom version of MySQL.
  • Chubby lock service
  • Borg — job scheduling and monitoring system
  • MapReduce and Sawzall programming language
  • Indexing/search systems:
    • TeraGoogle — Google's large search index (launched in early 2006), designed by Anna Paterson of Cuil fame.
    • Caffeine (Percolator) — continuous indexing system (launched in 2010).

Google has developed several abstractions which it uses for storing most of its data:

  • Protocol Buffers — "Google's lingua franca for data", a binary serialization format which is widely used within the company.
  • SSTable (Sorted Strings Table) — a persistent, ordered, immutable map from keys to values, where both keys and values are arbitrary byte strings. It is also used as one of the building blocks of BigTable.
  • RecordIO — a sequence of variable sized records.

Read more about this topic:  Google Platform