While object-relational database servers can be extended with user-defined functions (UDFs), the security of the server may be compromised by these extensions. The use of Java to implement the UDFs is promising because it addresses some security concerns. However, it still permits interference between different users through the uncontrolled consumption of resources. In this paper, we explore the use of a Java resource management mechanism (JRes) to monitor resource consumption and enforce usage constraints. JRes enhances the security of the database server in the presence of extensions allowing for (i) detection and neutralization of denial-of-service attacks aimed at resource monopolization, (ii) monitoring resource consumption which enables precise billing of users relying on UDFs, and (iii) obtaining feedback that can be used for adaptive query optimization.
The feedback can be utilized either by the UDFs themselves or by the database system to dynamically modify the query execution plan. Both models have been prototyped in the Cornell Predator database system. We describe the implementation techniques, and present experiments that demonstrate the effects of the adaptive behavior facilitated by JRes. We conclude that, minimally, a database system supporting extensions should have a built-in resource monitoring and controlling mechanism. Moreover, in order to fully exploit information provided by the resource control mechanisms, both the query optimizer and the UDFs themselves should have access to this information.
References
[1]
{Ant93} G. Antoshenkov. Dynamic Query Optimization in Rdb/VMS. Intl. Conference on Data Engineering, 1993.]]
{BSP+95} B. Bershad, S. Savage, P. Pardyak, E. Sirer, M. Fiuczynski, D. Becker, S. Eggers, and C. Chambers. Extensibility, Safety and Performance in the SPIN Operating System. 15th ACM SOSP, Copper Mountain, CO, Dec. 1995.]]
{CS96} S. Chauduri, K. Shim. Optimization of Queries with User-defined Predicates. 23rd International Conference on Very Large Database Systems, 1996.]]
{HCL+90} L. Haas, W. Chang, G. Lohman, J. McPherson, P. Wilms, G. Lapis, B. Lindsay, H. Pirahesh, M. Carey, and E. Shekita. Starburst Mid-Flight: As the Dust Clears. IEEE Trans. on Knowledge and Data Engineering, March 1993.]]
{Hel95} J. Hellerstein. Optimization and Execution Techniques for Queries with Expensive Methods. Ph.D. Thesis, University of Wisconsin-Madison, May 1995.]]
{INS+92} Y. Ioannidis, R. Ng, K. Shim, and T. Sellis. Parametric Query Optimization. Proc. 18th International Conference on Very Large Database Systems, 1992.]]
{KBZ86} R. Krishnamurthy, H. Boral and C. Zaniolo. Optimization of Nonrecursive Queries. 12th International Conference on Very Large Database Systems, 1986.]]
{SES+96} M. Seltzer, Y. Endo, C. Small, and K. Smith. Dealing with Disaster: Surviving Misbehaved Kernel Extensions. 2nd USENIX OSDI, Seattle, WA, October, 1996.]]
{SI92} A. Swami and B. Iyer. A Polynomial Time Algorithm for Optimizing Join Queries. Research Report RJ8812, IBM Almaden Research Center, June 1992.]]
{WLH90} K. Wilkinson, P. Lyngbaek, and W. Hasan. The Iris Architecture and Implementation. IEEE Transactions on Knowledge and Data Engineering, March 1990.]]
Shah MFranklin MMadden SHellerstein J(2001)Java support for data-intensive systemsACM SIGMOD Record10.1145/604264.60428230:4(103-114)Online publication date: 1-Dec-2001
Shah MFranklin MMadden SHellerstein J(2001)Java support for data-intensive systemsACM SIGMOD Record10.1145/604264.60428230:4(103-114)Online publication date: 1-Dec-2001