With the increased popularity of the Internet, Internet-based customer services have become increasingly accepted and popular. Network purchase services that enable users to purchase items or services may be one of the most used and favored Internet-based customer services. Network purchase services also provide numerous other services to customers, such as account service, advertisement campaign service, shipping service, customer care service, information search service, and more. Thus, typical network purchasing services tend to maintain information for each customer or each provided service, which results in explosive growth of customer information maintained in the network purchase services databases.
In a typical embodiment, the underlying customer database of such network purchasing services may be a single database where managing data is rather simple and straightforward. However, this type of database can be the single biggest point of failure with respect to data “availability” in the network purchasing services. Generally, there are two primary risks in such database systems: a hard failure in which the database goes down completely (blackout), and a heavy CPU load due to volume that causes the database to be unresponsive or timeout (brownout). One approach to solve the blackout or brownout problems is to maintain a secondary database (backup database), which is a mirror of a primary database, and if there is a problem in the primary database, the system fails over to the secondary database. However, utilizing a backup database may cause its own problem because if the heavy CPU load that took down the primary database is transferred to the secondary database, the secondary database will likely be taken down as well.
Further, such database systems lack database scalability when demand for additional database capacity arises. As the Internet expands, its reach becomes more pervasive as more and more users are using network purchase services. Thus, the volume of the customer information maintained by the network purchase services outgrows the existing database hardware. However, adding new database hardware is an expensive and difficult task that generally requires redistribution or migration of data from existing database hardware to new database hardware and oftentimes deployment of a new software system. Moreover, adding new database hardware may disturb various customer services that require immediate access to the customer information stored in the existing database hardware.