1. A system comprising: an object store to store a plurality of objects and corresponding object metadata within storage devices, each of the objects having an object id and being associated with a bucket; a query parser to receive a query from a query source and to parse the received query into a query parse tree, the received query specifying a bucket id and a tenant id; a query optimizer to generate candidate query plans, to evaluate the candidate query plans based upon a cost model, and to select one of the candidate query plans based upon the cost model evaluation, each of the candidate query plans being semantically equivalent to the received query; a query executor to retrieve ones of the object ids and the object metadata from the object store using the bucket id and the tenant id specified by the received query, to generate a stream of tuples from the retrieved object ids and the object metadata, to filter the stream of tuples according to predicates within the received query, and to project the stream of tuples according to a list of metadata keys within the received query to generate a query result set stream; and a query formatter to generate a response to the query source based upon the query result set stream.
1. A system comprising: an object store to store a plurality of objects and corresponding object metadata within storage devices, each of the objects having an object id and being associated with a bucket; a query parser to receive a query from a query source and to parse the received query into a query parse tree, the received query specifying a bucket id and a tenant id; a query optimizer to generate candidate query plans, to evaluate the candidate query plans based upon a cost model, and to select one of the candidate query plans based upon the cost model evaluation, each of the candidate query plans being semantically equivalent to the received query; a query executor to retrieve ones of the object ids and the object metadata from the object store using the bucket id and the tenant id specified by the received query, to generate a stream of tuples from the retrieved object ids and the object metadata, to filter the stream of tuples according to predicates within the received query, and to project the stream of tuples according to a list of metadata keys within the received query to generate a query result set stream; and a query formatter to generate a response to the query source based upon the query result set stream. 8. The system of claim 1 wherein the object store comprises a distributed key-value store to map object keys to storage locations within the storage devices.