Sigmod98 81 Slides

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Secure and Portable Database Extensibility: 

Secure and Portable Database Extensibility Tobias Mayr Michael Godfrey Praveen Seshadri Thorsten von Eicken Cornell University

Web based OR-DBMS: 

Web based OR-DBMS Web based access Extensible server Functionality in object methods Client OR-DBMS Server Queries Results Connectivity Software SELECT S.Company, S.QuoteHistory.WeeklyAvg() FROM Stocks S

User Defined Functions: 

User Defined Functions Portability Security Efficiency ? Client OR-DBMS Server Queries Results Connectivity Software Uploading Methods SELECT S.company FROM Stocks S WHERE S.TimeSeries.myAnalysis()>0

Portability & Security: 

Portability & Security UDF execution environment of the client similar to that of the server Design & Testing on client site Granularity of control: Execution errors Memory access System resources Quality of Service attacks

Alternative Solutions: 

Alternative Solutions Client site execution Integrated, native execution Execution in separate process Software Fault Isolation Proof Carrying Code Interpreted languages Safe languages Typed Assembly Language Java Virtual Machine Language based O/S based

Integration of the JVM: 

Integration of the JVM Ubiquitous in browsers and with native interfaces Interpreted/Compiled (JIT)

Performance Components: 

Performance Components Invocation Execution Data access Computation Callbacks

Callbacks: 

Large objects are passed by reference Selective retrieval : only certain objects only parts of objects Argument overhead vs. control switches Callbacks Execution Engine UDF   

Comparisons: 

Comparisons Trusted execution inside server process Execution in separate process Execution on JVM inside server process Platform: PREDATOR on a Sparc20 with 64MB of memory running Solaris 2.6. JVM: JDK 1.1.4 (includes JIT)

Experimental Setup: 

Experimental Setup SELECT UDF(R.ByteArray, NumComps, NumDataAccess, NumCallBacks) FROM ByteArrays R ByteArrays R: 10000 Tuple, one attribute ByteArray: Array of bytes (size: 1 - 10000) NumComps: Number of executed integer additions NumDataAccess: Number of iterations over ByteArray NumCallBacks: Number of executed callbacks

Calibration: 

Calibration

Invocation Overhead: 

Invocation Overhead No data access, computation, or callbacks Control switch cheaper for JVM Costs of argument passing

Invocation Overhead, absolute: 

Invocation Overhead, absolute

Invocation Overhead, relative: 

Invocation Overhead, relative

Execution: Computation: 

Execution: Computation Argument size 10000 bytes, no data access, no callbacks No significant overhead

Computation, absolute: 

Computation, absolute

Computation, relative: 

Computation, relative

Execution: Data Access: 

Execution: Data Access 10000 bytes, no computation, no callbacks High overhead, caused by array bounds checks

Data Access, absolute: 

Data Access, absolute

Data Access, relative: 

Data Access, relative

Callbacks: 

Callbacks 10000 bytes, no computation, no data access Cheap control switch with native interface

Callbacks, absolute: 

Callbacks, absolute

Callbacks, relative: 

Callbacks, relative

Results: 

Results Low overheads for invocation, computation, and callbacks Data access overhead  dynamic checks Overheads for UDFs small in context of processing of real queries JVM forms an efficient safe execution environment for OR-DBMS

Caveats: 

Caveats Portability across different JVM versions Off-the-Shelf JVMs cause integration problems Security flaws of the JVM

Future Work - Jaguar Project: 

Future Work - Jaguar Project Security Execution environment on server site with fine grained system resource control Integration of J-Kernel resource management Portability Execution environment on client site integrated with query processing Optimization of client site UDFs