Patent ID: 8555018

Claim:
A method of providing access to data, comprising: under control of one or more computer systems configured with executable instructions, storing a first portion of data among a plurality of data stores, the plurality of data stores utilizing logical schemas to organize the first portion of the data and at least two of the plurality of data stores differing in at least one ability to perform a data operation; storing a second portion of the data in an indexed data store that is logically separate from the plurality of data stores; associating elements of a data file with records of at least one of the logical schemas, the data file represented based at least in part on a markup language; redistributing at least a subset of the first portion or the second portion of the data among the plurality of data stores according to at least one policy that defines, based at least in part on performance characteristics of the plurality of data stores, where among the plurality of data stores said at least a subset of the first portion or the second portion of the data should be stored; maintaining, based at least in part on said redistributing, a mapping from which locations in the logical schemas of the data can be ascertained; generating events indicative of changes in data contained in the plurality of data stores corresponding to said at least a subset of the first portion or the second portion of the data; updating the second portion of the data in the indexed data store according to the generated events; receiving a request from a requestor to access at least one element of the data file, the request being independent of the location of data associated with said at least one element; responsive to the request, locating, based at least in part on the mapping, the data that is associated with said at least one element of the data file; and providing access to the data that is associated with said at least one element to the requestor.