Chain: operator scheduling for memory minimization in data stream systems
Proceedings of the 2003 ACM SIGMOD international conference on Management of data
Parallel SQL execution in Oracle 10g
SIGMOD '04 Proceedings of the 2004 ACM SIGMOD international conference on Management of data
Operator scheduling in data stream systems
The VLDB Journal — The International Journal on Very Large Data Bases
Adaptive self-tuning memory in DB2
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more
Computing frequent itemsets inside oracle 10G
VLDB '04 Proceedings of the Thirtieth international conference on Very large data bases - Volume 30
Self-tuning database systems: a decade of progress
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
A new approach to dynamic self-tuning of database buffers
ACM Transactions on Storage (TOS)
Closing the query processing loop in Oracle 11g
Proceedings of the VLDB Endowment
Exploiting pipeline interruptions for efficient memory allocation
Proceedings of the 17th ACM conference on Information and knowledge management
Automatic virtual machine configuration for database workloads
ACM Transactions on Database Systems (TODS)
A power consumption analysis of decision support systems
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
What next?: a half-dozen data management research goals for big data and the cloud
PODS '12 Proceedings of the 31st symposium on Principles of Database Systems
AppSleuth: a tool for database tuning at the application level
Proceedings of the 16th International Conference on Extending Database Technology
Hi-index | 0.00 |
Complex database queries require the use of memory-intensive operators like sort and hash-join. Those operators need memory, also referred to as SQL memory, to process their input data. For example, a sort operator uses a work area to perform the in-memory sort of a set of rows. The amount of memory allocated by these operators greatly affects their performance. However, there is only a finite amount of memory available in the system, shared by all concurrent operators. The challenge for database systems is to design a fair and efficient strategy to manage this memory. Commercial database systems rely on database administrators (DBA) to supply an optimal setting for configuration parameters that are internally used to decide how much memory to allocate to a given database operator. However, database systems continue to be deployed in new areas, e.g, e-commerce, and the database applications are increasingly complex, e.g, to provide more functionality, and support more users. One important consequence is that the application workload is very hard, if not impossible, to predict. So, expecting a DBA to find an optimal value for memory configuration parameters is not realistic. The values can only be optimal for a limited period of time while the workload is within the assumed range. Ideally, the optimal value should adapt in response to variations in the application workload. Several research projects addressed this problem in the past, but very few commercial systems proposed a comprehensive solution to managing memory used by SQL operators in a database application with a variable workload. This paper presents a new model used in Oracle9i to manage memory for database operators. This approach is automatic, adaptive and robust. We will present the architecture of the memory manager, the internal algorithms, and a performance study showing its superiority.