24
Experiences with Evangelizing Java Within the Database The impact of MultiTenant Architecture in the develop of Java within the RDBMS The impact of MultiTenant Architecture in the develop of Java within the RDBMS

The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Embed Size (px)

DESCRIPTION

The development of database residente Java applications has an impact with the new multitenant architecture, more specifically the CBD / PDBs concepts.This session will cover details like the use of common operating system resources such as sockets, file system, logging and others, and RDBMS common resources like JIT, jobs scheduler and so on.Also some best practices to solve tipicall pitfalls and guidelines for development and deployment.

Citation preview

Page 1: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Experiences with Evangelizing Java Within the Database

The impact of MultiTenant Architecture in the develop of Java within the RDBMS

The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Page 2: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

About

● About me– CTO at Scotas.com

– Founder of the ArOUG

– ACE Member since 2006

– Open Source Developer (DBPrism/ DBPrism CMS, LDI, ...)

– Oracle developer since 1999

● About Scotas– A company specialized in free text search, synchronization

and Oracle

– OLS, Native Solr integration

– External Solr/ ElasticSearch integration

www.scotas.com

Page 3: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

www.scotas.com

Agenda

– Database resident JVM

– History of the JVM implementation

– Multitenant Architecture● Process● Storage● OS resources

– Conclusion

Page 4: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Database resident JVM time-line

● 8i (1999, JDK1.2, JSP, ORB, NCOMP)● 9i (2001, JDK 1.3, NCOMP)● 10g (2003 R1, 2005 R2, JDK 1.4, NCOMP)● 11g (2007, JDK 1.5, JIT)● 12c (2013, JDK 1.6/1.7/.., JIT)

www.scotas.com

Page 5: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Database resident JVM architecture

www.scotas.com

Components

Page 6: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Sun’s JDK versus Database resident JVM

Sun’s JDK VM● Thread Based

● Sharing across Threads

● Limited Scalability

● Classes in file system

● Resolve classes with “Classpath”

● JIT

● Preemptive multi-threading

● Limited Robustness (process failure)

Database resident JVM● Database Session Model

● Session Isolation● Unlimited Scalability● Classes in database

● Resolve classes with “Resolver Spec”

● JIT (11g and up)

● Non-Preemptive multi-threading

● Does not crash as a whole

www.scotas.com

Page 7: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Oracle’s Commitment to OJVM

● Used by a growing number of database customers acording to Oracle

● Used by Oracle Components

– InterMedia– Spatial– Text– XQuery (XMLDB)– WareHouse Builder– CDC (Change Data Capture)– ODM (Oracle Data Mining analytics functions)

● 12c Enhancements

www.scotas.com

Page 8: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

● Many among Fortune 500 companies● Some examples from

“Java in the Oracle Database @ Work – Customer Case Studies”

● And for sure Scotas & Cima

Who is Using OJVM

www.scotas.com

Page 9: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Java in the Database: What For

www.scotas.com

● Trigger-based Notification System using RMI

● Secure Credit-Card Processing using JSSE● Custom Alert applications that monitor

business data● Sending emails with attachment from

within the database● Produce PDF files from Result Set● Execute external OS commands and

external procedures● Implement Md5 CRC● Publish Repository Content to Portal● Portable Logistic Applications

● Implement Parsers for various File Formats (txt, zip, xml, binary)

● Implement Image Transformation and Format Conversion (GIF, PNG, JPEG, etc)

● Implement Database-resident Content Management System

● HTTP Call-Out● JDBC Call-Out● RMI Call-Out to SAP● Web Services Call-Out● Messaging across Tiers● RESTful Database Web Services● Near Real Time Full Text Search

Page 10: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Multitenant Architecture - Process

www.scotas.com

Page 11: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Multitenant Architecture - Storage

www.scotas.com

Page 12: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Multitenant resources

www.scotas.com

● Process– CPU– Memory

● Filesystem● Network

Page 13: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Process - CPU resources

www.scotas.com

● Estimate CPU usage by OJVM– Process connected using shared servers– Process connected using dedicted servers– Jobs process– AQ process implemented in Java

● DBMS Resource Manager– CPU Caging

● Dedicated plan for each PDBs–Shares–% CPU–% Parallel Servers

● Dedicated plan for Jobs process

Page 14: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Process - Memory resources

www.scotas.com

● Estimate memory usage by OJVM– SGA/UGA used by dedicated or shared server

process– Jobs process count as dedicated process– Look for global parameters:

● memory_target● memory_max_target● shared_pool_size (8Kb x load class)● java_pool_size (during executing)● java_soft_sessionspace_limit (soft limit, warning msg)● java_max_sessionspace_limit (hard limit, default 4Gb)

● Fine tunning using JMX monitoring

Page 15: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Filesystem resources

www.scotas.com

● Logging– $ORACLE_HOME/javavm/lib/logging.properties

● Accesing to files– dbms_java.grant_permission

● Properties files– $ORACLE_HOME/javavm/lib/management/jmxremote.access– $ORACLE_HOME/javavm/lib/management/management.properties

● Trace files (Diag. directory)– alert_orcl.log– orcl_jnnn.trc

● Tablespaces/Datafiles● JDK version per CDB 1.6/1.7● IO metrics (Max. IOPS)

– dbms_resource_manager.calibrate_io

Page 16: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Network resources

www.scotas.com

● ACLs– DBMS_NETWORK_ACL_ADMIN

● Protocol handlers (XMLDB)– dbms_xdb.setFtpPort

– dbms_xdb.setHttpPort

● Security– dbms_java.grant_permission

Page 17: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Network resources

www.scotas.com

● ACLs– DBMS_NETWORK_ACL_ADMIN

● Protocol handlers (XMLDB)– dbms_xdb.setFtpPort

– dbms_xdb.setHttpPort

● Security– dbms_java.grant_permission

Page 18: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Deployments best practices

www.scotas.com

● CDB/PDBs● Patching● Application segmentation

Page 19: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Examples - Scotas OLS

www.scotas.com

● An Embedded version of Solr Framework running inside Oracle JVM● 42 new Java Classes and several new PLSQL Object Types● Four new SQL operators scontains(), sscore(), smlt(), shighlight() and poweful text analysis functionalities

● An orthogonal/up-to-date Solr solution for any programming language, especially Java, Ruby, Python, PHP and .Net, currently latest production version – 4.0.0.

● Available to any Oracle product such as BI, Apex, ODM

CREATE INDEX SIDX_A ON TEST_SOURCE_BIG(TEXT) INDEXTYPE IS LUCENE.SOLRINDEX parameters('DefaultColumn:text_tn;BatchCount:5000;CommitOnSync:false;LockMasterTable:false;IncludeMasterColumn:false;Updater:localhost@9099;Searcher:localhost@9099;SyncMode:OnLine;LogLevel:WARNING;ExtraCols:text "text_tn",line "line_tin", type "type_sn",substr(text,1,256) "title";HighlightColumn:title;MltColumn:title;LobStorageParameters:STORAGE (BUFFER_POOL KEEP) CACHE READS FILESYSTEM_LIKE_LOGGING');

CREATE INDEX SIDX_A ON TEST_SOURCE_BIG(TEXT) INDEXTYPE IS LUCENE.SOLRINDEX parameters('DefaultColumn:text_tn;BatchCount:5000;CommitOnSync:false;LockMasterTable:false;IncludeMasterColumn:false;Updater:localhost@9099;Searcher:localhost@9099;SyncMode:OnLine;LogLevel:WARNING;ExtraCols:text "text_tn",line "line_tin", type "type_sn",substr(text,1,256) "title";HighlightColumn:title;MltColumn:title;LobStorageParameters:STORAGE (BUFFER_POOL KEEP) CACHE READS FILESYSTEM_LIKE_LOGGING');

Page 20: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Examples – Scotas OLS in action

www.scotas.com

Page 21: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Examples – Scotas OLS in action

www.scotas.com

Page 22: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Conclusions

● Multitenant is about isolating data● OS resources are shared

– Is very important take this into account

● Applications need to be re-tested again

● Data which refers to OS resources need to be updated when plug/unplug PDBs

www.scotas.com

Page 23: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Answers!

www.scotas.com | [email protected] | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085

Page 24: The impact of MultiTenant Architecture in the develop of Java within the RDBMS

Thank You!

www.scotas.com | [email protected] | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085