SlideShare a Scribd company logo
Resolving Firebird
Performance Problems
© IBSurgeon
www.ib-aid.com
Usually big production database runs at
• Firebird 2.5
• Classic or SuperClassic architecture
• They can scale accross multiple CPU/cores!
• In Firebird 3 SuperServer is the better choice…
• but now let’s talk about 2.5 Classic and SuperClassic
What are performance indicators to
monitor in Firebird 2.5?
1. Lock table parameters
2. Monitoring record versions and garbage collection
3. Transactions
1. Long running transactions
2. Rolled back transactions
4. Temporary files – quantity and size
5. Connections, SQL queries and transactions
LOCK TABLE MONITORING
fb_inet_serverfb_inet_server
How lock table works
fb_inet_server
Firebird
Page cache Page cache Page cache
Page X
How to resolve a
write conflict when
changing the same
page?
How lock table works
fb_inet_server fb_inet_server fb_inet_server
mapped
Lock table
mapped mapped
shared memory
All requests to access
internal database objects go
through lock table
Why should we monitor lock table
parameters?
• Lock table is a critical part of Classic and SuperClassic
architectures
• Access to shared objects is implemented through locks in
Lock table…
Analysis of lock table parameters is the easiest
way to reveal problems with concurrent access
Lock table analysis - raw
• Fb_lock_print –d <database_name>
• LOCK_HEADER BLOCK
• Version: 17, Active owner: 0, Length: 6291456, Used: 5517236
• Flags: 0x0001
• Enqs: 10906251, Converts: 58907, Rejects: 22373, Blocks:
210859
• Deadlock scans: 5841, Deadlocks: 0, Scan interval: 10
• Acquires: 13636997, Acquire blocks: 558879, Spin count: 0
• Mutex wait: 4.1%
• Hash slots: 2003, Hash lengths (min/avg/max): 2/ 11/ 26
• Remove node: 0, Insert queue: 0, Insert prior: 0
• Owners (107): forward: 26696, backward: 5517140
• Free owners: *empty*
• Free locks (1630): forward: 3878196, backward: 2264580
• Free requests (793): forward: 5412916, backward: 1906516
• Lock Ordering: Enabled
Lock table analysis – where to look
• Fb_lock_print –d <database_name>
• LOCK_HEADER BLOCK
• Version: 17, Active owner: 0, Length: 6291456, Used: 5517236
• Flags: 0x0001
• Enqs: 10906251, Converts: 58907, Rejects: 22373, Blocks:
210859
• Deadlock scans: 5841, Deadlocks: 0, Scan interval: 10
• Acquires: 13636997, Acquire blocks: 558879, Spin count: 0
• Mutex wait: 4.1%
• Hash slots: 2003, Hash lengths (min/avg/max): 2/ 11/ 26
• Remove node: 0, Insert queue: 0, Insert prior: 0
• Owners (107): forward: 26696, backward: 5517140
• Free owners: *empty*
• Free locks (1630): forward: 3878196, backward: 2264580
• Free requests (793): forward: 5412916, backward: 1906516
• Lock Ordering: Enabled
Thresholds and recommendations
Essential values: Firebird.conf params to tune:
Length: 6291456 LockMemSize - default is 1Mb
Set at least:
Cache_pages * max_connections_count
* 100
Hash slots: 2003, Hash lengths
(min/avg/max): 2/ 11/ 26
LockHashSlots = 1009
Prime number. Set x20, like 20011
Mutex wait: 4.1% No parameter to adjust. More than 10%
could be a problem, check hardware and
concurrency settings
Owners (107) Number of connections for server
Use optimized Firebird configuration files from IBSurgeon:
http://ib-aid.com/en/optimized-firebird-configuration/
How to monitor lock table
• 1) Command prompt (on the server only), run every N min
fb_lock_print -d E:OLTP-EMULoltp30.fdb
• 2) Alerts and automatic
recommendations
Monitoring record versions and
garbage collection in Firebird
What is a record version?
TR50 TR60
UPDATE
set data =200read
N Tx Data
1 10 100
60 200
...
read
write
Different transactions can see different versions of
the record.
Why many record versions are bad
The more
versions record
has, the more
scan operations
server does to
find necessary
version
After data load or
restore – no
versions
• When UPDATE changes indexed fields, indices also must
be updated, and - UPDATE does not update keys in the
index, it adds new keys for new record version!
• DELETE does not delete index keys!
N Tx Data
1 10 100
60 200
...
Index key
= 100
Index key
= 200
Why many record versions are bad
What to monitor?
Database statistics
• Database statistics shows information about Record
Versions and Max Versions
• Taking database statistics can be long!
How to monitor
1. With gstat command line tool
2. With HQbird Firebird Database Analyst
More details: https://www.youtube.com/watch?v=_KZqXcgwN98
Goal of every Firebird developer is
to avoid creating versions for records!
Not only because server slowly reads
multiple record versions, but also
because of
GARBAGE COLLECTION
What is garbage and how it is collected
• When record versions become obsolete and non-
interested by any transaction, it is considered as
garbage and need to be cleaned.
• Garbage collection is a process of removing
unnecessary records versions
• It can be cooperative (Classic or SuperClassic) or
background (SuperServer)
Why should we monitor garbage
collection?
• It consumes resources.
• We should locate and fix those parts of the
application(s) which produce many record
versions which increase an intensity of GC
How to monitor GC?
• 1) Manual SQL queries to MON$ tables
• 2) HQbird Firebird MonLogger
How to decrease number of garbage
versions?
1. Use as short write transactions as possible
2. For read-only operations use (if possible)
transactions READ COMMITTED READ-ONLY
If you see a lot of record versions, and you are not
sure how to fix it, consider to order our Database
Optimization service:
http://ib-aid.com/en/firebird-interbase-performance-
optimization-service/
Monitoring transactions in
Firebird
Why to monitor transactions?
Transactions are key indicators of versioning
processes in Firebird database.
2 main problems
1. Long-running [writeable] transactions
2. Rolled back transactions
Gstat –h gives us snaphot of transactions
Database header page information:
Flags 0
Checksum 12345
Generation 1564
Page size 4096
ODS version 10.1
Oldest transaction 10009
Oldest active 20001
Oldest snapshot 20001
Next transaction 25007
Bumped transaction 1
Sequence number 0
Next attachment ID 1
Implementation ID 16
Shadow count 0
Page buffers 3000
Next header page 0
Database dialect 1
Creation date Nov 1, 2015 15:55:55
Long-running transactions
• All transactions have sequential numbers from 1 to…
• Oldest Active Transaction – currently active transaction
with the minimal number
Oldest transaction 10009
Oldest active 20001
Oldest snapshot 20001
Next transaction 25007
Interval NEXT – OAT shows number of potentially active
transactions – server cannot clean versions created by
transactions with numbers > OAT
How to track long running active transactions
in Firebird?
• 1. Manual tracking of gstat –h output (check every N
minutes)
• 2. Alerts from HQbird FBDataGuard
How to fix long running active
transactions in Firebird?
It is possible to find who is running long-
running transaction and CANCEL it
1. Manual query to MON$ tables
2. HQbird Firebird MON$Logger (GUI)
Rolled back transactions
• When some transaction is marked in transaction inventory
as rolled back, it prevents record versions beeing
cleaned by collective or background garbage collection
Oldest transaction 10009
Oldest active 20001
Oldest snapshot 20001
Next transaction 25007
Interval Oldest Snapshot – Oldest Interesting
determines the need for sweep
Sweep
• Sweep reads whole database from the beginning
to the end and cleans garbage record versions
• Sweep is necessary when OST-OIT interval
becomes big
How to make sweep
• Autosweep
• by default 20000
• Starts immediately when interval > threshold
• It causes slowness at unpredicted moments
• Manual sweep
• Scheduled sweep during the inactivity period of
time
• Can be run manually with gfix –sweep or
scheduled in HQbird FBDataGuard
Sweep must be controlled!
• If sweep did not succeed to align
transaction markers, it can happen due to
the serious problem/corruption!
• HQbird FBDataGuard checks sweep status
TEMP FILES
Temp files
• Temp files are created in the default temp folder
or in folders specified by TempDirectories in
firebird.conf
• Actually they are written to the disk only if size of
all sort files is more than TempCacheLimit
parameter
• It is better to have sorting in memory
How to track Temp files
1. Manually check size and quantity of temp files
(fb_sortxxx) in all temp folders
2. HQbird FBDataGuard monitors temp files size and
quantity, and sends warnings if necessary
How to move temp files to memory
• Increase TempCacheLimit parameter
• Warnings:
• At Classic TempCacheLimit is allocated for each
process
• 32bit processes have 2Gb limitation of memory to
address
Use optimized configuration files from IBSurgeon and
HQbird!
http://ib-aid.com/en/optimized-firebird-configuration/
Monitor connections,
transactions, and SQL queries
Why to monitor Firebird connections?
• Number of connections should be constantly monitored:
• Peaks of connections
• Firebird Classic/SuperClassic consume RAM as
Number_Of_Connections x Page Buffers
• In case of peaks can consume all RAM and go to swap – slowness!
• Application can do more than 1 connection to the database
• By mistake
• By design
• In case of connection pool – adjust the size of the pool and its
increment
• Suspicious connections
• Long running connections and connections from developer tools
• Connections from non-standard applications
How to monitor connections
1. Manually run SELECT count(*) FROM
MON$ATTACHMENTS
2. Use HQbird
1. FBDataGuard constantly monitors number of connections and
send alerts if their number grows too much
2. MonLogger can be used to go deep and get detailed information
about connections: memory, IO, garbage collection
Transactions
• Yes, again!
• Besides monitoring of intervals between transactions
markers (Next-OAT, OIT-OST), also we should check
these important things, which can affect Firebird
performance:
1. Transaction’s parameters (isolation level, wait/nowait)
2. Transactions flows and their relation with business
logic
3. Transaction-level statistics (IO, time to live)
Transaction’s parameters
• Transactions parameters must correspond to business
logic.
• Several often mistakes
• Non-modyfing queries (SELECT) are started in read-write mode
• Should be in READ ONLY
• Snapshot are used for operational queries, instead of read-
commited
• It should be used only for queries where consistency is really required
(snapshots)
Transactions flows mistakes
• Transaction (other then read-committed read only) never
ends, expires due to connection closing, and leads to
ROLLBACK
• Only 1 sentence in the transaction
• For example, refreshing query with timer:
• Quickly exhausts 2 billion limit of transactions
• it should be run in permanent read committed read only transaction
• Using the only read-write transaction for all operations
• Better split read-only and write operations
How to track transactions flows and
transactions parameters? - FBScanner
HQbird FBScanner allows to track transactions
flows: parameters, containing queries, plans, etc.
How to track transactions flows and
transactions parameters? - PerfMon
• HQbird Firebird Performance Monitor (PerfMon) uses
TraceAPI to capture all engine events – connections,
queries, transactions, stored procedures, triggers,
execution plans, execution statistics
• Works correctly only at Firebird 2.5.3+ versions
Quick check of problems with transactions
• HQbird MonLogger gives a fast and detailed overview of
active transactions in the system
HQbird tools for SQL and transactions
monitoring and optimization
HQbird FBScanner
+ works as a proxy, non-invasive tool, can be installed on
separate server and track only selected workstations
— cannot track stored procedures and triggers
HQbird PerfMon
+ works with TraceAPI, can monitor everything
— TraceAPI significantly supresses performance
HQbird MonLogger
+ Great ad-hoc tool, fast
— Captures only snapshots, lack of important information
IBSurgeon Firebird Optimization service
We can increase the performance of your database
http://ib-aid.com/en/firebird-interbase-performance-
optimization-service/
Thank you and don’t forget these links:
IBSurgeon optimized configuration files
http://ib-aid.com/en/optimized-firebird-configuration/
Firebird Hardware Guide
http://ib-aid.com/download/docs/Firebird_Hardware_Guide_IBSurgeon.pdf
Contact us: support@ib-aid.com

More Related Content

What's hot

Linux memory
Linux memoryLinux memory
Linux memory
ericrain911
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
Altinity Ltd
 
Cassandra overview
Cassandra overviewCassandra overview
Cassandra overviewSean Murphy
 
Firebird's Big Databases (in English)
Firebird's Big Databases (in English)Firebird's Big Databases (in English)
Firebird's Big Databases (in English)
Alexey Kovyazin
 
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBayReal-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Altinity Ltd
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
MariaDB plc
 
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, CloudflareClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
Altinity Ltd
 
MyRocks introduction and production deployment
MyRocks introduction and production deploymentMyRocks introduction and production deployment
MyRocks introduction and production deployment
Yoshinori Matsunobu
 
Amazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and OptimizationAmazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and Optimization
Amazon Web Services
 
Linking Metrics to Logs using Loki
Linking Metrics to Logs using LokiLinking Metrics to Logs using Loki
Linking Metrics to Logs using Loki
Knoldus Inc.
 
Aerospike Architecture
Aerospike ArchitectureAerospike Architecture
Aerospike Architecture
Peter Milne
 
How to use histograms to get better performance
How to use histograms to get better performanceHow to use histograms to get better performance
How to use histograms to get better performance
MariaDB plc
 
(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices
(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices
(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices
Amazon Web Services
 
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
confluent
 
Apache NiFi SDLC Improvements
Apache NiFi SDLC ImprovementsApache NiFi SDLC Improvements
Apache NiFi SDLC Improvements
Bryan Bende
 
Developing Scylla Applications: Practical Tips
Developing Scylla Applications: Practical TipsDeveloping Scylla Applications: Practical Tips
Developing Scylla Applications: Practical Tips
ScyllaDB
 
Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019
Dieter Adriaenssens
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
Brendan Gregg
 
Top 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark ApplicationsTop 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark Applications
Spark Summit
 
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
Jean-François Gagné
 

What's hot (20)

Linux memory
Linux memoryLinux memory
Linux memory
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
 
Cassandra overview
Cassandra overviewCassandra overview
Cassandra overview
 
Firebird's Big Databases (in English)
Firebird's Big Databases (in English)Firebird's Big Databases (in English)
Firebird's Big Databases (in English)
 
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBayReal-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
Real-time, Exactly-once Data Ingestion from Kafka to ClickHouse at eBay
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
 
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, CloudflareClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
 
MyRocks introduction and production deployment
MyRocks introduction and production deploymentMyRocks introduction and production deployment
MyRocks introduction and production deployment
 
Amazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and OptimizationAmazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and Optimization
 
Linking Metrics to Logs using Loki
Linking Metrics to Logs using LokiLinking Metrics to Logs using Loki
Linking Metrics to Logs using Loki
 
Aerospike Architecture
Aerospike ArchitectureAerospike Architecture
Aerospike Architecture
 
How to use histograms to get better performance
How to use histograms to get better performanceHow to use histograms to get better performance
How to use histograms to get better performance
 
(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices
(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices
(BDT401) Amazon Redshift Deep Dive: Tuning and Best Practices
 
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
Why My Streaming Job is Slow - Profiling and Optimizing Kafka Streams Apps (L...
 
Apache NiFi SDLC Improvements
Apache NiFi SDLC ImprovementsApache NiFi SDLC Improvements
Apache NiFi SDLC Improvements
 
Developing Scylla Applications: Practical Tips
Developing Scylla Applications: Practical TipsDeveloping Scylla Applications: Practical Tips
Developing Scylla Applications: Practical Tips
 
Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019Errant GTIDs breaking replication @ Percona Live 2019
Errant GTIDs breaking replication @ Percona Live 2019
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Top 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark ApplicationsTop 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark Applications
 
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
 

Viewers also liked

オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpringオープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
Meiji Kimura
 
Understandung Firebird optimizer, by Dmitry Yemanov (in English)
Understandung Firebird optimizer, by Dmitry Yemanov (in English)Understandung Firebird optimizer, by Dmitry Yemanov (in English)
Understandung Firebird optimizer, by Dmitry Yemanov (in English)
Alexey Kovyazin
 
Firebird recovery tools and techniques by IBSurgeon
Firebird recovery tools and techniques by IBSurgeonFirebird recovery tools and techniques by IBSurgeon
Firebird recovery tools and techniques by IBSurgeon
Alexey Kovyazin
 
Firebird grupo3
Firebird grupo3Firebird grupo3
Mer modelo entidad relación
Mer   modelo entidad relaciónMer   modelo entidad relación
Mer modelo entidad relación
Nicole Angela Holguin Sancan
 

Viewers also liked (6)

オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpringオープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
 
Understandung Firebird optimizer, by Dmitry Yemanov (in English)
Understandung Firebird optimizer, by Dmitry Yemanov (in English)Understandung Firebird optimizer, by Dmitry Yemanov (in English)
Understandung Firebird optimizer, by Dmitry Yemanov (in English)
 
Firebird v2.1.4.installation guide
Firebird v2.1.4.installation guideFirebird v2.1.4.installation guide
Firebird v2.1.4.installation guide
 
Firebird recovery tools and techniques by IBSurgeon
Firebird recovery tools and techniques by IBSurgeonFirebird recovery tools and techniques by IBSurgeon
Firebird recovery tools and techniques by IBSurgeon
 
Firebird grupo3
Firebird grupo3Firebird grupo3
Firebird grupo3
 
Mer modelo entidad relación
Mer   modelo entidad relaciónMer   modelo entidad relación
Mer modelo entidad relación
 

Similar to Resolving Firebird performance problems

Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
MongoDB
 
5 Pitfalls to Avoid with MongoDB
5 Pitfalls to Avoid with MongoDB5 Pitfalls to Avoid with MongoDB
5 Pitfalls to Avoid with MongoDB
Tim Callaghan
 
Best practices for MySQL High Availability
Best practices for MySQL High AvailabilityBest practices for MySQL High Availability
Best practices for MySQL High Availability
Colin Charles
 
Deployment Strategy
Deployment StrategyDeployment Strategy
Deployment StrategyMongoDB
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment Strategies
MongoDB
 
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014
Amazon Web Services
 
Reduced instruction set computers
Reduced instruction set computersReduced instruction set computers
Reduced instruction set computers
Syed Zaid Irshad
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout Session
Splunk
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout Session
Splunk
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
Hiram Fleitas León
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems Baruch Osoveskiy
 
Webinar: Faster Log Indexing with Fusion
Webinar: Faster Log Indexing with FusionWebinar: Faster Log Indexing with Fusion
Webinar: Faster Log Indexing with FusionLucidworks
 
Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28
Xavier Lucas
 
Designs, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed SystemsDesigns, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed Systems
Daehyeok Kim
 
Scality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup PresentationScality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup Presentation
Scality
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Production
confluent
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance Analysis
Rodrigo Campos
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
Ververica
 
Google file system
Google file systemGoogle file system
Google file system
Ankit Thiranh
 
Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)
DataWorks Summit
 

Similar to Resolving Firebird performance problems (20)

Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
5 Pitfalls to Avoid with MongoDB
5 Pitfalls to Avoid with MongoDB5 Pitfalls to Avoid with MongoDB
5 Pitfalls to Avoid with MongoDB
 
Best practices for MySQL High Availability
Best practices for MySQL High AvailabilityBest practices for MySQL High Availability
Best practices for MySQL High Availability
 
Deployment Strategy
Deployment StrategyDeployment Strategy
Deployment Strategy
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment Strategies
 
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014
(WEB401) Optimizing Your Web Server on AWS | AWS re:Invent 2014
 
Reduced instruction set computers
Reduced instruction set computersReduced instruction set computers
Reduced instruction set computers
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout Session
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout Session
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems
 
Webinar: Faster Log Indexing with Fusion
Webinar: Faster Log Indexing with FusionWebinar: Faster Log Indexing with Fusion
Webinar: Faster Log Indexing with Fusion
 
Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28
 
Designs, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed SystemsDesigns, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed Systems
 
Scality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup PresentationScality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup Presentation
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Production
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance Analysis
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
 
Google file system
Google file systemGoogle file system
Google file system
 
Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)
 

More from Alexey Kovyazin

Fail-Safe Cluster for FirebirdSQL and something more
Fail-Safe Cluster for FirebirdSQL and something moreFail-Safe Cluster for FirebirdSQL and something more
Fail-Safe Cluster for FirebirdSQL and something more
Alexey Kovyazin
 
Новые возможности языка SQL в Firebird 3.0
Новые возможности языка SQL в Firebird 3.0Новые возможности языка SQL в Firebird 3.0
Новые возможности языка SQL в Firebird 3.0
Alexey Kovyazin
 
How Firebird transactions work
How Firebird transactions workHow Firebird transactions work
How Firebird transactions work
Alexey Kovyazin
 
Professional tools for Firebird optimization and maintenance from IBSurgeon
Professional tools for Firebird optimization and maintenance from IBSurgeonProfessional tools for Firebird optimization and maintenance from IBSurgeon
Professional tools for Firebird optimization and maintenance from IBSurgeon
Alexey Kovyazin
 
Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5
Alexey Kovyazin
 
Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5
Alexey Kovyazin
 
Firebird Anti-Corruption Approach
Firebird Anti-Corruption ApproachFirebird Anti-Corruption Approach
Firebird Anti-Corruption ApproachAlexey Kovyazin
 
Firebird Dataguard (Russian)
Firebird Dataguard (Russian)Firebird Dataguard (Russian)
Firebird Dataguard (Russian)
Alexey Kovyazin
 
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Alexey Kovyazin
 
Firebird DataGuard - Еще раз об уверенности в завтрашнем дне
Firebird DataGuard -  Еще раз об уверенности в завтрашнем днеFirebird DataGuard -  Еще раз об уверенности в завтрашнем дне
Firebird DataGuard - Еще раз об уверенности в завтрашнем дне
Alexey Kovyazin
 
Firebird usage promo draft
Firebird usage promo draftFirebird usage promo draft
Firebird usage promo draft
Alexey Kovyazin
 
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
Alexey Kovyazin
 
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Alexey Kovyazin
 
Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)
Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)
Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)
Alexey Kovyazin
 
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
Alexey Kovyazin
 
Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)
Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)
Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)
Alexey Kovyazin
 
Firebird Scalability, by Dmitry Yemanov (in English)
Firebird Scalability, by Dmitry Yemanov (in English)Firebird Scalability, by Dmitry Yemanov (in English)
Firebird Scalability, by Dmitry Yemanov (in English)
Alexey Kovyazin
 
Firebird 2.1 What's New by Vladislav Khorsun (English)
Firebird 2.1 What's New by Vladislav Khorsun (English)Firebird 2.1 What's New by Vladislav Khorsun (English)
Firebird 2.1 What's New by Vladislav Khorsun (English)
Alexey Kovyazin
 
Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...
Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...
Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...
Alexey Kovyazin
 
Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...
Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...
Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...
Alexey Kovyazin
 

More from Alexey Kovyazin (20)

Fail-Safe Cluster for FirebirdSQL and something more
Fail-Safe Cluster for FirebirdSQL and something moreFail-Safe Cluster for FirebirdSQL and something more
Fail-Safe Cluster for FirebirdSQL and something more
 
Новые возможности языка SQL в Firebird 3.0
Новые возможности языка SQL в Firebird 3.0Новые возможности языка SQL в Firebird 3.0
Новые возможности языка SQL в Firebird 3.0
 
How Firebird transactions work
How Firebird transactions workHow Firebird transactions work
How Firebird transactions work
 
Professional tools for Firebird optimization and maintenance from IBSurgeon
Professional tools for Firebird optimization and maintenance from IBSurgeonProfessional tools for Firebird optimization and maintenance from IBSurgeon
Professional tools for Firebird optimization and maintenance from IBSurgeon
 
Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5
 
Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5Firebird migration: from Firebird 1.5 to Firebird 2.5
Firebird migration: from Firebird 1.5 to Firebird 2.5
 
Firebird Anti-Corruption Approach
Firebird Anti-Corruption ApproachFirebird Anti-Corruption Approach
Firebird Anti-Corruption Approach
 
Firebird Dataguard (Russian)
Firebird Dataguard (Russian)Firebird Dataguard (Russian)
Firebird Dataguard (Russian)
 
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
 
Firebird DataGuard - Еще раз об уверенности в завтрашнем дне
Firebird DataGuard -  Еще раз об уверенности в завтрашнем днеFirebird DataGuard -  Еще раз об уверенности в завтрашнем дне
Firebird DataGuard - Еще раз об уверенности в завтрашнем дне
 
Firebird usage promo draft
Firebird usage promo draftFirebird usage promo draft
Firebird usage promo draft
 
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
 
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
 
Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)
Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)
Firebird: cost-based optimization and statistics, by Dmitry Yemanov (in English)
 
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
 
Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)
Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)
Open Source: взгляд изнутри, Дмитрий Еманов (The Firebird Project) (in Russian)
 
Firebird Scalability, by Dmitry Yemanov (in English)
Firebird Scalability, by Dmitry Yemanov (in English)Firebird Scalability, by Dmitry Yemanov (in English)
Firebird Scalability, by Dmitry Yemanov (in English)
 
Firebird 2.1 What's New by Vladislav Khorsun (English)
Firebird 2.1 What's New by Vladislav Khorsun (English)Firebird 2.1 What's New by Vladislav Khorsun (English)
Firebird 2.1 What's New by Vladislav Khorsun (English)
 
Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...
Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...
Firebird: Универсальная СУБД. Краткая презентация на Интероп 2008, Дмитрий Ем...
 
Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...
Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...
Firebird Roadmap-2006 Текущее состояние разработки и перспективы развития (in...
 

Recently uploaded

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 

Recently uploaded (20)

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

Resolving Firebird performance problems

  • 2. Usually big production database runs at • Firebird 2.5 • Classic or SuperClassic architecture • They can scale accross multiple CPU/cores! • In Firebird 3 SuperServer is the better choice… • but now let’s talk about 2.5 Classic and SuperClassic
  • 3. What are performance indicators to monitor in Firebird 2.5? 1. Lock table parameters 2. Monitoring record versions and garbage collection 3. Transactions 1. Long running transactions 2. Rolled back transactions 4. Temporary files – quantity and size 5. Connections, SQL queries and transactions
  • 5. fb_inet_serverfb_inet_server How lock table works fb_inet_server Firebird Page cache Page cache Page cache Page X How to resolve a write conflict when changing the same page?
  • 6. How lock table works fb_inet_server fb_inet_server fb_inet_server mapped Lock table mapped mapped shared memory All requests to access internal database objects go through lock table
  • 7. Why should we monitor lock table parameters? • Lock table is a critical part of Classic and SuperClassic architectures • Access to shared objects is implemented through locks in Lock table… Analysis of lock table parameters is the easiest way to reveal problems with concurrent access
  • 8. Lock table analysis - raw • Fb_lock_print –d <database_name> • LOCK_HEADER BLOCK • Version: 17, Active owner: 0, Length: 6291456, Used: 5517236 • Flags: 0x0001 • Enqs: 10906251, Converts: 58907, Rejects: 22373, Blocks: 210859 • Deadlock scans: 5841, Deadlocks: 0, Scan interval: 10 • Acquires: 13636997, Acquire blocks: 558879, Spin count: 0 • Mutex wait: 4.1% • Hash slots: 2003, Hash lengths (min/avg/max): 2/ 11/ 26 • Remove node: 0, Insert queue: 0, Insert prior: 0 • Owners (107): forward: 26696, backward: 5517140 • Free owners: *empty* • Free locks (1630): forward: 3878196, backward: 2264580 • Free requests (793): forward: 5412916, backward: 1906516 • Lock Ordering: Enabled
  • 9. Lock table analysis – where to look • Fb_lock_print –d <database_name> • LOCK_HEADER BLOCK • Version: 17, Active owner: 0, Length: 6291456, Used: 5517236 • Flags: 0x0001 • Enqs: 10906251, Converts: 58907, Rejects: 22373, Blocks: 210859 • Deadlock scans: 5841, Deadlocks: 0, Scan interval: 10 • Acquires: 13636997, Acquire blocks: 558879, Spin count: 0 • Mutex wait: 4.1% • Hash slots: 2003, Hash lengths (min/avg/max): 2/ 11/ 26 • Remove node: 0, Insert queue: 0, Insert prior: 0 • Owners (107): forward: 26696, backward: 5517140 • Free owners: *empty* • Free locks (1630): forward: 3878196, backward: 2264580 • Free requests (793): forward: 5412916, backward: 1906516 • Lock Ordering: Enabled
  • 10. Thresholds and recommendations Essential values: Firebird.conf params to tune: Length: 6291456 LockMemSize - default is 1Mb Set at least: Cache_pages * max_connections_count * 100 Hash slots: 2003, Hash lengths (min/avg/max): 2/ 11/ 26 LockHashSlots = 1009 Prime number. Set x20, like 20011 Mutex wait: 4.1% No parameter to adjust. More than 10% could be a problem, check hardware and concurrency settings Owners (107) Number of connections for server Use optimized Firebird configuration files from IBSurgeon: http://ib-aid.com/en/optimized-firebird-configuration/
  • 11. How to monitor lock table • 1) Command prompt (on the server only), run every N min fb_lock_print -d E:OLTP-EMULoltp30.fdb • 2) Alerts and automatic recommendations
  • 12. Monitoring record versions and garbage collection in Firebird
  • 13. What is a record version? TR50 TR60 UPDATE set data =200read N Tx Data 1 10 100 60 200 ... read write Different transactions can see different versions of the record.
  • 14. Why many record versions are bad The more versions record has, the more scan operations server does to find necessary version After data load or restore – no versions
  • 15. • When UPDATE changes indexed fields, indices also must be updated, and - UPDATE does not update keys in the index, it adds new keys for new record version! • DELETE does not delete index keys! N Tx Data 1 10 100 60 200 ... Index key = 100 Index key = 200 Why many record versions are bad
  • 16. What to monitor? Database statistics • Database statistics shows information about Record Versions and Max Versions • Taking database statistics can be long!
  • 17. How to monitor 1. With gstat command line tool 2. With HQbird Firebird Database Analyst More details: https://www.youtube.com/watch?v=_KZqXcgwN98
  • 18. Goal of every Firebird developer is to avoid creating versions for records! Not only because server slowly reads multiple record versions, but also because of GARBAGE COLLECTION
  • 19. What is garbage and how it is collected • When record versions become obsolete and non- interested by any transaction, it is considered as garbage and need to be cleaned. • Garbage collection is a process of removing unnecessary records versions • It can be cooperative (Classic or SuperClassic) or background (SuperServer)
  • 20. Why should we monitor garbage collection? • It consumes resources. • We should locate and fix those parts of the application(s) which produce many record versions which increase an intensity of GC
  • 21. How to monitor GC? • 1) Manual SQL queries to MON$ tables • 2) HQbird Firebird MonLogger
  • 22. How to decrease number of garbage versions? 1. Use as short write transactions as possible 2. For read-only operations use (if possible) transactions READ COMMITTED READ-ONLY If you see a lot of record versions, and you are not sure how to fix it, consider to order our Database Optimization service: http://ib-aid.com/en/firebird-interbase-performance- optimization-service/
  • 24. Why to monitor transactions? Transactions are key indicators of versioning processes in Firebird database. 2 main problems 1. Long-running [writeable] transactions 2. Rolled back transactions
  • 25. Gstat –h gives us snaphot of transactions Database header page information: Flags 0 Checksum 12345 Generation 1564 Page size 4096 ODS version 10.1 Oldest transaction 10009 Oldest active 20001 Oldest snapshot 20001 Next transaction 25007 Bumped transaction 1 Sequence number 0 Next attachment ID 1 Implementation ID 16 Shadow count 0 Page buffers 3000 Next header page 0 Database dialect 1 Creation date Nov 1, 2015 15:55:55
  • 26. Long-running transactions • All transactions have sequential numbers from 1 to… • Oldest Active Transaction – currently active transaction with the minimal number Oldest transaction 10009 Oldest active 20001 Oldest snapshot 20001 Next transaction 25007 Interval NEXT – OAT shows number of potentially active transactions – server cannot clean versions created by transactions with numbers > OAT
  • 27. How to track long running active transactions in Firebird? • 1. Manual tracking of gstat –h output (check every N minutes) • 2. Alerts from HQbird FBDataGuard
  • 28. How to fix long running active transactions in Firebird? It is possible to find who is running long- running transaction and CANCEL it 1. Manual query to MON$ tables 2. HQbird Firebird MON$Logger (GUI)
  • 29. Rolled back transactions • When some transaction is marked in transaction inventory as rolled back, it prevents record versions beeing cleaned by collective or background garbage collection Oldest transaction 10009 Oldest active 20001 Oldest snapshot 20001 Next transaction 25007 Interval Oldest Snapshot – Oldest Interesting determines the need for sweep
  • 30. Sweep • Sweep reads whole database from the beginning to the end and cleans garbage record versions • Sweep is necessary when OST-OIT interval becomes big
  • 31. How to make sweep • Autosweep • by default 20000 • Starts immediately when interval > threshold • It causes slowness at unpredicted moments • Manual sweep • Scheduled sweep during the inactivity period of time • Can be run manually with gfix –sweep or scheduled in HQbird FBDataGuard
  • 32. Sweep must be controlled! • If sweep did not succeed to align transaction markers, it can happen due to the serious problem/corruption! • HQbird FBDataGuard checks sweep status
  • 34. Temp files • Temp files are created in the default temp folder or in folders specified by TempDirectories in firebird.conf • Actually they are written to the disk only if size of all sort files is more than TempCacheLimit parameter • It is better to have sorting in memory
  • 35. How to track Temp files 1. Manually check size and quantity of temp files (fb_sortxxx) in all temp folders 2. HQbird FBDataGuard monitors temp files size and quantity, and sends warnings if necessary
  • 36. How to move temp files to memory • Increase TempCacheLimit parameter • Warnings: • At Classic TempCacheLimit is allocated for each process • 32bit processes have 2Gb limitation of memory to address Use optimized configuration files from IBSurgeon and HQbird! http://ib-aid.com/en/optimized-firebird-configuration/
  • 38. Why to monitor Firebird connections? • Number of connections should be constantly monitored: • Peaks of connections • Firebird Classic/SuperClassic consume RAM as Number_Of_Connections x Page Buffers • In case of peaks can consume all RAM and go to swap – slowness! • Application can do more than 1 connection to the database • By mistake • By design • In case of connection pool – adjust the size of the pool and its increment • Suspicious connections • Long running connections and connections from developer tools • Connections from non-standard applications
  • 39. How to monitor connections 1. Manually run SELECT count(*) FROM MON$ATTACHMENTS 2. Use HQbird 1. FBDataGuard constantly monitors number of connections and send alerts if their number grows too much 2. MonLogger can be used to go deep and get detailed information about connections: memory, IO, garbage collection
  • 40. Transactions • Yes, again! • Besides monitoring of intervals between transactions markers (Next-OAT, OIT-OST), also we should check these important things, which can affect Firebird performance: 1. Transaction’s parameters (isolation level, wait/nowait) 2. Transactions flows and their relation with business logic 3. Transaction-level statistics (IO, time to live)
  • 41. Transaction’s parameters • Transactions parameters must correspond to business logic. • Several often mistakes • Non-modyfing queries (SELECT) are started in read-write mode • Should be in READ ONLY • Snapshot are used for operational queries, instead of read- commited • It should be used only for queries where consistency is really required (snapshots)
  • 42. Transactions flows mistakes • Transaction (other then read-committed read only) never ends, expires due to connection closing, and leads to ROLLBACK • Only 1 sentence in the transaction • For example, refreshing query with timer: • Quickly exhausts 2 billion limit of transactions • it should be run in permanent read committed read only transaction • Using the only read-write transaction for all operations • Better split read-only and write operations
  • 43. How to track transactions flows and transactions parameters? - FBScanner HQbird FBScanner allows to track transactions flows: parameters, containing queries, plans, etc.
  • 44. How to track transactions flows and transactions parameters? - PerfMon • HQbird Firebird Performance Monitor (PerfMon) uses TraceAPI to capture all engine events – connections, queries, transactions, stored procedures, triggers, execution plans, execution statistics • Works correctly only at Firebird 2.5.3+ versions
  • 45. Quick check of problems with transactions • HQbird MonLogger gives a fast and detailed overview of active transactions in the system
  • 46. HQbird tools for SQL and transactions monitoring and optimization HQbird FBScanner + works as a proxy, non-invasive tool, can be installed on separate server and track only selected workstations — cannot track stored procedures and triggers HQbird PerfMon + works with TraceAPI, can monitor everything — TraceAPI significantly supresses performance HQbird MonLogger + Great ad-hoc tool, fast — Captures only snapshots, lack of important information
  • 47. IBSurgeon Firebird Optimization service We can increase the performance of your database http://ib-aid.com/en/firebird-interbase-performance- optimization-service/
  • 48. Thank you and don’t forget these links: IBSurgeon optimized configuration files http://ib-aid.com/en/optimized-firebird-configuration/ Firebird Hardware Guide http://ib-aid.com/download/docs/Firebird_Hardware_Guide_IBSurgeon.pdf Contact us: support@ib-aid.com