15. A distributed database system, the distributed database system comprising: a distributed database, the distributed database distributed across a plurality of compute nodes; the plurality of compute nodes configured and a control node configured in a shared-nothing architecture, each compute node including: one or more processors; system memory; and one or more storage devices; and each compute node maintaining a portion of the database in a local database instance at the one or more storage devices; the control node including: one or more processors; system memory; one or more computer storage devices having stored thereon computer executable instructions representing a distribution identifier, a query plan pruner, and a plan selector, the distribution identifier configured to generate an annotated query plan search space by being configured to: access a query plan search space for a query of the distributed database, the query plan search space including a plurality of groups of logical operators arranged in a hierarchically structure, the hierarchical structure including a root group, one or more intermediate groups, and one or more leaf groups, each group of logical operators including one or more logical operators on one or more input groups; and for at least one group selected from among the root group and the one or more intermediate groups: for at least one child group of the at least one group: identify at least one distribution property indicating an interesting type of distribution relevant to the child group, each of the at least one distribution properties identifying a column that data for a parent group of the child group is distributed on; and annotate the child group with the identified interesting type of distribution by attaching an indication of the identified column to the child group within the hierarchical structure to propagate the identified interesting type of distribution down to the child group; wherein the query plan pruner is configured to: access the annotated query plan search space; and for each of the plurality of groups, starting at the leaf groups and in a bottom up manner: for each logical operator in the group: examine a plurality of possible input physical operators for implementing the logical operator; for each of the possible input physical operators, insert a corresponding appropriate data movement operators to make the logical operator distribution compatible; cost each of the plurality of possible input physical operators, including corresponding inserted data movement operators; and prune the plurality of possible physical operators by: retaining the physical operator and corresponding inserted movement operator with the overall cheapest cost; retaining the physical operator and corresponding inserted movement operator with the cheapest cost that has an output distribution matching an attached indication of an interesting type of distribution propagating down from a parent group; and removing any other physical operators.
15. A distributed database system, the distributed database system comprising: a distributed database, the distributed database distributed across a plurality of compute nodes; the plurality of compute nodes configured and a control node configured in a shared-nothing architecture, each compute node including: one or more processors; system memory; and one or more storage devices; and each compute node maintaining a portion of the database in a local database instance at the one or more storage devices; the control node including: one or more processors; system memory; one or more computer storage devices having stored thereon computer executable instructions representing a distribution identifier, a query plan pruner, and a plan selector, the distribution identifier configured to generate an annotated query plan search space by being configured to: access a query plan search space for a query of the distributed database, the query plan search space including a plurality of groups of logical operators arranged in a hierarchically structure, the hierarchical structure including a root group, one or more intermediate groups, and one or more leaf groups, each group of logical operators including one or more logical operators on one or more input groups; and for at least one group selected from among the root group and the one or more intermediate groups: for at least one child group of the at least one group: identify at least one distribution property indicating an interesting type of distribution relevant to the child group, each of the at least one distribution properties identifying a column that data for a parent group of the child group is distributed on; and annotate the child group with the identified interesting type of distribution by attaching an indication of the identified column to the child group within the hierarchical structure to propagate the identified interesting type of distribution down to the child group; wherein the query plan pruner is configured to: access the annotated query plan search space; and for each of the plurality of groups, starting at the leaf groups and in a bottom up manner: for each logical operator in the group: examine a plurality of possible input physical operators for implementing the logical operator; for each of the possible input physical operators, insert a corresponding appropriate data movement operators to make the logical operator distribution compatible; cost each of the plurality of possible input physical operators, including corresponding inserted data movement operators; and prune the plurality of possible physical operators by: retaining the physical operator and corresponding inserted movement operator with the overall cheapest cost; retaining the physical operator and corresponding inserted movement operator with the cheapest cost that has an output distribution matching an attached indication of an interesting type of distribution propagating down from a parent group; and removing any other physical operators. 16. The distributed database system of claim 15 , wherein the distribution identifier being configured to identify an interesting type of distribution relevant to the child group comprises the distribution identifier being configured to identify an interesting type of distribution that originated at and was inherited from a parent group of the child group.