Accompanying paper to the presentation with the same name (see other slideshares). This paper explains some of the inner workings of Oracle RAC and the Oracle Cache Fusion technology, explaining how Oracle RAC can ensure horizontal scaling across up to the supported number of nodes in a cluster.
Oracle Open World (OOW) 2014 presentation on Oracle Cache Fusion; how it works and how to use it in an optimized fashion to scale an Oracle RAC system.
Oracle RAC on Extended Distance Clusters - PresentationMarkus Michalewicz
NOTE that a newer version of this presentation (covering Oracle RAC 12c Release) has been uploaded to my SlideShare: https://www.slideshare.net/MarkusMichalewicz/oracle-extended-clusters-for-oracle-rac
This presentation can be used as an illustration for some of the ideas and best practices discussed in the paper "Oracle RAC and Oracle RAC One Node on Extended Distance (Stretched) Clusters"
"Extended" or "Stretched" Oracle RAC has been available as a concept for a while. Oracle RAC 12c Release 2 introduces an Oracle Extended Cluster configuration, in which the cluster understands the concept of sites and extended setups. This knowledge is used to more efficiently manage "Extended Oracle RAC", whether the nodes are 0.1 mile or 10 miles apart.
The presentation was last updated on August 7th 2017 to add a reference to the new MAA White Paper: "Installing Oracle Extended Clusters on Exadata Database Machine" - http://www.oracle.com/technetwork/database/availability/maa-extclusters-installguide-3748227.pdf and to correct some minor details.
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudMarkus Michalewicz
This presentation discusses the support guidelines for using Oracle Real Application Clusters (RAC) in virtualized environments, for which general Oracle Database support guidelines are discussed shortly first.
First presented during DOAG 2021 User Conference, this presentation replaces its predecessor from 2016: https://www.slideshare.net/MarkusMichalewicz/how-to-use-oracle-rac-in-a-cloud-a-support-question
Oracle RAC 12c Practical Performance Management and Tuning as presented during Oracle Open World 2013 with Michael Zoll.
This is part three of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
This part concludes the main part of the "reindeer series" except for one bonus track "Oracle Multitenant meets Oracle RAC 12c" (available via SlidesShare, too).
How to Use Oracle RAC in a Cloud? - A Support QuestionMarkus Michalewicz
This presentation, which was first presented during Sangam16, discusses general and specific support rules for the Oracle Database and Oracle RAC with the purpose of enabling you to determine whether a given system is supported, certified or even recommended. This presentation was last updated on August 31st 2017 (minor update).
This version of "Oracle Real Application Clusters (RAC) 19c & Later – Best Practices" was first presented in Oracle Open World (OOW) London 2020 and includes content from the OOW 2019 version of the deck. The deck has been updated with the latest information regarding ORAchk as well as upgrade tips & tricks.
Oracle Open World (OOW) 2014 presentation on Oracle Cache Fusion; how it works and how to use it in an optimized fashion to scale an Oracle RAC system.
Oracle RAC on Extended Distance Clusters - PresentationMarkus Michalewicz
NOTE that a newer version of this presentation (covering Oracle RAC 12c Release) has been uploaded to my SlideShare: https://www.slideshare.net/MarkusMichalewicz/oracle-extended-clusters-for-oracle-rac
This presentation can be used as an illustration for some of the ideas and best practices discussed in the paper "Oracle RAC and Oracle RAC One Node on Extended Distance (Stretched) Clusters"
"Extended" or "Stretched" Oracle RAC has been available as a concept for a while. Oracle RAC 12c Release 2 introduces an Oracle Extended Cluster configuration, in which the cluster understands the concept of sites and extended setups. This knowledge is used to more efficiently manage "Extended Oracle RAC", whether the nodes are 0.1 mile or 10 miles apart.
The presentation was last updated on August 7th 2017 to add a reference to the new MAA White Paper: "Installing Oracle Extended Clusters on Exadata Database Machine" - http://www.oracle.com/technetwork/database/availability/maa-extclusters-installguide-3748227.pdf and to correct some minor details.
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudMarkus Michalewicz
This presentation discusses the support guidelines for using Oracle Real Application Clusters (RAC) in virtualized environments, for which general Oracle Database support guidelines are discussed shortly first.
First presented during DOAG 2021 User Conference, this presentation replaces its predecessor from 2016: https://www.slideshare.net/MarkusMichalewicz/how-to-use-oracle-rac-in-a-cloud-a-support-question
Oracle RAC 12c Practical Performance Management and Tuning as presented during Oracle Open World 2013 with Michael Zoll.
This is part three of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
This part concludes the main part of the "reindeer series" except for one bonus track "Oracle Multitenant meets Oracle RAC 12c" (available via SlidesShare, too).
How to Use Oracle RAC in a Cloud? - A Support QuestionMarkus Michalewicz
This presentation, which was first presented during Sangam16, discusses general and specific support rules for the Oracle Database and Oracle RAC with the purpose of enabling you to determine whether a given system is supported, certified or even recommended. This presentation was last updated on August 31st 2017 (minor update).
This version of "Oracle Real Application Clusters (RAC) 19c & Later – Best Practices" was first presented in Oracle Open World (OOW) London 2020 and includes content from the OOW 2019 version of the deck. The deck has been updated with the latest information regarding ORAchk as well as upgrade tips & tricks.
What to Expect From Oracle database 19cMaria Colgan
The Oracle Database has recently switched to an annual release model. Oracle Database 19c is only the second release in this new model. So what can you expect from the latest version of the Oracle Database? This presentation explains how Oracle Database 19c is really 12.2.0.3 the terminal release of the 12.2 family and the new features you can find in this release.
Oracle Active Data Guard: Best Practices and New Features Deep Dive Glen Hawkins
Oracle Data Guard and Oracle Active Data Guard have long been the answer for the real-time protection, availability, and usability of Oracle data. This presentation provides an in-depth look at several key new features that will make your life easier and protect your data in new and more flexible ways. Learn how Oracle Active Data Guard 19c has been integrated with Oracle Database In-Memory and offers a faster application response after a role transition. See how DML can now be redirected from an Oracle Active Data Guard standby to its primary for more flexible data protection in today’s data centers or your data clouds. This technical deep dive on Active Data Guard is designed to give you a glimpse into upcoming new features brought to you by Oracle Development.
Oracle RAC is an option to the Oracle Database Enterprise Edition. At least, this is what it is known for. This presentation shows the many ways in which the stack, which is known as Oracle RAC can be used in the most efficient way for various use cases.
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovationsGrant McAlister
With an innovative architecture that decouples compute from storage as well as advanced features like Global Database and low-latency read replicas, Amazon Aurora reimagines what it means to be a relational database. The result is a modern database service that offers performance and high availability at scale, fully open-source MySQL- and PostgreSQL-compatible editions, and a range of developer tools for building serverless and machine learning-driven applications. In this session, dive deep into some of the most exciting features Aurora offers, including Aurora Serverless v2 and Global Database. Also learn about recent innovations that enhance performance, scalability, and security while reducing operational challenges.
Make Your Application “Oracle RAC Ready” & Test For ItMarkus Michalewicz
This presentation talks about the secrets behind Oracle RAC’s horizontal scaling algorithm, Cache Fusion, and how you can ensure that your application is “Oracle RAC ready.”. It discusses do's and don'ts and how to test your application for "Oracle RAC readiness". This version was first presented in Sangam19.
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
In this session, I will cover under-the-hood features that power Oracle Real Application Clusters (Oracle RAC) 19c specifically around Cache Fusion and Service management. Improvements in Oracle RAC helps in integration with features such as Multitenant and Data Guard. In fact, these features benefit immensely when used with Oracle RAC. Finally we will talk about changes to the broader Oracle RAC Family of Products stack and the algorithmic changes that helps quickly detect sick/dead nodes/instances and the reconfiguration improvements to ensure that the Oracle RAC Databases continue to function without any disruption
Oracle RAC 19c - the Basis for the Autonomous DatabaseMarkus Michalewicz
Oracle Real Application Clusters (RAC) has been Oracle's premier database availability and scalability solution for more than two decades as it provides near linear horizontal scalability without the need to change the application code. This session explains why Oracle RAC 19c is the basis for Oracle's Autonomous Database by introducing some of its latest features, some of which were specifically designed for ATP-D, as well as by taking a peek under the hood of the dedicated Autonomous Database Service (ATP-D).
The Top 5 Reasons to Deploy Your Applications on Oracle RACMarkus Michalewicz
A presentation for developers, DBAs, and managers. This presentation was first presented in course of the AIOUG Maximum Availability Architecture (MAA)-focus month August 2021. The first reason might surprise you!
In-depth overview of Oracle Real Application Clusters (RAC) 12c Release 2, which was first presented during UKOUG Tech16 under the title "Under the Hood of Oracle Real Application Clusters (RAC) 12c Release 2" and before Oracle Database 12c Release 2 became generally available (GA) in March 2017.
What to Expect From Oracle database 19cMaria Colgan
The Oracle Database has recently switched to an annual release model. Oracle Database 19c is only the second release in this new model. So what can you expect from the latest version of the Oracle Database? This presentation explains how Oracle Database 19c is really 12.2.0.3 the terminal release of the 12.2 family and the new features you can find in this release.
Oracle Active Data Guard: Best Practices and New Features Deep Dive Glen Hawkins
Oracle Data Guard and Oracle Active Data Guard have long been the answer for the real-time protection, availability, and usability of Oracle data. This presentation provides an in-depth look at several key new features that will make your life easier and protect your data in new and more flexible ways. Learn how Oracle Active Data Guard 19c has been integrated with Oracle Database In-Memory and offers a faster application response after a role transition. See how DML can now be redirected from an Oracle Active Data Guard standby to its primary for more flexible data protection in today’s data centers or your data clouds. This technical deep dive on Active Data Guard is designed to give you a glimpse into upcoming new features brought to you by Oracle Development.
Oracle RAC is an option to the Oracle Database Enterprise Edition. At least, this is what it is known for. This presentation shows the many ways in which the stack, which is known as Oracle RAC can be used in the most efficient way for various use cases.
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovationsGrant McAlister
With an innovative architecture that decouples compute from storage as well as advanced features like Global Database and low-latency read replicas, Amazon Aurora reimagines what it means to be a relational database. The result is a modern database service that offers performance and high availability at scale, fully open-source MySQL- and PostgreSQL-compatible editions, and a range of developer tools for building serverless and machine learning-driven applications. In this session, dive deep into some of the most exciting features Aurora offers, including Aurora Serverless v2 and Global Database. Also learn about recent innovations that enhance performance, scalability, and security while reducing operational challenges.
Make Your Application “Oracle RAC Ready” & Test For ItMarkus Michalewicz
This presentation talks about the secrets behind Oracle RAC’s horizontal scaling algorithm, Cache Fusion, and how you can ensure that your application is “Oracle RAC ready.”. It discusses do's and don'ts and how to test your application for "Oracle RAC readiness". This version was first presented in Sangam19.
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
In this session, I will cover under-the-hood features that power Oracle Real Application Clusters (Oracle RAC) 19c specifically around Cache Fusion and Service management. Improvements in Oracle RAC helps in integration with features such as Multitenant and Data Guard. In fact, these features benefit immensely when used with Oracle RAC. Finally we will talk about changes to the broader Oracle RAC Family of Products stack and the algorithmic changes that helps quickly detect sick/dead nodes/instances and the reconfiguration improvements to ensure that the Oracle RAC Databases continue to function without any disruption
Oracle RAC 19c - the Basis for the Autonomous DatabaseMarkus Michalewicz
Oracle Real Application Clusters (RAC) has been Oracle's premier database availability and scalability solution for more than two decades as it provides near linear horizontal scalability without the need to change the application code. This session explains why Oracle RAC 19c is the basis for Oracle's Autonomous Database by introducing some of its latest features, some of which were specifically designed for ATP-D, as well as by taking a peek under the hood of the dedicated Autonomous Database Service (ATP-D).
The Top 5 Reasons to Deploy Your Applications on Oracle RACMarkus Michalewicz
A presentation for developers, DBAs, and managers. This presentation was first presented in course of the AIOUG Maximum Availability Architecture (MAA)-focus month August 2021. The first reason might surprise you!
In-depth overview of Oracle Real Application Clusters (RAC) 12c Release 2, which was first presented during UKOUG Tech16 under the title "Under the Hood of Oracle Real Application Clusters (RAC) 12c Release 2" and before Oracle Database 12c Release 2 became generally available (GA) in March 2017.
Oracle RAC - A Safe Investment into the Future of Your ITMarkus Michalewicz
This presentation reviews the evolution of Oracle RAC, the problems that it solves and the challenges that it faced. It also includes a high level outlook of the future development of Oracle RAC for you to realize that this isn't the first time that the benefits of Oracle RAC were challenged and yet no new technology was entirely able to solve all the problems it solves, while RAC has always successfully tackled the challenges with which it was faced.
Oracle RAC BP for Upgrade & More by Anil Nair and Markus MichalewiczMarkus Michalewicz
This presentation provides reasons and best practices (BP) guidance on when and how to best upgrade to Oracle RAC 12c. It will consider the currently supported patch sets as well as new features that might make it interesting to upgrade at least step by step (Oracle Grid Infrastructure first, then the Oracle Database). Concrete step-by-steps, code and other examples can be found in the appendixes, of which appendix B - "Enhanced OJVM Patching steps" might be of particular interest after going through appendix A: "Grid Infrastructure Upgrade".
Oracle Open World 2014 presentation [CON8127] on Maximizing Oracle RAC Uptime. This presentation discusses tools integrated into the Oracle RAC Stack and shows which tools to use in the various stages of the system's lifecycle to ensure smooth operation.
Oracle RAC and Your Way to the Cloud by Angelo PruscinoMarkus Michalewicz
Angelo Pruscino, SVP Oracle RAC Development, presents the future of Oracle RAC, including some upcoming technologies and their relevance for the (private) database cloud as part of his Keynote during the DOAG 2014 conference.
Paper: Oracle RAC and Oracle RAC One Node on Extended Distance (Stretched) Cl...Markus Michalewicz
This paper describes the general architecture and best practices for an Oracle RAC on extendended distance clusters. It focuses in particular on possible storage configurations and discuses their advantages and disadvantages in this architecture.
Oracle RAC on Extended Distance Clusters - Customer ExamplesMarkus Michalewicz
This presentation show cases some Extended RAC customers and provides some background on their motivation. It is best consumed together with the more technical presentation http://www.slideshare.net/MarkusMichalewicz/oracle-rac-on-extended-distance-clusters and the the respective white paper http://www.slideshare.net/MarkusMichalewicz/extended-oracle-racclusters
With the Oracle Multitenant option of Oracle Database 12c, the services of individual pluggable databases (PDBs) can be opened selectively on specified nodes of an Oracle Real Application Clusters (Oracle RAC) cluster. A true symbiotic relationship: the Oracle Multitenant option makes Oracle RAC better, and Oracle RAC makes the Oracle Multitenant option better! UPDATE for IOUG 2014.
Oracle Flex ASM - What’s New and Best Practices by Jim WilliamsMarkus Michalewicz
Oracle Open World (OOW) 2014 Presentation by Jim Williams (Oracle ASM Product Manager) on Oracle Flex ASM - What's New and Best Practices. The presentation provides an overview of enhancements (What's New) in Oracle ASM 12c, especially with respect to Oracle Flex ASM, and provides best practices which can be applied in any environment (Flex or Standard ASM). This presentation has also more background information for some of the configuration recommendations that I made in my "Oracle RAC (12.1.0.2) Operational Best Practices" presentation.
Collaborate16 and first version ever of "Oracle Database In-Memory (DBIM) meets Oracle Real Application Clusters (RAC)" presented by Andy Rivenes and Markus Michalewicz
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Markus Michalewicz
This is the latest version of the Oracle RAC 12c (12.1.0.2) Operational Best Practices presentation as shown during IOUG / Collaborate15. As best practices are a result of true collaboration this will probably be the last version before OOW 2015.
International Journal of Engineering Research and Development (IJERD)IJERD Editor
journal publishing, how to publish research paper, Call For research paper, international journal, publishing a paper, IJERD, journal of science and technology, how to get a research paper published, publishing a paper, publishing of journal, publishing of research paper, reserach and review articles, IJERD Journal, How to publish your research paper, publish research paper, open access engineering journal, Engineering journal, Mathemetics journal, Physics journal, Chemistry journal, Computer Engineering, Computer Science journal, how to submit your paper, peer reviw journal, indexed journal, reserach and review articles, engineering journal, www.ijerd.com, research journals,
yahoo journals, bing journals, International Journal of Engineering Research and Development, google journals, hard copy of journal
A NOVEL APPROACH FOR HOTEL MANAGEMENT SYSTEM USING CASSANDRAijfcstjournal
Apache Cassandra is a distributed storage system for managing very large amounts of structured data. Cassandra provides highly available service with no single point of failure. Cassandra aims to run on top of an infrastructure of hundreds of nodes possibly spread across different data centers with small and large components fail continuously. Cassandra manages the persistent state in the face of the failures which drives the reliability and scalability of the software systems. Cassandra does not support a full relational data model because it resembles a database and shares many design and implementation strategies. In this paper, discuss an implementation of Cassandra as Hotel Management System application. Cassandra system was designed to run on cheap commodity hardware. Cassandra provides high write throughput and read efficiency.
A NOVEL APPROACH FOR HOTEL MANAGEMENT SYSTEM USING CASSANDRAijfcstjournal
Apache Cassandra is a distributed storage system for managing very large amounts of structured data.
Cassandra provides highly available service with no single point of failure. Cassandra aims to run on top
of an infrastructure of hundreds of nodes possibly spread across different data centers with small and large
components fail continuously. Cassandra manages the persistent state in the face of the failures which
drives the reliability and scalability of the software systems. Cassandra does not support a full relational
data model because it resembles a database and shares many design and implementation strategies. In this
paper, discuss an implementation of Cassandra as Hotel Management System application. Cassandra
system was designed to run on cheap commodity hardware. Cassandra provides high write throughput and
read efficiency.
This slide deck provides an introduction to the fundamental concepts and principles of system design. Aimed at aspiring software engineers and professionals looking to strengthen their understanding, the presentation covers key topics such as scalability, reliability, load balancing, caching, CDN, partitioning, indexes, replication etc.
Benchmarking Scalability and Elasticity of DistributedDataba.docxjasoninnes20
Benchmarking Scalability and Elasticity of Distributed
Database Systems
Jörn Kuhlenkamp
Technische Universität Berlin
Information Systems
Engineering Group
Berlin, Germany
[email protected]
Markus Klems
Technische Universität Berlin
Information Systems
Engineering Group
Berlin, Germany
[email protected]
Oliver Röss
Karlsruhe Institute of
Technology (KIT)
Karlsruhe, Germany
[email protected]
ABSTRACT
Distributed database system performance benchmarks are
an important source of information for decision makers who
must select the right technology for their data management
problems. Since important decisions rely on trustworthy
experimental data, it is necessary to reproduce experiments
and verify the results. We reproduce performance and scal-
ability benchmarking experiments of HBase and Cassandra
that have been conducted by previous research and com-
pare the results. The scope of our reproduced experiments
is extended with a performance evaluation of Cassandra on
different Amazon EC2 infrastructure configurations, and an
evaluation of Cassandra and HBase elasticity by measuring
scaling speed and performance impact while scaling.
1. INTRODUCTION
Modern distributed database systems, such as HBase, Cas-
sandra, MongoDB, Redis, Riak, etc. have become popular
choices for solving a variety of data management challenges.
Since these systems are optimized for different types of work-
loads, decision makers rely on performance benchmarks to
select the right data management solution for their prob-
lems. Furthermore, for many applications, it is not sufficient
to only evaluate performance of one particular system setup;
scalability and elasticity must also be taken into considera-
tion. Scalability measures how much performance increases
when resource capacity is added to a system, or how much
performance decreases when resource capacity is removed,
respectively. Elasticity measures how efficient a system can
be scaled at runtime, in terms of scaling speed and perfor-
mance impact on the concurrent workloads.
Experiment reproduction. In section 4, we reproduce
performance and scalability benchmarking experiments that
were originally conducted by Rabl, et al. [14] for evaluating
distributed database systems in the context of Enterprise
Application Performance Management (APM) on virtual-
ized infrastructure. In section 5, we discuss the problem of
This work is licensed under the Creative Commons Attribution-
NonCommercial-NoDerivs 3.0 Unported License. To view a copy of this li-
cense, visit http://creativecommons.org/licenses/by-nc-nd/3.0/. Obtain per-
mission prior to any use beyond those covered by the license. Contact
copyright holder by emailing [email protected] Articles from this volume
were invited to present their results at the 40th International Conference on
Very Large Data Bases, September 1st - 5th 2014, Hangzhou, China.
Proceedings of the VLDB Endowment, Vol. 7, No. 13
Copyright 2014 VLDB Endowment 2150-8097/14/08.
selec ...
Many real-time systems are naturally distributed and these distributed systems require not only highavailability
but also timely execution of transactions. Consequently, eventual consistency, a weaker type of
strong consistency is an attractive choice for a consistency level. Unfortunately, standard eventual
consistency, does not contain any real-time considerations. In this paper we have extended eventual
consistency with real-time constraints and this we call real-time eventual consistency. Followed by this new
definition we have proposed a method that follows this new definition. We present a new algorithm using
revision diagrams and fork-join data in a real-time distributed environment and we show that the proposed
method solves the problem.
Similar to Paper: Oracle RAC Internals - The Cache Fusion Edition (20)
Achieving Continuous Availability for Your Applications with Oracle MAAMarkus Michalewicz
First presented during Oracle Cloud World 2022, this presentation discusses how to "Achieving Continuous Availability for Your Applications with Oracle MAA". You will learn how Application Continuity and related technologies keep your applications available. Get technical insights into how Oracle Database can help protect your application workflows from interruptions caused by planned maintenance or unplanned outages. Hear from customers about which applications benefit the most right away without code changes—and when customization may be required.
"It can always get worse!" – Lessons Learned in over 20 years working with Or...Markus Michalewicz
First presented during the DOAG 2022 Conference and Exhibition, this presentation discusses and reviews the most significant lessons learned in over 20 years of working with Oracle Maximum Availability Architecture. It explains why documentation is good, but automated checks are better, and why standardization can help increase the availability of nearly all systems, including database systems.
HA, Scalability, DR & MAA in Oracle Database 21c - OverviewMarkus Michalewicz
Oracle Database 21c is Oracle's first Innovation Release and includes a lot of new and innovative HA, Scalability, DR & MAA features to provide the most scalable and reliable Oracle Database available today. This presentation discusses some of the database as well as infrastructure features contributing to this unprecedented level of resiliency.
Oracle Cloud is Best for Oracle Database - High AvailabilityMarkus Michalewicz
This presentation looks behind the covers and evaluates the offerings provided by various cloud vendors and compares them to the Oracle Database offerings available in the Oracle Cloud. The comparison includes Oracle Database in general, focusing on High Availability (HA) and Disaster Recovery (DR), as those areas have historically distinguished the Oracle Database from other databases and will likely continue to be some of the most distinguishing features when it comes to operating the Oracle Database in the cloud.
The Oracle database has met the highest high availability expectations for decades. The goal of this presentation is to show which technologies Oracle is already using today so that this high standard is not disappointed in the years to come.
Sharing some observations, facts & possible conclusions to find out “What’s Next?” in the area of high availability, scalability and the overall development of Oracle and other databases.
Standard Edition High Availability (SEHA) - The Why, What & HowMarkus Michalewicz
Standard Edition High Availability (SEHA) is the latest addition to Oracle’s high availability solutions. This presentation explains the motivation for Standard Edition High Availability, how it is implemented and the way it works currently as well as what is planned for future improvements. It was first presented during Oracle Groundbreakers Yatra (OGYatra) Online in July 2020.
This presentation discusses the top 5 reasons as well as various technology updates to provide a reasonable answer to the rather common question: "Why should one use an Oracle Database?". This "2020 "C-Edition" was first presented during the IOUG / Quest Forum Digital Event: Database & tech Week in June 2020 and subsequently updated based on feedback received.
"Changing Role of the DBA" Skills to Have, to Obtain & to Nurture - Updated 2...Markus Michalewicz
The ever-changing IT industry requires DBA's to keep their skills up-to-date. This presentation discusses skills that any DBA should have, but also those that any DBA should obtain and nurture regardless of which new technology is entering the (Gartner) hype cycle. The first ever version of this deck was presented during Sangam18 under the title "(Oracle) DBA Skills to Have, to Obtain and to Nurture" and used in other occasions during 2019. It was subsequently enhanced to a more generic 2019 version, which included an outlook for 2020! This edition of the presentation maintains the generic character, but has been updated to reflect unprecedented changes in 2020 and to cover the latest Oracle technology, to provide a 3-year comparison as well as trends analysis.
Note that the link on slide 25 in the subtitle should have been: https://go.oracle.com/DBA
"Maximum Availability Architecture (MAA) for Oracle Database, Exadata and the Cloud" was first presented during Oracle Open World (OOW) 2019. This version of the deck has been updated for OOW London 2020 including the latest information regarding patching and upgrading the Oracle Database with Zero Downtime.
The ever-changing IT industry requires DBA's to keep their skills up-to-date. This presentation discusses skills that any DBA should have, but also those that any DBA should obtain and nurture regardless of which new technology is entering the (Gartner) hype cycle. The first ever version of this deck was presented during Sangam18 under the title "(Oracle) DBA Skills to Have, to Obtain and to Nurture " and used in other occasions during 2019. This is the more generic 2019 edition of the presentation which includes an outlook for 2020!
This presentation is based on Lawrence To's Maximum Availability Architecture (MAA) Oracle Open World Presentation talking about the latest updates on high availability (HA) best practices across multiple architectures, features and products in Oracle Database 19c. It considers all workloads, OLTP, DWH and analytics, mixed workload as well as on-premises and cloud-based deployments.
Best Practices for the Most Impactful Oracle Database 18c and 19c FeaturesMarkus Michalewicz
This presentation answers the question, “What’s new in Oracle Database 19c ?” in a slightly different way: by providing best practices and a deep dive into the most impactful high availability (HA), scalability, and lifecycle management features in Oracle Database 12c, 18c and 19c, including a short roadmap of features yet to come in the next generation Oracle Database.
This deck was first presented during OOW19 together with Mauricio Feria, who reported on two of his customers and how they have used Oracle Database HA features and Maximum Availability Architecture (MAA) to improve their businesses.
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?Markus Michalewicz
Oracle Real Application Clusters (Oracle RAC) is the preferred availability and scalability solution for Oracle Databases, as most applications can benefit from its capabilities without making any changes. This mini session explains the secrets behind Oracle RAC’s horizontal scaling algorithm, Cache Fusion, and how you can test and ensure that your application is “Oracle RAC ready.”
This deck was first presented in OOW19 as an AskTom theater / mini session and will be presented as a full version in other conferences going forward at which time I will provide an updated version of the deck.
Oracle Database Availability & Scalability Across Versions & EditionsMarkus Michalewicz
The Oracle Database provides a comprehensive set of availability and scalability features. The availability of those features, however, differs between versions and database editions (e.g. Standard and Enterprise Edition). This presentation reviews and discusses some of these capabilities across different versions and editions, on-premises and in the Oracle Cloud, including the recent change in support for Oracle Real Application Clusters (RAC) in the Oracle Standard Edition (SE)2.
From HA to Maximum Availability - A Holistic Historical DiscussionMarkus Michalewicz
Keynote - first presented in course of the DOAG HA Day in Hamburg in September 2018. This deck discusses the Maximum Availability Architecture approach against the background of "Four More Often Than Not Disregarded HA Fundamentals" and also shares HA thoughts that eventually will lead to “Continuous Availability” rather than (just) “High Availability”.
This presentation addresses and tries to provide a reasonable answer to the rather common question: "Why should we still use an Oracle Database?", which more often than not is raised by management, but in the presence of more and more "alternative solutions", also by non-Oracle database administrators who are looking to solve a particular problem.
This is the first presentation of my "Oracle Fundamentals" presentation series.
Note that slide 35 (of 38) is outdated and should not have been included. Unfortunately, SlideShare does not allow for re-uploads anymore and hence, I will leave it in for now.
Presented the "A Cloud Journey - Move to the Oracle Cloud" on behalf of Ricardo Gonzalez during Bulgarian Oracle User Group Spring Conference 2019. This presentation discusses various methods on how to migrate to the Oracle Cloud and provides recommendations as to which tool to use (and where to find it) especially assuming that Zero Downtime Migration is desired, for which the new Zero Downtime Migration tool is described and discussed in detail. More information: http://www.oracle.com/goto/move
Oracle MAA Best Practices - Applications ConsiderationsMarkus Michalewicz
Providing the highest levels of availability is the main goal of Oracle's Maximum Availability Architecture (MAA), which has been available for more than two decades. This presentation looks at Oracle MAA from a slightly different angle, as MAA should really be considered by the DBA as well as by developers and even by non-Oracle customers.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Prosigns: Transforming Business with Tailored Technology Solutions
Paper: Oracle RAC Internals - The Cache Fusion Edition
1. Oracle RAC Internals – The Cache Fusion Edition
Markus Michalewicz
Oracle Corporation
500 Oracle Parkway, Redwood City, CA 94065, USA
Keywords:
Oracle Real Application Clusters (RAC), Cache Fusion, scalability, performance, enhancements,
mastering, Oracle Multitenant, Oracle In-Memory Database, best practices, handling contentions
Introduction
Oracle Cache Fusion is the technology that distinguishes an Oracle RAC Database from any other
solution on the market. Understanding Oracle RAC internals with the intention to fully understand
Oracle Cache Fusion really means understanding the principles or the “secret” to the scalability of any
database system. Based on this understanding, any standard operation within a given system, including
the Oracle RAC Database, can be understood in principle and only corner cases need to be evaluated.
This is the intention of this paper. Based on a brief overview of scalable database management
systems in general as well as an overview of Oracle Cache Fusion, it will discuss Oracle RAC-specific
operations such as Dynamic Re-Mastering and how to handle contentions. Reviewing how Oracle
Multitenant and the Oracle In-Memory Database can be used with and to improve Oracle RAC
scalability, the paper will lay the foundation for an easy to scale management of an Oracle RAC
Database system. It also provides the basis for future discussions regarding optimized use of memory
in a database system.
Illustration 1: The Secret to Scalability - A Straight Vertical Line
2. The Secret to Horizontal Scalability of Any System
If asked about the secret to scalability of any system, the simplest answer is “a straight vertical line”.
This answer assumes a tiered system such as shown in illustration 1, in which case it describes the
shortest access path from the user to the data or more precisely from the place where the data is stored
to the place where the data is actually processed. The latter is the basis for further simplifications:
1) The delivery of the result set to the user connected to the application layer (the application user) is
typically not a concern. 2) Whether a user connects directly to the database management system
(DBMS) or via a connection pool is merely a consideration to prevent contention rather than an access
path concern; the per-connection access path to the data is typically the same from the perspective of
the DBMS. In case of the Oracle Relational DBMS (from here on referred to as the “Oracle
Database”), data is requested by a session connected to an instance regardless of whether the user
connects directly to the database or uses a connection pool.
With these simplifications in mind, the actual access path needs to be considered. Most DBMSs use an
indirect access path to data these days. “Indirect” means that the client (user) does not access the data
files directly, but connects to a management layer, which is used to retrieve the data on behalf of the
user, often providing additional capabilities such as caching functionality. In the concrete case of the
Oracle Database, the client is connected to the Oracle Database Instance (the set of processes and
memory allocated on a server), which will access the data files stored on disk (the database). Using
these definitions of “instance” and “database” for this paper going forward, a multi-instance database
represents a database, in which more than one instance (on more than one server) connects to the
database stored on concurrently accessed shared storage (shared disk approach). This is also the basic
definition of an Oracle RAC database, which will be used later on.
In order to horizontally scale such systems, all that is required is to add instances (on additional
servers) to the system. Whether the system uses a shared disk approach as described or uses a shared
nothing approach, in which case each instance may actually only be responsible for a subset of data,
would not matter in this case, as long as the DBMS as a whole guarantees (by whatever means) that
the data that is requested by a user can transparently be delivered to the instance, to which the user is
connected. The art, and hence the secret to scalability of such a system, would then be the way the
DBMS routes the user request to the best possible instance to operate on the data.
Illustration 2: Three Alternative Architectures - The Same Idea Applies
3. As illustration 2 shows, various systems may use different approaches to this problem. Some DBMSs
may route the user to an instance based on some information that the user explicitly or implicitly
provides while requesting access (such as a partition key, by means of which data is partitioned across
the servers). Some other systems may expect the user (the application) to be aware of the fact that
certain instances can only (optimally) serve a certain subset of data, in which case the application
needs to choose the instance to which it should connect. Last but not least, the DBMS may decide to
accept user connections on any instance and spawn a sub-process to retrieve data from any other
instance, if required, as part of a sub-operation that will then return the partial data from multiple
instances to the one that the user is actually connected to. This instance will then assemble the final
result-set based on the sub-data retrieved from other instances.
Oracle RAC Combines It All and Adds Services
The secret to Oracle RAC scalability is that Oracle RAC can facilitate all approaches and techniques
stated above in addition to some that are specific to this RDBMS solution. As this is the case, it is fair
to assume that any DBMS based scalability problem can be solved based on an Oracle RAC system,
assuming that changes are permitted on any layer of the stack, including the application layer. It has
always been the expectation as well as Oracle’s intention, however, to ensure Oracle RAC scalability
without the need to make changes to the application. This article therefore only discusses techniques
and components as part of the standard Oracle RAC offering, including services and connection pools.
In case of Oracle RAC, an incoming connection request is “guided” by the listener considering the
availability of a cluster-managed service (a.k.a. Dynamic Database Services as per Oracle
documentation). Starting with Oracle RAC 11g Release 2, Oracle RAC uses two layers of listeners,
the SCAN listeners and the node listeners, to guide a connection request to the final instance in a
cluster. For all practical purposes, this article will ignore the layers of listeners acknowledging that for
establishing the “straight vertical line” paradigm, only the final connection with the instance matters. It
will, however, consider the availability of a cluster-managed services, which by default, is assumed to
be offered on all instances managing the database, as this would be the basis for horizontal scaling.
Last but not least, parallel execution (PX) and parallel query (PQ) operations are explicitly excluded
from the scalability considerations discussed as part of this paper. Parallel query is used by default,
any time a GV$ table is queried in an Oracle RAC Database. However, the overall contribution of
parallel operations to improve scalability of any application (as opposed to specific applications) is
subject to a different discussion.
Illustration 3: Oracle RAC Combines It All
4. Oracle RAC Scaling Principles
One of the main principles to bear in mind is that there is no system that scales perfectly linearly. It is
often assumed that Symmetric Multiprocessing (SMP) systems provide linear vertical scaling; or in
other words that vertical scaling is loss-free. This is not the case, which is why both, SMP systems and
clusters, which are commonly used to provide horizontal scaling, should be evaluated based on the
needs at hand. For more information see: “In Search of Clusters: The Coming Battle in Lowly Parallel
Computing” by Gregory F. Pfister who concludes that “Depending on the reader's needs, cluster-based
systems may be more appropriate than a single large computer system or a SMP system.”
For an Oracle RAC Database system, this general principle constitutes another one: an application will
only scale horizontally on an Oracle RAC Database, if the same application scales on an SMP system.
Vertical scaling in this context is often referred to as “scaling over CPU”. This means that by adding
more CPUs to the system, the system should either be able to serve more users, more data or decrease
the response time with the number of users and amount of data unchanged. If this principle is fulfilled,
there is a good chance that this application will scale on an Oracle RAC system, too.
In this context, it should be noted that vertical scalability (over CPU) is typically measured across all
the CPUs in one system. In order to use a comparable approach to measuring horizontal scalability,
any scalability related statement in this paper assumes scalability across all nodes in the cluster.
Example: if a server has 16 CPUs and the full RAC system consists of three of those servers, then the
scalability is expressed based on the power provided by the system as a whole (3*16 CPUs= 48
CPUs). A scalability of 80% would then mean that the Oracle RAC system should perform with an
equivalence of 80% of the CPU (=38.4) power provided by the system (for CPU bound applications).
Accessing Data Across Instances
In any distributed system in which instances as previously defined also act as a data cache, it is not
guaranteed that the instance will hold (cache) the data required to fulfil a user request at any given
point in time. In such cases, the instance to which the user is connected (“session holding instance”)
needs to obtain the data either from disk or, if the DBMS allows for such an operation, from a “remote
instance”. A “remote access” is typically performed by a network based request in this case. It is
therefore reasonable to assume that a local or remote cache access is faster than a spinning disk access.
In an Oracle RAC database, three cases can be distinguished; 1) local Cache hit, 2) remote cache hit
and 3) disk access. The “local cache hit” is the most efficient access to data, as it assumes that the
session holding instance is also the data holding instance and hence the user can access the data
without any further operation. In case of a remote cache hit, the session holding instance needs to
request the data from a “remote cache” via the network. Only if no instance in the cluster currently
holds the data, the system would need to access the disk to obtain the data.
As the Oracle RAC database assumes a shared disk system, the session holding instance will obtain
the data from disk. It needs to be noted in this context that once the data is cached in an instance it
remains in the instance for subsequent local or remote access (subject to buffer cache aging and
flushing rules). When an instance obtains data, the Global Resource Directory (GRD) is updated and
synchronized across instances via lightweight messages, which ensures efficient subsequent access.
5. One of the main misconceptions when it come to accessing data in an Oracle RAC system is that the
above described flow (local access first, remote access second, disk access as the last resort) is always
maintained, which is not the case. For a single data access it may appear as such. However, if a request
(e.g. a SQL statement) requires data from three different locations as shown in illustration 4, the
Oracle Cache Fusion Algorithm allows for “Dynamic Data Retrieval”.
Dynamic Data Retrieval describes a scenario, in which the Oracle RAC database may actually decide
to avoid a remote cache access in favour of accessing the disk from the session holding instance
directly. The decision to avoid the typically more efficient remote cache access is made dynamically
and based on interconnect and disk access IO statistics that are refreshed periodically as part of the
algorithm. Typical scenarios include, but are not limited to, cases in which the interconnect got
saturated after serving some sub-data as part of the same or another request, in which case as
(sequential) read from disk may be more efficient at this moment in time.
Illustration 4: Dynamic Data Retrieval
(Dynamic Re-) Mastering
Accessing data across instances needs to further distinguish whether the requested access is a read-only
request or involves a write-request (updates or inserts are treated the same for this matter). If the
request includes a write request or a potential for a write (“select for update”), lock grants to access the
data need to be considered in addition to obtaining the data itself.
In an Oracle RAC system, the same consistency rules as in a Single Instance Oracle Database apply.
This means, the Oracle RAC database observes read consistency for multi-user access just like in a
single instance environment, ensuring read-consistency across the Oracle RAC database instances. An
Oracle RAC database system also provides a row-level locking across instances, which means there is
no escalation for maintaining a lock. No page or table locks or other, high granular access restrictions,
which negatively impact scalability, are required within an Oracle RAC system.
In order to ensure the data consistency that the Oracle Database is famous for, the Oracle RAC system
uses a mastering concept. In short, any object (e.g. a table, or, if the table is partitioning, the partition)
in and Oracle RAC 11g Release 1 or later database is mastered by one instance of the database system
at any point in time. (Note in this context that the mastering granularity has changed over versions and
older versions had a higher granularity level.). Once a master instance is assigned, this instance will
master and lock request to any object that it masters.
6. This means that a write-access to a given set of data (in simple terms, a “database block”) has to
request the lock grant from the mastering instance. The mastering instance can be the same or different
from the session holding and / or data holding instance. This means that full access to data needs to
consider the entities: 1) the session holding, 2) the mastering instance and 3) the data holding instance.
As illustration 5 shows, these entities can either be “all local”, “local and remote” or “all distributed”,
in which case a three-point communication is performed to write to data: 1) the session holding
instance asks the mastering instance for a lock grant to access data for write purposes. 2) The
mastering instance will advise the data holding instance to ship the requested data along with a lock
grant to the session holding instance. 3) The data holding instance will then ship the required data
block(s) to the session holding instance.
Illustration 5: Maximum Three Way Communication
In this context, it needs to be noted that the communication that is described here is performed over a
dedicated network communication between the nodes in the cluster; the private interconnect. The
interconnect is used for what is commonly referred to as “function” (message based) as well as “data
shipping” (block transfer) and is therefore subject to more utilization than its equivalence in a failover
cluster, failing over Single Instance Oracle Databases for example. In those clusters as well as in
Oracle RAC One Node clusters (for more information on Oracle RAC One Node see here:
http://www.oracle.com/goto/racone), no data shipping is performed. Oracle therefore recommends to
not only use a redundant interconnect, but also to size the interconnect in anticipation of its utilization
under normal operations. Further guidelines regarding interconnect sizing can be found on pages 8ff of
this document “Oracle RAC 12c Practical Performance Management and Tuning OOW13”
The exact operations that are performed to obtain write access to a block may also differ between
Oracle RAC versions, as the code area of the Oracle Cache Fusion technology, which deals with this
type of access, is subject to constant improvements without notice. For example, changing from
Oracle Database 10g Rel. 2 to later releases, significant improvements have been made in the area of
reducing message in the so called “time relevant phase”. This is the phase, during which a session is
waiting to acquire the block for write purposes. Any message that can be reduced during this time
helps to improve the performance for this operation, although messages are typically small and quick.
Another way of optimizing the communication in the cluster for the purpose for write access to data is
to dynamically change the mastering instance, once it is determined that a majority of requests to a set
of data come through an instance that is not the master of this set of data. This type of “shifting the
master to another instance in the cluster” is called Dynamic Remastering (DRM) and has been a
standard functionality of Oracle RAC since its release with Oracle Database 9i.
Similar to other code areas, DRM has been subject to quite some enhancements over releases.
Unfortunately, there has been one release (10.2.0.3), in which the DRM default configuration caused
7. more interruption when called than providing benefits thereafter. Hence, customers tended to disable
DRM for this release. Starting with Oracle Database 11g Release 2, DRM is enabled by default
(potentially overriding a previous disablement during upgrade). At the same time, the DRM default
setup has been improved to allow for a more optimized execution of DRM based on access patterns.
Oracle recommends leaving DRM enabled under all circumstances, as it is used for internal as well as
external operations. It is typically only external operations (user access patterns) that will trigger a
DRM operation that leads to a remastering of objects. If the remastering is considered interruptive to
user operations, consider optimizing _gc_policy_minimum, if necessary with help of Oracle Technical
support. Also, note that the use of large SGAs (currently defined as > 300GB) can lead to longer DRM
operations, for which reasons, “My Oracle Support” (MOS) note 1619155.1 should be reviewed, if
such large SGAs are used. For more information contact Oracle Technical Support.
Handling Contentions
Contentions are common occurrences in a multi-user system in which more than one user can request
write access to the same data at the same time regardless of whether a single (SMP) system or a multi-user
/ multi-instance system is used. In a multi-instance system, due to its distributed nature,
contention can be more impactful than on a single server system. In either case however, user
contention is best to be avoided. If an application causes contention in a Single Instance Oracle
Database (typically identified by a “concurrency” wait class in an AWR report), it is fair to assume
that the same contention will be more visible in an Oracle RAC environment, potentially impacting its
performance. It is therefore best to fix any contention related issue whenever it occurs.
Unlike in other database management systems, only simultaneous writes can cause contention in an
Oracle Database, as read operations will not be impacted by a write operation. The same is true in an
Oracle RAC database, which can be operated similarly to a single instance database by routing all user
connection requests to only one instance the RAC database. In this case, contention would mainly
occur between sessions in the same instance rather than between instances, which will lead to an
increased function and block shipping. It also shows that from a contention perspective, a 2-node or
more than 2-node setup does not make a huge difference.
The reasons for contention are manifold, but typically caused by the application. The common
principle behind any contention is frequent transactional changes to the same, typically rather small,
set of data by multiple users at the same time. This leads to “hot write spots”, which in an Oracle RAC
database can lead to an increased block shipping between instances. The “concurrency” wait class
thereby became a “cluster” wait class (in addition), as the cluster may have to wait for retrieving the
block in a remote instance.
Block shipping as a result of a write request from a remote instance leads to shipping of the current
block (as opposed to a consistent read image), which means that a log-flush (writing pending redo-data
for the block(s) being shipped) needs to be performed on the data holding instance, which is also the
one that will send the block to the requesting instance. This means that the block acquisition time
depends on the time for the log-flush. This is an Oracle RAC-specific aspect and needs to be
considered accordingly. Using Solid State Disks (SSDs) for redo log data mitigates the problem.
Contention can be caused directly or indirectly. Contention is caused by frequent transactional changes
to the same set of data by multiple users at the same time. This means, contention can occur on
dependent or metadata as well. Even if the user data is optimized so that users operate on distinct data
8. sets for the most part, any common set of metadata or dependent data can still cause contention to
some degree. The Oracle Database uses internal optimization to prevent such indirect contention as
much as possible (e.g. Locally Managed Tablespaces were introduced to relieve data dictionary
contention, while Automatic Segment Space Management introduces the idea of using an efficient
bitmap rather than a linked-list approach to managing storage extents and free blocks). However, user-created
indexes on user data can still be subject to contention, although the user data is not.
The solution to any kind of contention is therefore to either increase the size of the data set that a
group of common users is actively working on or decrease the number of users that commonly access
a given data set that is therefore subject to contention. In an Oracle Database, this typically means
using partitioning and / or connections pools, ideally both. While the basic idea behind using
connection pools is to reduce the number of sessions connected to the database and thereby reduce the
number of concurrent access on an object, partitioning data needs to be considered carefully.
The Oracle Database, unlike other database solutions, supports logical partitioning. This means that
the data is partitioned from a process and access point of view without the necessity (while possible)
to reflect the partitioning scheme on disk. In general, this type of partitioning can be used to reduce the
likeliness for concurrent access by multiple users via distributing the data over various buckets with
the intention to spread the users randomly across those buckets (hash partitioning). It needs to be
noted, however, that both techniques need to be used together, as otherwise this type of partitioning
would only further reduce the size of a data set, which would mostly lead to a negative effect. Using a
list or range partitioning scheme is useful, if the application using the database can be optimized to
make use of this partitioning scheme, in which case the assumption is certain sets of users can be
guided to mainly access a certain partition.
In an Oracle RAC database, the same principles apply. With respect to using partitioning for user data,
the assumption is that cluster-managed or dynamic database services are used in addition so that
certain groups of users would access a given set of partition(s) on a certain instance of the cluster most
of the time (“straight vertical line” approach). This will lead to this instance to be the session and data
holding instance for this data set and, over time, might lead to this instance being the mastering
instance of those partitions, as DRM would re-master based on access patterns. The alignment of the
application with the partitioning schema can be on various levels. Today’s applications often use
distinguishable modules. If there is a way to assign a different service to each module and each
module in turn majorly works on a distinguishable set of data, a perfect alignment can be established.
Emphasis here is on “majorly works”. As the Oracle RAC database is shared disk / shared cache base,
even frequent deviations from this alignment, or better, assignment are not as impactful as similar
operations on database systems using a shared nothing or sharding approach. It explains, however,
why any DBMS based scalability problem can be solved based on an Oracle RAC system, assuming
that changes are permitted on any layer of the stack, including the application layer.
Partitioning can also be used on metadata, especially user-created indexes. As logical partitioning is
used for the Oracle Database, indexes can be partitioned independently of the associated user data (and
vice versa). If an AWR report (or Oracle Enterprise Manager) reveals an index related issue, various
techniques can be used for mitigation. One of the most frequently recommended approaches is to use a
reverse key index, which assumes that the contention was caused by a right-growing index typically.
Other techniques may be suitable to mitigate such issues, while some of them may have side effects to
consider. This discussion is outside of the scope of this paper. Using either global hash partitioned
indexes or locally partitioned indexes have shown to be effective if an index contention is reported, as
both of these techniques generally lead to a better cache locality. Needless to say that removing
unnecessary instances is the best approach to avoiding index contention.
9. Illustration 6: General Solutions to Handling Contention
Changing the data set size is only half of the work. Contention by definition is typically caused by a
high number of users concurrently working on a rather small data set. The other half of the solution is
therefore to reduce the number of concurrent access to the data. In an Oracle Database users are
reflected within the database as sessions, while in an Oracle RAC Database those sessions are assumed
to be distributed across the instances in the cluster. Either way, reducing the number of sessions will
help to prevent concurrent access to data.
The simplest way of reducing the number of sessions connected to the database as a whole without
impacting the performance of the system is using a connection pool. Using an Oracle Fast Application
Notification (FAN)-enabled connection pool, such as the Oracle Universal Connection Pool (UCP),
can further improve the user experience. FAN-enabled connection pools can sign up for retrieving
Workload Repository-based Load Balancing information on a per-service basis, which improves
runtime load balancing behavior, leading to a better overall utilization of the system. The UCP also
provides “Connection Affinity” (Transaction-Based or Web Session based), which can help to
facilitate local access. For more information on services and optimized runtime load balancing in an
Oracle RAC Database, see the Oracle documentation, especially the chapter on “Managing Workloads
Using Dynamic Database Services”
Oracle RAC Meets Oracle Multitenant
Oracle Multitenant and Oracle RAC may have more in common than what meets the eye. Looking
under the hood of both technologies reveals that they have a symbiotic relationship. Both technologies
– in their own way – are used to consolidate databases. Using Oracle RAC, database consolidation on
a cluster is not an uncommon use case, which some customers have further optimized by using schema
consolidation on a RAC-enabled database. The latter use case is nowadays much better addressed
using Oracle Multitenant, which not only solves quite some of the issues that schema consolidation
entails, it also has a better integration into the Oracle RAC infrastructure. For more information on the
integration and optimized use of Oracle Multitenant Databases with Oracle RAC, see:
http://www.slideshare.net/MarkusMichalewicz/oracle-multitenant-meets-oracle-rac-ioug-2014-version
Oracle Multitenant Databases and Pluggable Databases (PDBs) simplify consolidation by removing
the need to consider inter-instance interaction and competition for server resources on a per-server
basis, assuming only one Container Database (CDB) or a very limited number of CDBs are used on a
per server basis, as those could easily be managed using current technology, such as Instance Caging
and common memory management approaches. If more than a limited number of database instances
10. are used on a per server basis, consolidation considerations such as the ones discussed in the document
linked would need to be considered, typically prolonging the deployment of a new database, which is
particularly disadvantageous in a (self service) Database as a Service environment.
If PDBs are used to consolidate formerly independent databases in a CDB, resources for the PDBs can
be managed within the scope of the container, which allows for more control over resource utilization
using the Oracle Resource Manager in general. Using PDBs also reduces the amount of background
processes as well as memory that need to be allocated on the server, increasing consolidation density.
However, increasing consolidation density within a container means increasing concurrent access on
shared resources. One concern that is typically raised is that the redo-log data for each PDB would go
into the same set of redo log files. This is why the Oracle Database 12c uses a multithreaded log-writer
by default. Using SSDs for the redo log placement as previously recommended would further mitigate
potential contention on the redo log files and thereby possibly even prevent it.
Oracle RAC Meets Oracle In-Memory
Oracle In-Memory addresses a variety of use cases facilitating memory in a more efficient way. For an
Oracle RAC databases, it addresses at least two immediate use cases directly as shown in illustration 7
below. Oracle RAC databases have traditionally been used to perform Online Transaction Processing
(OLTP) and Data Warehouse (DWH) operations on the same database, mostly by separating the
different use cases on different nodes in the cluster. By Oracle In-Memory providing a “Dual Format”
Database, allowing for OLTP and DWH operations being performed on the same database with lesser
interference, these benefits directly translate to an Oracle RAC Database.
Illustration 7: Oracle In-Memory Address Oracle RAC Use Cases Directly
Illustration 7 also shows that Oracle In-Memory replaces analytic indexes using the Column Store. As
previously discussed, indexes can be subject to contention in general as well in an Oracle RAC
database, which is why one consideration could be to remove indexes that are not (frequently) used.
With Oracle In-Memory, analytic indexes can be removed very easily, which has an immediate effect,
if index contention based on such instances was identified for an Oracle RAC database.
11. Another benefit of using Oracle In-Memory for an Oracle RAC Database may not be as obvious and
requires some general understanding of the Oracle In-Memory architecture. The key component in this
architecture is the In-Memory Column Store, which is a separate area in the SGA of each instance.
Objects in the column store are compressed and are subject to a simplified lock management. Which
means that operations on the column store will not affect overall scalability for the data managed by
the rest of the database and data in the regular buffer cache, which in turn will be smaller. As
discussed as part of Dynamic Remastering, smaller database instance can lead to better DRM ad
recovery performance. Of course, using Oracle In-Memory is only the first step of using memory in
the stack in a more efficient way deserves another, more in-depth detailed discussion.
Summary
Managing an increasing amount of data using a database management system and scaling application
workload over a database system to serve an increasing or fluctuating amount of users is one of the
oldest and at the same time one of the most challenging problems IT departments face. There are,
however, only two dimensions to scalability; vertical and horizontal, and, of course, a combination
therefore. For horizontal scaling various database management systems use different approaches,
which all have the same goal; bring the data as close to the place where it is processed and have the
user connect to the very same place. A variety of techniques can be used when trying to achieve this
goal, however, there are pros and cons for each one of them. Assuming that changes can be made in
each layer between the user who connects to the application and the application connecting to the
database management system, any scalability problem that can generally be solved by a database can
be solved by an Oracle RAC Database. It is the goal of Oracle RAC, however, to solve any problem
without requiring changes to the application, at least considering standard applications. Continuing its
efforts, Oracle will strive to maintain this goal going forward.
Contact address:
Markus Michalewicz
Oracle America
500 Oracle Parkway M/S 4OP840
Redwood City, CA, 94065
United States of America
Phone: +16505065444
Fax: +16505065444
Email Markus.Michalewicz@oracle.com
Internet: www.oracle.com/goto/rac
Twitter: @OracleRACpm