Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement ability to validate tables and indices online (without exclusive access to database) [CORE4707] #5015

Closed
firebird-automations opened this issue Mar 12, 2015 · 8 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @hvlad

Replaces CORE2456

Votes: 2

Database validation allows to run low-level checks of consistency of on-disk
structures and even to fix some minor corruptions. It is recommended procedure
for any valuable database, i.e. DBA should validate database from time to time
to make sure it is healthy. But validation process requires exclusive access to
database, i.e. it forbids any kind of concurrent access to database while
validation run. It could be a big problem to stop user access, especially when
database is large and validation takes notable amount of time.

Online validation is a new feature which allows to perform some consistency
checks without exclusive access to database.

More details will follow in doc/README.online_validation

Commits: 2e78b5a a3ae2fc 8e58f69 FirebirdSQL/fbt-repository@699fa31 FirebirdSQL/fbt-repository@8b0c776 FirebirdSQL/fbt-repository@4b85c80

====== Test Details ======

Trivial test was implemented: check ability of online validation during 'static' state of database with one connection which has done several incomplete DML and "stays in pause".

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

assignee: Vlad Khorsun [ hvlad ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Feature was developed more than 2 years ago for v2.5 and works in production with no issues so far.

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

status: Open [ 1 ] => Open [ 1 ]

Fix Version: 2.5.4 [ 10585 ]

Fix Version: 3.0 Beta 2 [ 10586 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @pavel-zotov

Is it possible to make messages about lock fails more detailed ?

For example, I have following results during running OLTP-EMUL test on LI-V3.0.0.31920 (has been built just after http://sourceforge.net/p/firebird/code/61936 ), arch = SS:
. . .
18:02:36.63 Relation 155 (SEMAPHORES)
18:02:36.63 Acquire garbage collection lock failed
18:02:36.63 Relation 155 (SEMAPHORES) : 1 ERRORS found

18:02:36.63 Relation 156 (INVNT_TURNOVER_LOG)
18:02:36.63 Acquire relation lock failed
18:02:36.63 Relation 156 (INVNT_TURNOVER_LOG) : 1 ERRORS found
. . .
First of these two messages seems to me more serious (but I can`t explain why :)).
Second can be considered sooner as warning rather than error.

And one more offer: it will be useful if such detailed phrases about failures will appear directly in the line where message text is displayed, and will be supplied with prefixes like 'WARNING_', 'ERROR_' etc:
. . .
18:02:36.63 WARNING_GC_LOCK_FAIL Acquire garbage collection lock failed
18:02:36.63 WARNING_TABLE_LOCK_FAIL Acquire relation lock failed
. . .
HH:MM:SS WARNING_PP_INCONS Pointer page 211 {sequence 0} bits {0x10 empty} are not consistent with data page 1751 {sequence 327} state {0x01 full} in table TEST (128)
HH:MM:SS WARNING_IDX_INCONS Index 1 has inconsistent left sibling pointer, page 2278 level 1 at offset 45 in table TEST (128)
. . .

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: Done successfully

Test Details: Trivial test was implemented: check ability of online validation during 'static' state of database with one connection which has done several incomplete DML and "stays in pause".

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Link: This issue replaces CORE2456 [ CORE2456 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants