How to invent a Prolog machine
Proceedings on Third international conference on logic programming
SIGMOD '86 Proceedings of the 1986 ACM SIGMOD international conference on Management of data
Parsing and compiling using Prolog
ACM Transactions on Programming Languages and Systems (TOPLAS)
Journal of Logic Programming
Composite object support in an object-oriented database system
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Operations and Implementation of Complex Objects
IEEE Transactions on Software Engineering
Clustering a DAG for CAD Databases
IEEE Transactions on Software Engineering
Workshop on OODB implementation
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Special report: the 1988 Object-oriented database workshop
ACM SIGMOD Record
Storage management for persistent complex objects
Information Systems
The performance and utility of the Cactis implementation algorithms
Proceedings of the sixteenth international conference on Very large databases
EFTA: a database retrieval algebra for feature-terms
Data & Knowledge Engineering
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
A stochastic approach for clustering in object bases
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Effective clustering of complex objects in object-oriented databases
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Efficient assembly for complex objects
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
The DASDBS Project: Objectives, Experiences, and Future Prospects
IEEE Transactions on Knowledge and Data Engineering
IEEE Transactions on Knowledge and Data Engineering
Architecture of the ORION Next-Generation Database System
IEEE Transactions on Knowledge and Data Engineering
Proceedings of the Sixth International Conference on Data Engineering
Benchmarking Database Systems A Systematic Approach
VLDB '83 Proceedings of the 9th International Conference on Very Large Data Bases
LILOG-DB: Database Support for Knowledge Based Systems
Text Understanding in LILOG, Integrating Computational Linguistics and Artificial Intelligence, Final Report on the IBM Germany LILOG-Project
Gprof: A call graph execution profiler
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Hi-index | 0.00 |
Scans through large collections of complex objects often cannot be avoided. Even if sohphisticated indexing mechanisms are provided, it may be necessary to evaluate simple predicates against data stored on disk for filtering. For traditional record oriented data models i/o and buffer management are the main bottlenecks for this operation, the interpretation of data structures is straightforward and usually not an important cost factor. For heterogeneously shaped complex objects it may become a dominant cost factor.In this paper we demonstrate a technique to make data structure traversal inside of complex objects much cheaper than naive interpretation. We compile navigation necessary to evaluate condition predicates and physical schema information into a program to be executed by a specialized abstract machine. Our approach is demonstrated for the Feature Term Data Model (FTDM), but the technique is applicable to many other complex data models. Main parts of this paper are dedicated to the method we used to design the Term Retrieval Abstract Machine (TRAM) architecture by partial evaluation of a tuned interpreter.