## 3.13.3  Version Garbage Collection Issues
Alert 75 helps you to identify and resolve version space overflow issues.
## Context
The following steps allow you to check whether or not the issue you have is related to row store version space skew, that is, whether the row store version chain is too long. If you use extended storage, a version space overflow may manifest as an out-of-space error for the delta dbspace, and will not trigger this alert. See Out of Space Errors for Delta Dbspace in SAP HANA Dynamic Tiering: Administration Guide .
## Procedure
1. The first step is to check the alert.
2. Identify the statement and connection blocking garbage collection.
In the SAP HANA database explorer you can use the following set of predefined statements to display details of blocking connections; these are available in the Statement Library :
- MVCC Blocker Connection shows connections that may be blocking garbage collection.
- MVCC Blocker Statement shows statements that may be blocking garbage collection.
- MVCC Blocker Transaction shows transactions that may be blocking garbage collection.
- a. Identify the connection or transaction that is blocking version garbage collection.
Run MVCC Blocker Statement to find out which statement is blocking version garbage collection and investigate what the blocker is doing. The following table shows a selection of example values which may be returned by this query followed by some guidance about analyzing the results:
Example Values from MVCC Blocker Statement
| Type   |   IDLE_TIME_SE C |   CONNECTION_ID |   START_MVCC_TI MESTAMP | STATE- MENT_STRING           | INFO                                              |
|--------|------------------|-----------------|-------------------------|------------------------------|---------------------------------------------------|
| GLOBAL |             4000 |          200285 |                  142113 | SELECT*FROM TEST1            | Check VER- SION_COUNT in M_MVCC_OVERVIEW          |
| TABLE  |             5000 |          200375 |                  142024 | SELECT*FROM TEST2 ORDER BY A | Check VER- SION_COUNT in M_MVCC_TA- BLE_SNAPSHOTS |
| TABLE  |              100 |          200478 |                  142029 | SELECT*FROM TEST0 ORDER BY A | Check VER- SION_COUNT in M_MVCC_TA- BLE_SNAPSHOTS |
If the TYPE column is GLOBAL, then it is a global version garbage collection blocker. If there is a global garbage collection blocker whose idle time (IDLE_TIME_SEC) is greater than 3600 seconds (1 hour), investigate what the statement is doing and take the necessary corrective action. See row 1 in the above table.
If the TYPE is TABLE, then it is a blocker of the specific table. This is shown in the second row of the table above where a table level garbage collection blocker has an idle time greater than 3600 seconds (1 hour). In this case you can query the m_TABLE_SNAPSHOTS monitoring view to check how many versions the related table has (in this example TEST2):
```
SELECT * FROM M_TABLE_SNAPSHOTS WHERE TABLE_NAME = 'TEST2' AND START_MVCC_TIMESTAMP = 142024
```
If the result of the query shows that VERSION_COUNT is greater than 1 million, the blocking statement can cause a performance drop for table updates. In this case, investigate what the statement is doing and take the necessary corrective action. However, if VERSION_COUNT is less than 10,000, its impact on performance is negligible.
- b. If no blocker is shown by MVCC Blocker Statement , use MVCC Blocker Transaction to find out which transaction blocks global version garbage collection and investigate what the blocker is doing. The
blocker would most likely be an internal/external/serializable transaction; the lifetime value of the transaction is shown in the column LIFE_TIME_SEC.
3. Kill the transaction and/or disconnect the connection that is blocking garbage collection.
- a. Disconnect the connection.
To disconnect the blocking connection use: ALTER SYSTEM DISCONNECT SESSION 'CONNECTION_ID' .
- b. If disconnecting the connection does not succeed or CONNECTION_ID does not exist, kill the transaction.
In order to do that, look at Blocked Transactions in the Monitoring tile.
## Related Information
SAP HANA Dynamic Tiering