1. A method implemented on a machine having a processor, a storage, and a communication platform for adding a storage server to a distributed system, comprising: partitioning automatically, a plurality of data units in a same database table into a plurality of groups based on a value stored in each of the data units, the data units arranged in each group having values corresponding to predetermined criteria; partitioning each of the groups into a plurality of subgroups, with each subgroup containing at least one data unit; distributing and storing the plurality of subgroups across one or more storage servers based on a distribution policy associated with the database table; adding a new storage server operably coupled to the one or more storage servers storing the plurality of subgroups; updating the distribution policy associated with the database table to distribute and store the plurality of subgroups among the new storage server and the one or more storage servers; redistributing the plurality of subgroups across the new storage server and the one or more storage servers based on the updated distribution policy associated with the database table; and migrating at least one of the plurality of subgroups originally stored in at least one of the one or more storage servers to the new storage server.