1. A method of updating a report created based on a plurality of remote datasets, comprising: creating a report based on a report definition and one or more report slices created at a tree server, wherein the report slices are represented as subtrees having a structure with leaf nodes defined by data from the remote datasets; receiving, at the tree server, an update to the data from the remote datasets; determining whether the update requires a restructuring of a report slice; based on a determination that the received update requires restructuring of the report slice, restructuring the report slice based on the received update; and updating the report based on the restructured report slice.