Web hosting with free domain names in europeCpanel X unlimited pop3 accounts with linux web servers
dedicated server uptimeGreek Lang | gr domain name registration 
SERVICES
Web Hosting
Cpanel Free Scripts
Dedicated Servers
Servers Stock
Network
Web Design
Domain Parking
Domain Registration
Data Center Tour
FREE WEB TOOLS
Flash Toolbar Generators
Graphic Toolbar Generators
DHTML / CSS Menu Generators
Java Script Menu Generators
MAILING LIST
Sign up to our mailing list
E-mail:
I want to:
SSL
Google Ads

The Anatomy of a Web Search Engine

 

4.1 Google Architecture Overview

In this section, we will give a high level overview of how the whole system works as pictured in Figure 1. Further sections will discuss the applications and data structures not mentioned in this section. Most of Google is implemented in C or C++ for efficiency and can run in either Solaris or Linux.

In Google, the web crawling (downloading of web pages) is done by several distributed crawlers. There is a URLserver that sends lists of URLs to be fetched to the crawlers. The web pages that are fetched are then sent to the storeserver. The storeserver then compresses and stores the web pages into a repository. Every web page has an associated ID number called a docID which is assigned whenever a new URL is parsed out of a web page. The indexing function is performed by the indexer and the sorter. The indexer performs a number of functions. It reads the repository, uncompresses the documents, and parses them. Each document is converted into a set of word occurrences called hits. The hits record the word, position in document, an approximation of font size, and capitalization. The indexer distributes these hits into a set of "barrels", creating a partially sorted forward index. The indexer performs another important function. It parses out all the links in every web page and stores important information about them in an anchors file. This file contains enough information to determine where each link points from and to, and the text of the link.

The URLresolver reads the anchors file and converts relative URLs into absolute URLs and in turn into docIDs. It puts the anchor text into the forward index, associated with the docID that the anchor points to. It also generates a database of links which are pairs of docIDs. The links database is used to compute PageRanks for all the documents.

The sorter takes the barrels, which are sorted by docID (this is a simplification, see Section 4.2.5 ), and resorts them by wordID to generate the inverted index. This is done in place so that little temporary space is needed for this operation. The sorter also produces a list of wordIDs and offsets into the inverted index. A program called DumpLexicon takes this list together with the lexicon produced by the indexer and generates a new lexicon to be used by the searcher. The searcher is run by a web server and uses the lexicon built by DumpLexicon together with the inverted index and the PageRanks to answer queries.

4.2 Major Data Structures

Google's data structures are optimized so that a large document collection can be crawled, indexed, and searched with little cost. Although, CPUs and bulk input output rates have improved dramatically over the years, a disk seek still requires about 10 ms to complete. Google is designed to avoid disk seeks whenever possible, and this has had a considerable influence on the design of the data structures.

4.2.1 BigFiles

BigFiles are virtual files spanning multiple file systems and are addressable by 64 bit integers. The allocation among multiple file systems is handled automatically. The BigFiles package also handles allocation and deallocation of file descriptors, since the operating systems do not provide enough for our needs. BigFiles also support rudimentary compression options.

4.2.2 Repository

Figure 2. Repository Data Structure
The repository contains the full HTML of every web page. Each page is compressed using zlib (see RFC1950 ). The choice of compression technique is a tradeoff between speed and compression ratio. We chose zlib's speed over a significant improvement in compression offered by bzip . The compression rate of bzip was approximately 4 to 1 on the repository as compared to zlib's 3 to 1 compression. In the repository, the documents are stored one after the other and are prefixed by docID, length, and URL as can be seen in Figure 2. The repository requires no other data structures to be used in order to access it. This helps with data consistency and makes development much easier; we can rebuild all the other data structures from only the repository and a file which lists crawler errors.

4.2.3 Document Index

The document index keeps information about each document. It is a fixed width ISAM (Index sequential access mode) index, ordered by docID. The information stored in each entry includes the current document status, a pointer into the repository, a document checksum, and various statistics. If the document has been crawled, it also contains a pointer into a variable width file called docinfo which contains its URL and title. Otherwise the pointer points into the URLlist which contains just the URL. This design decision was driven by the desire to have a reasonably compact data structure, and the ability to fetch a record in one disk seek during a search

Additionally, there is a file which is used to convert URLs into docIDs. It is a list of URL checksums with their corresponding docIDs and is sorted by checksum. In order to find the docID of a particular URL, the URL's checksum is computed and a binary search is performed on the checksums file to find its docID. URLs may be converted into docIDs in batch by doing a merge with this file. This is the technique the URLresolver uses to turn URLs into docIDs. This batch mode of update is crucial because otherwise we must perform one seek for every link which assuming one disk would take more than a month for our 322 million link dataset.
<Back

WEBMASTERS
Search Engine Submit Global
Web Hosting FAQ
Web Hosting Glossary
Search engine ranking tips
Download free scripts
Keyword Suggestion Tool
Downloads
Google Page Ranking
Search Engine Analysis
Robots Index
Web Crawlers
Affiliates
WHOIS
SUPPORT
24/7 Help Desk
Cpanel
Contact
WE RECOMMEND
   
Dependable Linux Servers providing cheap web hosting worldwide
INTRO | HOME | WEB HOSTING | DEDICATED SERVERS | DEDICATED SERVERS STOCK | NETWORK DIAGRAMM |WEB DESIGN | DOMAIN PARKING | FREE FLASH MENU GENERATORS | FREE GRAPHICS NAVBARS | DHTML/CSS CODE GENERATORS | JAVA SCRIPT CSS CODE GENERATORS | FREE SEARCH ENGINE SUBMISSION | WEB HOSTING F.A.Q | WEB HOSTING GLOSSARY | WEEKLY SEARCH ENGINE RANKING TIPS | DOWNLOAD FREE SCRIPTS & PROGRAMMS | SEARCH ENGINE ANALYSIS | SEARCH TERM SUGESSTION TOOL | TECH NEWS FEED | DOWNLOAD FREE HTML TOOLS | GOOGLE PAGE RANK TIPS | ROBOTS INDEX | WEB CRAWLERS | CPANEL DOCUMENTATION | TERMS OF USE | CONTACT | FORUMS
© 2002 Hostsun™ All wrignts reserved

Dedicated servers provider in Europe and Greece