简介: |
Based on my 4 decades long involvement
in and exposure to numerous database systems, in this talk I will
discuss how various factors led multiple systems to be evolved in ways
that made them become more complex in terms of their design as well as
their usability aspects.While simplicity of design and architecture
might be a highly desirable objective, there will invariably be
conflicting requirements that lead to complexity creeping in, at least
with respect to the internals of such systems. Examples of such
requirements relate to the cloud environment, performance,
availability, heterogeneity in terms of supported hardware, operating
systems and programming language environments, accommodation of
multiple workload types, extensibility, etc. It is also the case that
aiming for simplicity in one aspect of system design might cause
complexity to be introduced in other areas. A case in point is the
desire for the near elimination of the need for DBAs and tuning knobs
in the cloud environment which makes the internals of such systems
become much more complex so that they could dynamically detect and
react to different workload types that such systems might be used for.
While KISS (Keep It Simple, Stupid) might be a desirable design
principle, following it mindlessly might result in the kiss of death
with respect to performance and reliability! |