SlideShare a Scribd company logo
1 of 48
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

Performance Troubleshooting Using Apache Spark Metrics
Performance Troubleshooting Using Apache Spark MetricsPerformance Troubleshooting Using Apache Spark Metrics
Performance Troubleshooting Using Apache Spark MetricsDatabricks
 
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
 
Redis persistence in practice
Redis persistence in practiceRedis persistence in practice
Redis persistence in practiceEugene Fidelin
 
Spark performance tuning - Maksud Ibrahimov
Spark performance tuning - Maksud IbrahimovSpark performance tuning - Maksud Ibrahimov
Spark performance tuning - Maksud IbrahimovMaksud Ibrahimov
 
Emr spark tuning demystified
Emr spark tuning demystifiedEmr spark tuning demystified
Emr spark tuning demystifiedOmid Vahdaty
 
(BDT305) Amazon EMR Deep Dive and Best Practices
(BDT305) Amazon EMR Deep Dive and Best Practices(BDT305) Amazon EMR Deep Dive and Best Practices
(BDT305) Amazon EMR Deep Dive and Best PracticesAmazon Web Services
 
Amazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best PracticesAmazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best PracticesAmazon Web Services
 
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward
 
IBM Integrated Analytics System ユーザー利用ガイド 20180213
IBM Integrated Analytics System ユーザー利用ガイド 20180213IBM Integrated Analytics System ユーザー利用ガイド 20180213
IBM Integrated Analytics System ユーザー利用ガイド 20180213IBM Analytics Japan
 
Optimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceOptimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceMariaDB plc
 
Apache Spark At Scale in the Cloud
Apache Spark At Scale in the CloudApache Spark At Scale in the Cloud
Apache Spark At Scale in the CloudDatabricks
 
XIDを周回させてみよう
XIDを周回させてみようXIDを周回させてみよう
XIDを周回させてみようAkio Ishida
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph databaseLambdaZen LLC
 
MyRocks introduction and production deployment
MyRocks introduction and production deploymentMyRocks introduction and production deployment
MyRocks introduction and production deploymentYoshinori Matsunobu
 
A critique of snapshot isolation: eurosys 2012
A critique of snapshot isolation: eurosys 2012A critique of snapshot isolation: eurosys 2012
A critique of snapshot isolation: eurosys 2012Maysam Yabandeh
 
HBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon
 
473721 dba feature_usage_statistics
473721 dba feature_usage_statistics473721 dba feature_usage_statistics
473721 dba feature_usage_statisticsMartin Berger
 

What's hot (20)

Performance Troubleshooting Using Apache Spark Metrics
Performance Troubleshooting Using Apache Spark MetricsPerformance Troubleshooting Using Apache Spark Metrics
Performance Troubleshooting Using Apache Spark Metrics
 
Firebird's Big Databases (in English)
Firebird's Big Databases (in English)Firebird's Big Databases (in English)
Firebird's Big Databases (in English)
 
Redis persistence in practice
Redis persistence in practiceRedis persistence in practice
Redis persistence in practice
 
Spark performance tuning - Maksud Ibrahimov
Spark performance tuning - Maksud IbrahimovSpark performance tuning - Maksud Ibrahimov
Spark performance tuning - Maksud Ibrahimov
 
Emr spark tuning demystified
Emr spark tuning demystifiedEmr spark tuning demystified
Emr spark tuning demystified
 
(BDT305) Amazon EMR Deep Dive and Best Practices
(BDT305) Amazon EMR Deep Dive and Best Practices(BDT305) Amazon EMR Deep Dive and Best Practices
(BDT305) Amazon EMR Deep Dive and Best Practices
 
Amazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best PracticesAmazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best Practices
 
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
Deep Dive on Amazon Redshift
Deep Dive on Amazon RedshiftDeep Dive on Amazon Redshift
Deep Dive on Amazon Redshift
 
IBM Integrated Analytics System ユーザー利用ガイド 20180213
IBM Integrated Analytics System ユーザー利用ガイド 20180213IBM Integrated Analytics System ユーザー利用ガイド 20180213
IBM Integrated Analytics System ユーザー利用ガイド 20180213
 
Optimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceOptimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performance
 
Apache Spark At Scale in the Cloud
Apache Spark At Scale in the CloudApache Spark At Scale in the Cloud
Apache Spark At Scale in the Cloud
 
XIDを周回させてみよう
XIDを周回させてみようXIDを周回させてみよう
XIDを周回させてみよう
 
(STG402) Amazon EBS Deep Dive
(STG402) Amazon EBS Deep Dive(STG402) Amazon EBS Deep Dive
(STG402) Amazon EBS Deep Dive
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph database
 
MyRocks introduction and production deployment
MyRocks introduction and production deploymentMyRocks introduction and production deployment
MyRocks introduction and production deployment
 
A critique of snapshot isolation: eurosys 2012
A critique of snapshot isolation: eurosys 2012A critique of snapshot isolation: eurosys 2012
A critique of snapshot isolation: eurosys 2012
 
HBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ Salesforce
 
473721 dba feature_usage_statistics
473721 dba feature_usage_statistics473721 dba feature_usage_statistics
473721 dba feature_usage_statistics
 

Viewers also liked

オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpringオープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpringMeiji 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 IBSurgeonAlexey Kovyazin
 

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 MongoDBTim Callaghan
 
Best practices for MySQL High Availability
Best practices for MySQL High AvailabilityBest practices for MySQL High Availability
Best practices for MySQL High AvailabilityColin Charles
 
Deployment Strategy
Deployment StrategyDeployment Strategy
Deployment StrategyMongoDB
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment StrategiesMongoDB
 
(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 2014Amazon Web Services
 
Reduced instruction set computers
Reduced instruction set computersReduced instruction set computers
Reduced instruction set computersSyed 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 SessionSplunk
 
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 SessionSplunk
 
[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_SummaryHiram 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-28Xavier 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 SystemsDaehyeok 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 PresentationScality
 
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 Productionconfluent
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance AnalysisRodrigo 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 ScaleVerverica
 
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 moreAlexey Kovyazin
 
Новые возможности языка SQL в Firebird 3.0
Новые возможности языка SQL в Firebird 3.0Новые возможности языка SQL в Firebird 3.0
Новые возможности языка SQL в Firebird 3.0Alexey Kovyazin
 
How Firebird transactions work
How Firebird transactions workHow Firebird transactions work
How Firebird transactions workAlexey Kovyazin
 
Life with big Firebird databases
Life with big Firebird databasesLife with big Firebird databases
Life with big Firebird databasesAlexey 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 IBSurgeonAlexey 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.5Alexey 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.5Alexey 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 draftAlexey 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
 

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
 
Life with big Firebird databases
Life with big Firebird databasesLife with big Firebird databases
Life with big Firebird databases
 
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, Дмитрий Ем...
 

Recently uploaded

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 

Recently uploaded (20)

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 

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