Implementation of a canonical native storage for XML
Shihe Ma · 2004
The Extensible Markup Language (XML) is a simple, natural, but powerful language to describe data and metada and it is being used widely. However, memory limitation becomes the main problem when XML queries are executed against those large XML documents. CanStoreX is a solution for this. This thesis describes the overall design, architecture and implementation of the CanStoreX XML data management system. CanStoreX partitions a large XML document into pages by adding storage-facilitating nodes. As a native XML DBMS, CanStoreX consists of four layers: disk space management, buffer management, CanStoreX DOM API, and XPath query engine. In order to load XML documents into our CanStoreX system, a dynamic bottom-up loading algorithm is proposed. The experimental results show that the CanStoreX system can handle XML data that are up to two orders of magnitude larger than what is currently possible. Some hints are predicted in here to make the CanStoreX storage highly scalable to handle terabyte data.