Chapter 5. Designing a Distributed System
Application developers and DBAs face numerous challenges and choices as they design a distributed application. Many, if not most, of these issues are not specific to the particular RDBMS vendor they have selected but are a function of business requirements and other constraints. This chapter takes a step back from Oracle specifics and examines topics common to distributed applications in general, including:
The characteristics of a successful distributed system
Data partitioning
Application partitioning
The client/server approach
Common solutions to common problems
We introduced some of these topics in Chapter 1. Chapter 6, discusses these issues in greater detail in the context of the Oracle RDBMS.
Characteristics of a Distributed System
Before designing a distributed system, you should have a clear understanding of what a distributed system is and what requirements it must meet. In his book An Introduction to Database Systems (Addison-Wesley, 1995), the relational database deity C. J. (Chris) Date states his “fundamental principle of distributed database,” as follows:
To the user, a distributed system should look exactly like a nondistributed system.
Date goes on to enumerate 12 objectives that must be met in order to satisfy this principle, as follows:
Local autonomy
No reliance on a single site
Continuous operation
Location transparency
Fragmentation independence
Replication independence
Distributed query processing
Distributed transaction management ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access