Skip to content

Incompatibility with Percona output for Innodb Status #44

Closed
@michaelrikmas

Description

@michaelrikmas

Percona has additions in innodb output:

--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
1 read views open inside InnoDB
1 transactions active inside InnoDB
1 out of 1000 descriptors used
---OLDEST VIEW---
Normal read view
Read view low limit trx n:o EA05374F2
Read view up limit trx id EA05374F1
Read view low limit trx id EA05374F2
Read view individually stored trx ids:
Read view trx id EA05374F1
-----------------
Main thread process no. 28092, id 140035932575488, state: flushing log
Number of rows inserted 47675820507, updated 5833120651, deleted 10936909882, read 501029518850
0.00 inserts/s, 43442.28 updates/s, 0.00 deletes/s, 76878.06 reads/s
------------
TRANSACTIONS
------------

In this case the line '-----------------' after OLDEST VIEW is treated as beginning of chunk name and TRANSACTION as a chunk text.

Solution:

# diff -u innodb_preprocessor.py.orig innodb_preprocessor.py
--- innodb_preprocessor.py.orig 2015-10-30 05:39:18.073914726 -0700
+++ innodb_preprocessor.py  2015-10-30 07:37:29.439914287 -0700
@@ -39,19 +39,23 @@
         chunks = {'junk': []}
         current_chunk = 'junk'
         next_chunk = False
+        oldest_view = False

         self.clear_variables()
         for row in rows:
             innoblob = row[2].replace(',', '').replace(';', '').replace('/s', '').split('\n')
             for line in innoblob:
                 # All chunks start with more than three dashes. Only the individual innodb bufferpools have three dashes
+                if line.startswith('---OLDEST VIEW---'):
+                    oldest_view = True
                 if line.startswith('----'):
                     # First time we see more than four dashes have to record the new chunk
-                    if next_chunk == False:
+                    if next_chunk == False and oldest_view == False:
                         next_chunk = True
                     else:
                     # Second time we see them we just have recorded the chunk
                         next_chunk = False
+                        oldest_view = False
                 elif next_chunk == True:
                     # Record the chunkname and initialize the array
                     current_chunk = line

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions