Thursday, April 12, 2012

A Giant called Google...

    Wondering what you will be reading in this post today and what is "Google Giant"! Well, I was working on a simple project a couple of months back and that is the time when I was amazed and by the size of data that Google Maps servers might be having! As most of the readers (developers and enthusiast included) would know or might have noticed, Google maps are rendered by stitching small images together. You must have observed this on quite a number of occasions, when you see grey tiles when you have a slow internet connection in particular. It takes time for the images or tiles as we call them to be displayed.

    Let us try and estimate what could be the size of the Google Maps data! Before proceeding, let's make a few assumptions and considerations.
1. Let's consider the Google Street View maps only.
2. The zoom level that is considered for the calculations is 21 - the max zoom level allowed on Google Maps API.
3. All the numbers are just an estimate and not actual values.

    Google maps zoom level goes from 0 to 21, displaying 1 image at zoom level 0 and 4,398,046,511,104 (about 4 trillion i.e. 4x10^12) image or tiles at zoom level 21. 4,398,046,511,104 tiles at zoom level 21 represent the entire world surface which is about 510.072 million sq km (196.940 million sq mi). Lets say, about 70.9% of the world is water and 29.1% is land, which would mean about 3,118,214,976,373 tiles would all be blue in color. About 30% of the land area is under forest cover, which means about 383,949,460,419 tiles would be green in color. The remaining 895,882,074,312 will have multiple colors depending upon what part of the land is part of these tiles. If the numbers have gotten too large, let's tabulate them.

Sr. No. No. of tiles Color of tiles
1 3,118,214,976,373 Blue
2 383,949,460,419 Green
3 895,882,074,312 Multicolored

    Now that we have a clear picture of the number of tiles and the colors they would have, let's try and estimate the size of these tiles. Each tile or image is 256x256 pixels and each blue and green color tile/ image would then be around 4KB each. This means that the total size in KB of all the green and blue colored tiles/ images would be about 14,008,657,747,168KB; that's about 13,046.5TB. This is huge and still there are about 0.8 trillion tiles left whose size needs to be calculated.

    Let us go ahead and do that as well. Since these remaining tiles are multicolored, the size of each tile ranges in between 13 to 17KB. For our calculations, let's assume that the size of each of the multicolored tile is about 15KB. That would mean that the total size of these tiles is about 13,438,231,114,680KB; that's about 12,515TB.

    That means; if my math is not wrong; the size of all the Google Map tiles for Google Map Street View at zoom level 21 alone is about 25,500TB.
    This 25K TB space is required to save tiles only for one type of Google Map at the highest zoom. There are tiles at other zoom levels and also tiles of other map types - Satellite Map and the Terrain Map. The labels that appear in the Hybrid map type is also a separate layer on top of the Satellite map. That means about 25K TB more for the satellite map at zoom level 21 and about the same for hybrid map at the same zoom level. Plus about a 15K TB for the labels layer in hybrid map. If the approximation is to believed, Google has around 100 thousand TB space for the maximum zoom level of all the map types.

    Yes, it seems comical to attempt such a calculation where every step of the way requires an approximation. That's why in the end I end up with a such a wide chasm of error. And, of course, this rough analysis does not cover area distortion introduced by mapping the globe's points onto a two dimensional surface. But, there you have it - the story of "Google - A Giant".