Distributed Object Based Design: Vertical Fragmentation of Classes
Distributed and Parallel Databases
Processing costs in distributed environments is most often dominated by the network communications required for interprocess communication. It is well known from distributed relational database design research that careful placement of data “near” the users or processors where it is used is mandatory or system performance will suffer greatly. Data placement in relational database systems is comparatively simple because the data is flat, structured, and passive. Objects are characterized by an inheritance hierarchy (other hierarchies could also be considered including, class composition and execution), unstructured (possibly dynamic data), and contain a behavioral component that defines how the “data” is accessed by encapsulating it within the object per se. Algorithms currently exist for fragmenting relations, but the fragmentation and allocation of objects is still a relatively untouched field of study.Similar to relations, objects can be fragmented both horizontally and vertically. Vertical fragmentation must minimize application execution time by splitting a class so that all class attributes and methods frequently accessed together are grouped together into a single fragment. This paper adopts a classification of classes into four main models, and contributes by proposing algorithms for vertically fragmenting the four realizable class models consisting of simple or complex attributes combined with simple or complex methods. Vertical fragmentation entails splitting classes into a set of “smaller” equivalent classes (actually fragments of the class' extent) that can later be placed precisely where they are used. Our approach consists of grouping into a fragment, all attributes and methods of the class frequently accessed together by applications running on either this class, its subclasses, its containing classes or its complex method classes.
Ezeife, C. I. and Barker, K.. (1998). Distributed Object Based Design: Vertical Fragmentation of Classes. Distributed and Parallel Databases, 6 (4), 317-350.