SlideShare a Scribd company logo
Alexander Tokarev
Oracle In-Memory from trenches
Speed-of-light faceted search
deep tech dive
RuOUG
• Alexander Tokarev
• Age 38
• Database performance architect at DataArt:
1. Solution design
2. Performance tuning
3. POCs and crazy ideas
• First experience with Oracle - 2001, Oracle 8.1.7
• First experience with In-Memory solutions - 2015
• Lovely In-Memory databases:
1. Oracle InMemory
2. Exasol
3. Tarantool
• Hobbies: spearfishing, drums
Who am I
 Faceted search
 Project
 Architecture
 Faceted search place
 Performance issues
 In-memory internals
 Implementation steps and traps
 Key findings
 Conclusion
 Q&A
Agenda
Faceted search
Facet
Constraint
Facet count
Facet types
Values/Terms
Interval
Range
1. Filter by multiple taxonomies
2. Combine text, taxonomy terms and numeric values
3. Discover relationships or trends between objects
4. Make huge items volume navigable
5. Simplify "advanced" search UI
What for
Tags
• Keyword assigned to an object
• Chosen informally and personally by item's creator or viewer
• Assigned by the viewer + unlimited = Folksonomy
• Assigned by the creator + limited = Taxonomy
• Tag-based
• Plain-structure based
Faceted search base
Object Author Category Format Price
Days to
deliver
The Oracle Book: Answers to
Life's Questions
Cerridwen
Greenleaf Fortune telling Paper 18 4
Ask a Question, Find Your Fate:
The Oracle Book Ben Hale Fantasy Kindle 12 2
Object Tags
Book 1 Paper, Fortune telling, Very good book, worth reading
Book 2 Ben Halle, Fantasy, Kindle
1. Facet source: taxonomy + folksonomy
2. Facet types: terms mostly
3. Implementation type: tag-based
Our case facets
Our case statistics
Extracted entities: Objects, Tags, Tags of objects, Facet types
Date: 2016 to 2017
Tagged objects: 3 000 000
Applied tags: 42 000 000
Unique tags count: 100 000
Max tags count for an object: 15
Max tag length: 50
Facets count: 150
Data volume = StackOveflow x 3!
Architecture
Oracle
main
Oracle
DG
Application
server
Application
server
Load
balancer
Client
browser
10000 RPS
In-memory
cluster
Architecture
~20 fine-tuned SQL queries
UI
Database structure
OLTP DWH
ONLY ACTIVE VALUES
Search table structure
0.0010.010.11
Search by PK
Search by 1 tag
Search by 5 tags
No In-Memory
Performance
Full Text Search server
Act III
To FTS, or not to FTS, that is the
question
Solution design
Implementation
It isn’t our case completely!
1. Limited POC resources: people + time
2. Customer has a license
3. Wide searсh table
4. A lot of rows
5. A lot of equal values:
• Object types
• Facet types
• Tag names
6. Size is fine for InMemory
7. Queries use a lot of aggregate functions
Why to try
Dual storage format!
Internals
Search table structure
Naive implementation
InMemory size
Options Volume, Gb
data in row format 6,5
no compress InMememory 7,2
Performance
Performance
Performance
Performance profit
2x <> 21x!
Where is our performance?!
InMemory internals
1. IMCU – InMemory Compression Unit
Size = 1 Mb
Columnar Data
2. SMU – Snapshot Metadata Unit
Size = 64 Kb
Zone Map Based Index
Zone Maps
ZoneMap on
State column
InMemory Zone Maps
Implementation
Implementation
InMemory Zone Maps
InMemory Zone Maps
Doesn’t work!!!
Android .. TestComplete
InMemory size
Options
Volume,
Gb
Load time,
seconds
data in row format 6,5 300
no compress InMememory 7,2 40
memcompress for dml 6 45
memcompress for query low 4 45
memcompress for query high 2,5 49
memcompress for capacity low 3,5 48
memcompress for capacity high 2 50
No significant differences for loading!
FastStart
3x loading speed boost!
Columnar format
InMemory Zone Maps
CREATE TABLE AS SELECT * FROM … ORDER BY
CLUSTERING BY LINEAR ORDER YES ON DATA MOVEMENT + ALTER TABLE MOVE
ONLINE
Test rerun
Where is our performance?!
Same metrics!
InMemory aggregations
Sort of BLOOM
filter
Zone Maps and JOINs
1. Zone Maps - not efficient!
2. Key Vector transformation
ignored – replaced by bloom!
The same for VARCHAR!
Join groups
Sort of Oracle JOIN CLUSTER
Join groups
JOIN condition must have only JOIN GROUP fields!
Table structure
+ all indexes are dropped
Final table structure
Searchable via Full Text Search indexes!
Final table structure
+ all indexes are dropped
No InMemory
• Sporadic search degradation – 5-10%
• Happens when a lot of DML operations
Performance spikes
1. Changed records -> Mark as stale
2. Stale records -> Read from row storage
• buffer cache
• disk
3. Stale records -> repopulate IMCU:
• Staleness threshold
• Trickle repopulation process - each 2 minutes
• processes count - INMEMORY_MAX_REPOPULATE_SERVERS
• processes utilization - INMEMORY_TRICKLE_REPOPULATE_SERVERS_PERCENT
Transaction processing
IMCU invalidation parameters
Row storage read evidences
Should be equal 0!
Repopulation process
Repopulation process
Default values
1. INMEMORY_MAX_REPOPULATE_SERVERS = 4
2. INMEMORY_TRICKLE_REPOPULATE_SERVERS_PERCENT = 8
Performance spikes elimination
Troubleshooting
More than 500 statistics!
More than 190 parameters!
Troubleshooting
8 statistics covers 90% cases!
Troubleshooting
3 parameters covers 90% cases!
Troubleshooting
View name Description
V$IM_COL_CU SMU detailed information per column
V$IM_SMU_HEAD
+
V$IM_HEADER SMU header statistics
v$im_segments Inmemory segment parameters
4 views covers 90% cases!
Performance with In-Memory final
Performance with In-Memory final
Performance with In-Memory final
 InMemory size <> table data size
 All data InMemory <> High performance
 Decent time to be loaded
 8 IM statistics is enough
 Big updates => full inmemory repopulation
 Small updates => trickle repopulation
 Trickle parameters relevant to workload
DBAs findings
 Advanced IM features <> significant profit our case
 Zone maps = numeric and date data type only
 Dictionary pruning – not in Oracle 12.2 and 18
 Simple data types = High perfomance
 High compression <> Slow ingestion
 rollback = IMCU repopulation
Developers finding
 Add extra memory 
 Implement a POC with IM DWH
 Understand all 523 IM statistics + 190 parameters
 Use FastStart to speedup database wakeup
 Play with Oracle 18c features
Furthers plans
 Always try and measure
 IM works for short queries as well
 Understanding of IM internals is a must
 Application changes are required
 No extra software/hardware introduced
 Fast POC followed by production deploy
 4x times performance boost
Conclusion
Thank you for your time!
Alexander Tokarev
Database expert
DataArt
shtock@mail.ru
https://github.com/shtock
https://www.linkedin.com/in/alexander-tokarev-14bab230
Ad

More Related Content

What's hot (20)

Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack
MongoDB
 
Sql server 2016 it just runs faster sql bits 2017 edition
Sql server 2016 it just runs faster   sql bits 2017 editionSql server 2016 it just runs faster   sql bits 2017 edition
Sql server 2016 it just runs faster sql bits 2017 edition
Bob Ward
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
Bob Ward
 
Inside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPInside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTP
Bob Ward
 
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
Lucidworks
 
SQL Server In-Memory OLTP: What Every SQL Professional Should Know
SQL Server In-Memory OLTP: What Every SQL Professional Should KnowSQL Server In-Memory OLTP: What Every SQL Professional Should Know
SQL Server In-Memory OLTP: What Every SQL Professional Should Know
Bob Ward
 
User Defined Partitioning on PlazmaDB
User Defined Partitioning on PlazmaDBUser Defined Partitioning on PlazmaDB
User Defined Partitioning on PlazmaDB
Kai Sasaki
 
TPC-H in MongoDB
TPC-H in MongoDBTPC-H in MongoDB
TPC-H in MongoDB
Aung Thu Rha Hein
 
Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017
Bob Ward
 
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Codemotion
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...
Bob Ward
 
Apache Spark 3.0: Overview of What’s New and Why Care
Apache Spark 3.0: Overview of What’s New and Why CareApache Spark 3.0: Overview of What’s New and Why Care
Apache Spark 3.0: Overview of What’s New and Why Care
Databricks
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeMaking Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta Lake
Databricks
 
Testing batch and streaming Spark applications
Testing batch and streaming Spark applicationsTesting batch and streaming Spark applications
Testing batch and streaming Spark applications
Łukasz Gawron
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid World
Tanel Poder
 
Neo4j 4.1 overview
Neo4j 4.1 overviewNeo4j 4.1 overview
Neo4j 4.1 overview
Neo4j
 
Cloud Backup Overview
Cloud Backup Overview Cloud Backup Overview
Cloud Backup Overview
MongoDB
 
High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016
Vlad Mihalcea
 
MongoDB Aggregation Performance
MongoDB Aggregation PerformanceMongoDB Aggregation Performance
MongoDB Aggregation Performance
MongoDB
 
Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...
Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...
Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...
Lucidworks
 
Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack Getting Started with MongoDB Using the Microsoft Stack
Getting Started with MongoDB Using the Microsoft Stack
MongoDB
 
Sql server 2016 it just runs faster sql bits 2017 edition
Sql server 2016 it just runs faster   sql bits 2017 editionSql server 2016 it just runs faster   sql bits 2017 edition
Sql server 2016 it just runs faster sql bits 2017 edition
Bob Ward
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
Bob Ward
 
Inside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTPInside SQL Server In-Memory OLTP
Inside SQL Server In-Memory OLTP
Bob Ward
 
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
Lucidworks
 
SQL Server In-Memory OLTP: What Every SQL Professional Should Know
SQL Server In-Memory OLTP: What Every SQL Professional Should KnowSQL Server In-Memory OLTP: What Every SQL Professional Should Know
SQL Server In-Memory OLTP: What Every SQL Professional Should Know
Bob Ward
 
User Defined Partitioning on PlazmaDB
User Defined Partitioning on PlazmaDBUser Defined Partitioning on PlazmaDB
User Defined Partitioning on PlazmaDB
Kai Sasaki
 
Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017
Bob Ward
 
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Codemotion
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...
Bob Ward
 
Apache Spark 3.0: Overview of What’s New and Why Care
Apache Spark 3.0: Overview of What’s New and Why CareApache Spark 3.0: Overview of What’s New and Why Care
Apache Spark 3.0: Overview of What’s New and Why Care
Databricks
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeMaking Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta Lake
Databricks
 
Testing batch and streaming Spark applications
Testing batch and streaming Spark applicationsTesting batch and streaming Spark applications
Testing batch and streaming Spark applications
Łukasz Gawron
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid World
Tanel Poder
 
Neo4j 4.1 overview
Neo4j 4.1 overviewNeo4j 4.1 overview
Neo4j 4.1 overview
Neo4j
 
Cloud Backup Overview
Cloud Backup Overview Cloud Backup Overview
Cloud Backup Overview
MongoDB
 
High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016High-Performance Hibernate Devoxx France 2016
High-Performance Hibernate Devoxx France 2016
Vlad Mihalcea
 
MongoDB Aggregation Performance
MongoDB Aggregation PerformanceMongoDB Aggregation Performance
MongoDB Aggregation Performance
MongoDB
 
Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...
Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...
Building a Vibrant Search Ecosystem @ Bloomberg: Presented by Steven Bower & ...
Lucidworks
 

Similar to Oracle InMemory hardcore edition (20)

P9 speed of-light faceted search via oracle in-memory option by alexander tok...
P9 speed of-light faceted search via oracle in-memory option by alexander tok...P9 speed of-light faceted search via oracle in-memory option by alexander tok...
P9 speed of-light faceted search via oracle in-memory option by alexander tok...
Alexander Tokarev
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
Speedment, Inc.
 
Hardware Provisioning
Hardware ProvisioningHardware Provisioning
Hardware Provisioning
MongoDB
 
MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...
MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...
MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...
MongoDB
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Daniel Coupal
 
Internals of Presto Service
Internals of Presto ServiceInternals of Presto Service
Internals of Presto Service
Treasure Data, Inc.
 
Silicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDBSilicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDB
Daniel Coupal
 
High Performance With Java
High Performance With JavaHigh Performance With Java
High Performance With Java
malduarte
 
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB
 
Hardware Provisioning
Hardware Provisioning Hardware Provisioning
Hardware Provisioning
MongoDB
 
Automated product categorization
Automated product categorization   Automated product categorization
Automated product categorization
Warply
 
Automated product categorization
Automated product categorizationAutomated product categorization
Automated product categorization
Andreas Loupasakis
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
C4Media
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
Malin Weiss
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
Speedment, Inc.
 
Lucene Bootcamp - 2
Lucene Bootcamp - 2Lucene Bootcamp - 2
Lucene Bootcamp - 2
GokulD
 
Preparing Codes for Intel Knights Landing (KNL)
Preparing Codes for Intel Knights Landing (KNL)Preparing Codes for Intel Knights Landing (KNL)
Preparing Codes for Intel Knights Landing (KNL)
AllineaSoftware
 
Apache con 2020 use cases and optimizations of iotdb
Apache con 2020 use cases and optimizations of iotdbApache con 2020 use cases and optimizations of iotdb
Apache con 2020 use cases and optimizations of iotdb
ZhangZhengming
 
Hardware Provisioning for MongoDB
Hardware Provisioning for MongoDBHardware Provisioning for MongoDB
Hardware Provisioning for MongoDB
MongoDB
 
Fundamentals.pptx
Fundamentals.pptxFundamentals.pptx
Fundamentals.pptx
dhivyak49
 
P9 speed of-light faceted search via oracle in-memory option by alexander tok...
P9 speed of-light faceted search via oracle in-memory option by alexander tok...P9 speed of-light faceted search via oracle in-memory option by alexander tok...
P9 speed of-light faceted search via oracle in-memory option by alexander tok...
Alexander Tokarev
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
Speedment, Inc.
 
Hardware Provisioning
Hardware ProvisioningHardware Provisioning
Hardware Provisioning
MongoDB
 
MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...
MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...
MongoDB .local Toronto 2019: Finding the Right Atlas Cluster Size: Does this ...
MongoDB
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Daniel Coupal
 
Silicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDBSilicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDB
Daniel Coupal
 
High Performance With Java
High Performance With JavaHigh Performance With Java
High Performance With Java
malduarte
 
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB
 
Hardware Provisioning
Hardware Provisioning Hardware Provisioning
Hardware Provisioning
MongoDB
 
Automated product categorization
Automated product categorization   Automated product categorization
Automated product categorization
Warply
 
Automated product categorization
Automated product categorizationAutomated product categorization
Automated product categorization
Andreas Loupasakis
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
C4Media
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
Malin Weiss
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
Speedment, Inc.
 
Lucene Bootcamp - 2
Lucene Bootcamp - 2Lucene Bootcamp - 2
Lucene Bootcamp - 2
GokulD
 
Preparing Codes for Intel Knights Landing (KNL)
Preparing Codes for Intel Knights Landing (KNL)Preparing Codes for Intel Knights Landing (KNL)
Preparing Codes for Intel Knights Landing (KNL)
AllineaSoftware
 
Apache con 2020 use cases and optimizations of iotdb
Apache con 2020 use cases and optimizations of iotdbApache con 2020 use cases and optimizations of iotdb
Apache con 2020 use cases and optimizations of iotdb
ZhangZhengming
 
Hardware Provisioning for MongoDB
Hardware Provisioning for MongoDBHardware Provisioning for MongoDB
Hardware Provisioning for MongoDB
MongoDB
 
Fundamentals.pptx
Fundamentals.pptxFundamentals.pptx
Fundamentals.pptx
dhivyak49
 
Ad

More from Alexander Tokarev (15)

Rate limits and all about
Rate limits and all aboutRate limits and all about
Rate limits and all about
Alexander Tokarev
 
rnd teams.pptx
rnd teams.pptxrnd teams.pptx
rnd teams.pptx
Alexander Tokarev
 
FinOps for private cloud
FinOps for private cloudFinOps for private cloud
FinOps for private cloud
Alexander Tokarev
 
Graph ql and enterprise
Graph ql and enterpriseGraph ql and enterprise
Graph ql and enterprise
Alexander Tokarev
 
FinOps introduction
FinOps introductionFinOps introduction
FinOps introduction
Alexander Tokarev
 
Row Level Security in databases advanced edition
Row Level Security in databases advanced editionRow Level Security in databases advanced edition
Row Level Security in databases advanced edition
Alexander Tokarev
 
Row level security in enterprise applications
Row level security in enterprise applicationsRow level security in enterprise applications
Row level security in enterprise applications
Alexander Tokarev
 
Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018
Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018
Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018
Alexander Tokarev
 
Oracle JSON internals advanced edition
Oracle JSON internals advanced editionOracle JSON internals advanced edition
Oracle JSON internals advanced edition
Alexander Tokarev
 
Oracle Result Cache deep dive
Oracle Result Cache deep diveOracle Result Cache deep dive
Oracle Result Cache deep dive
Alexander Tokarev
 
Oracle result cache highload 2017
Oracle result cache highload 2017Oracle result cache highload 2017
Oracle result cache highload 2017
Alexander Tokarev
 
Oracle json caveats
Oracle json caveatsOracle json caveats
Oracle json caveats
Alexander Tokarev
 
Apache Solr for begginers
Apache Solr for begginersApache Solr for begginers
Apache Solr for begginers
Alexander Tokarev
 
Data structures for cloud tag storage
Data structures for cloud tag storageData structures for cloud tag storage
Data structures for cloud tag storage
Alexander Tokarev
 
Oracle High Availabiltity for application developers
Oracle High Availabiltity for application developersOracle High Availabiltity for application developers
Oracle High Availabiltity for application developers
Alexander Tokarev
 
Row Level Security in databases advanced edition
Row Level Security in databases advanced editionRow Level Security in databases advanced edition
Row Level Security in databases advanced edition
Alexander Tokarev
 
Row level security in enterprise applications
Row level security in enterprise applicationsRow level security in enterprise applications
Row level security in enterprise applications
Alexander Tokarev
 
Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018
Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018
Oracle JSON treatment evolution - from 12.1 to 18 AOUG-2018
Alexander Tokarev
 
Oracle JSON internals advanced edition
Oracle JSON internals advanced editionOracle JSON internals advanced edition
Oracle JSON internals advanced edition
Alexander Tokarev
 
Oracle Result Cache deep dive
Oracle Result Cache deep diveOracle Result Cache deep dive
Oracle Result Cache deep dive
Alexander Tokarev
 
Oracle result cache highload 2017
Oracle result cache highload 2017Oracle result cache highload 2017
Oracle result cache highload 2017
Alexander Tokarev
 
Data structures for cloud tag storage
Data structures for cloud tag storageData structures for cloud tag storage
Data structures for cloud tag storage
Alexander Tokarev
 
Oracle High Availabiltity for application developers
Oracle High Availabiltity for application developersOracle High Availabiltity for application developers
Oracle High Availabiltity for application developers
Alexander Tokarev
 
Ad

Recently uploaded (20)

Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 

Oracle InMemory hardcore edition

Editor's Notes

  • #2: Hello, guys. My name is Alex and I work for DataArt as a performance architect. Does someone use Oracle database in your applications? Have you ever used Oracle InMemory option to bring a performance profit? Perfect. Today we are going to discuss how we improved faceted search performance with Oracle InMemory option for one of our client. Важно, что я не буду влезать в технические детали реализации отдельных фишек, а просто расскажу, почему у нас они не взлетели и как мы их заводили, иначе наш доклад будет очень долгим
  • #3: Let me introduce myself I work for DataArt as a performance architect and my main focus is data warehousing for big clients. I have huge Oracle experience but I works with Exasol and Tarantool databases either.
  • #4: We have rather straightforward agenda for today discussion We’ll discuss what is faceted search, client application overview and its performance issues I try to explain how Oracle InMemory option is implemented internally but without digging into details. My main focus is how we made the customer happy and share with you our issues you could face with as well For sure I’ll answer your questions.
  • #5: Everybody know what is faceted search. We have groups named facets, Values named constraints and Figures names facet counts
  • #6: Common facet types are terms Intervals And ranges
  • #7: We need facets if Users need to filter content using multiple taxonomy terms at the same time. Users want to combine text searches, taxonomy term filtering, and other search criteria. trying to discover relationships or trends between contents. Navigate inside tons of data And your end users are already frightened by "advanced" search forms in enterprise applications
  • #8: There are many ways how to implement faceted search internally and one of them is using tags. Everyone knows what is tags but let me reming. Tag is a keyword assigned to an object Mostly is is chosen informaly If it is assigned by the viewer and tags count is unlimited it is folksonomy When assigned by the creator and a set of tags is limited it is taxonomy
  • #9: So we could store data for facets in tags which is extremely convenient for terms faceting by folksonomies and taxonomies Or in a plain table which is very convenient for range, interval facets defined by taxonomies. I think everything is clear enough but may be you have some questions about theory? So, let’s move on
  • #10: We use taxonomy and foksonomy, so the best part of our facets are terms and we choosen tag-based storage.
  • #11: Let me show some statistics. We extract objects, tags, facets for 2 years We have about 3 000 000 objects tagged, 42 000 000 terms applied, 100 000 unique terms, maximum tags count is 15 and there are about 150 facets. Is it whether decent volume or not? I think it is decent because we are bigger than StackOverflow by tags in 3 times.
  • #12: We have ordinal architecture for enterprise. Web browser, balancer, a set of application servers which deal with inmemory grid and oracle with the replica on the backend. Pay attention that there is no full text search server which has been prohibited in accordance with customer policies.
  • #13: We have microservice architecture and one of the services it tagging service which is responsible for data ingestion and faceted search. It is widely used by many other services and receives about 10000 requests per second. In order to serve search requests there are about 20 fine-tuned sql queries.
  • #14: I can’t show you real printscreens from the application because of NDA so I implemented the mockup in Paint. As we could see UI is full of features as Predefined faceted search templates Full text search by random tags. Here it is done by names. We could search via audit information and we have faceted navigation for sure. We could filter out objects where some tags are present (not tag values) and user paging. It is rather sophisticated UI.
  • #15: Without digging into details I could say that the best part of search is made on a wide Denormalized table with tags which stores only current tag values
  • #16: We could have a look into the table in details. It contains tagged object types, facet information, tags information and values. There is Denormalized object name and object description tags because they are used in full text search mostly.
  • #17: Let’s have a look into performance metrics. Pay attention the insert performance is very good so I used logarithmic scale to put everything in one diagram. On a first glance figures look good. We do complicated searches less than zero point two seconds but actually it is bad because we need to serve more and more users and data so queries become slow
  • #18: In accordance with one of my otherspresentations the best option for faceted search is full text search dedicated server but we had a lack of time to implement it as well as reluctant to introduce additional layers
  • #19: We started looking into InMemory solutions especialy regarding the customer already had Oracle InMemory license. In accordance with Oracle documentation it should be used for analytical queries which isn’t our case completely but we decided to try.
  • #20: Why we should try Because we are under limitations preasure The customer has a license The table is rather wide, full of data which has a lot of equal values So it will fit in memory especialy regarding compression features And last but not least queries are full of aggregate functions
  • #21: In accordance with the Oracle documentation InMemory feature is sort of silver bullets so we decided not waste time understanding how it works internaly. What we knew that the option stores row and columnar data in dual mode maintaining their consistency automatically.
  • #22: Let me remind you our table
  • #23: We set InMemory area size to 10 gigabytes and assigned the table into the area. We decided that performance will be faster without compression so no compression option was used.
  • #24: What is significant to stress that InMemory brought some overhead without compression
  • #25: So we started our tests and faced with the difference in performance was extremely unsignificant which is expect for the search by primary keys but not for search by tags
  • #26: So we started our tests and faced with the difference in performance was extremely unsignificant which is expect for the search by primary keys but not for search by tags
  • #27: So we started our tests and faced with the difference in performance was extremely unsignificant which is expect for the search by primary keys but not for search by tags
  • #28: When we started our POC we relied on Lufthansa usecase when they got average 21 performance profit but our profit was 10 times less. It means that we do something wrong and we need to understand how InMemory works internaly.
  • #29: Do you recall I mentioned InMemory area? It consists from 2 parts actualy. The first one in IMCU – InMemory Compression Unit which stores data in columnar format And SMU – Snapshot Metadata Unit which stores transaction related metadata, dictionaries and Zone Maps. Do you know what is zone map?
  • #30: Let’s have a look into simplified example. We have sales table which is split by 1 Mb IMCU blocks. Each block stores minimal and maximum values for each column so when we need to search sales for California we scans zone maps and check does our value is located in min/max boundaries so we do not scan extra blocks.
  • #31: I converted SMU zone maps in readable format. As you could see they are stored per-column base as I told before. You see numeric zone maps and character ones. Please pay attention that dictionary_entries column contains only zero.
  • #32: As we understood it happens because no compression were switched on.
  • #33: Let’s enable the compression
  • #34: We’ve seen that dictionary extries had been populated which should give dictionary-based pruning in accordance with the documentation Кстати, не все zone maps одинаково полезны. Как выдумаете какая из них будет абсолютно бесполезна и не будет использоватьс?
  • #35: We’ve seen that dictionary extries had been populated which should give dictionary-based pruning in accordance with the documentation Не работает оно чаще всего из-за того, что zone maps дают слишком широкий диапазон. Более того, нет статистик, которые позволяют отличать причину CU pruning – dictionary based или Zone maps
  • #36: Compression ration is rather high but it depends from you data for sure. You could see that compression doesn’t influence on ingestion so high compression could be used as the default. Frankly speaking loading 6 gigabytes for 1 minute it is to much so we decided to have a look into FastStart feature.
  • #37: The feature writes InMemory area in a columnar format and once database is rebooted it loads the data in memory with the speed of file reading so we got 3 times loading profit.
  • #38: Тем не менее вчера я увеличил коэффициент pruning и иногда компрессию использовав как вы думаете что? Самое обидное, что до этого слайда я дошёл только вчера и проверил его. Само собой я стал гуглить, чтобы убедиться., что я уникален в своём открытии, но оказалось,, что Мария Колган тоже нашла решение с order by, но решение с clustering это моё секретное ноухау.
  • #39: It is time for rerun. Try to guess which performance profit we got once we used high compression? Actually no profit at all. Поэтому придётся разбираться в деталях
  • #40: В Oracle InMemory очень много умных трансформаций, которые видно в плане и чем более сложные джоины и агрегаты тем более вероятно их увидеть. Одной из них является InMemory aggregation, которая показывается такой умной картинкой. Ключевое для нас в ней то, что создаётся аналог bloom фильтра Key vector и по нему происходит джоин sales с stores и products и при этом считаются суммы в процессе скана sales.
  • #41: Помните, я показывал в прошлой презентации sql для поиска по нескольким условиям с хитрыми групп бай. Именно для них использовался механизм vector transformation, который задуман для inmemory агрегаций, но как показал наш опыт серьёзно ускоряет джоины на запросах с агрегатами. Так вот всё это на полях типа binary, которые были в джоинах заменялось на блум фильтр, который был медленнее.
  • #42: Мы попробовали решить эту задачу через так называемые JOING GROUPS. Это аналоги JOIN CLUSTER
  • #43: Сделали join group. Кстати, вопрос. Как понять по плану или по статистикам, что join group используются? А никак! ни в плане ни в статистиках её не видно. Её видно только в Realtime SQL monitor, поэтому пришлось парсить его XML и через него вычислять. Стали разбираться когда они используются и результат такой. Они используются только тогда, когда в условие джоина есть поля, указанные в join groups, а по нашим запросам это было не всегда возможно.
  • #44: Changed all types to bigint and removed indexes
  • #45: We understood that no reasons to store all columns inmemory because we search by them via Oracle Full Text Search indexes
  • #46: So the final structure is simple data types without b-tree indexes and 2 fields are removed from inmemory storage
  • #47: We did some performance tests and found sporadic search degradation which happens where records are inserted Помните, я говорил, что у меня нет презентаций без звоночков!
  • #48: Let’s understand how Oracle provides read consistency for InMemory Once a record is changed it is marked as stale. All stale records are read either from buffer cache or disk. Oracle repopulates stale records by staleness threshold or each 2 minutes by so named trickle repopulation process. It could be done in parallel plus we could state how much resources could be consumed for stale records repopulation
  • #49: Собственно я думаю эти параметры отвечают за инвалидацию IMCU, но у нас не хватало времени изучить это детально. На самом деле их около 34, но трогать их весьма боязно.
  • #50: Как же можно понять, что происходит чтение с диска, а не с InMemory? Очень просто Эти две статистики должны быть по нулям
  • #51: За самим процессом пересчёта IMCU можно наблюдать через 2 представления
  • #52: Тут пойман очень интересный процесс. Начался процесс trickle_repopulation, было обнаружено. Что затронуто очень много данных и произошла полная перезагрузка
  • #53: Let’s have a look what we have by default
  • #54: As soon as we set 4 repopulation servers and 8 percent of time to repopulate stale records and performance spikes disappeared
  • #55: InMemory option is very easily to trace and maintain but let me share a secret information with you. We needn’t to know all of them at all.
  • #56: 8 parameters covers the best part of InMemory performance tuning. Let me share one more secret. only 1 parameter is enough. Try to guess which one. It states how efficient zone maps indexes are used.
  • #57: 3 settings covers the best part of dba activities
  • #58: And 2 views give us enough information for basic InMemory undertanding
  • #59: Let’s have a look into final figures. As you could see we have about 4-5 times performance profit which isn’t so good but regarding our use case is fine.
  • #60: Let’s have a look into final figures. As you could see we have about 4-5 times performance profit which isn’t so good but regarding our use case is fine.
  • #61: Let’s have a look into final figures. As you could see we have about 4-5 times performance profit which isn’t so good but regarding our use case is fine.
  • #62: Let’s elaborate DBA findings. InMemory area size should be estimated taking into account compression and your data If we have all data in memory it doesn’t mean we are extremely fast InMemory takes time to be loaded after server reboot 8 statistics is enough to help developers with the best part of their issues Alling tackle processes settings with your workload
  • #63: Findings for developers are that in case of our usecase extremely advanced inmemory features like join groups, inmemory aggregations hasn’t brought significant performance profit. Zone maps work perfect with numeric and date data types. Dictionary based pruning doesn’t work in our oracle version at least. More simple data types are used – more performance we have And extremely significant that high compression doesn’t affect ingestion speed То, что происходит repopulate даже в случае незакомиченной транзакции радикально отличает от result cache.
  • #64: Faststart Add some star schema data with star – try what for IM is intended initialy Tell about cool stuff with multithread scans
  • #65: Our main conclusion is that you shouldn’t rely on documentation and experts – try and measure your particular use-case IM works with short queries as well Without understanding how it works you will not get performance profit You have to change application to use simple data types What is good no extra layers, message queues, hardware need to be added We had managed to put our IM POC in production very fast (1 week actualy) And business got 5 times performance boost. Probably that’s it from my side for today.
  • #66: Thank you for your time and I’m ready answer your questions