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

create MON$ table to get info about GARBAGE COLLECT that currently performs in CS/SC by sessions or sweep. [CORE3705] #4053

Closed
firebird-automations opened this issue Dec 21, 2011 · 7 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @pavel-zotov

Event of GC (if this is not sweep process) can be detected only by analyzing of trace log.
Is it possible to create mon$-table that contain data about attachment(s) that are doing GC at the moment of selection such MON$-table ?

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Could you explain what you really want ?

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

What do you mean by "event of GC" in the cooperative GC mode? Garbage is collected when records are read by user statements. If some version for record A has just been garbage collected, it doesn't mean that any other versions will be GCed afterwards. So it's pointless to report about GC happening if record A has been already returned to the client.

I can see some sense in reporting GC while some attachment is GCing long record chains or index keys, i.e. for an extensive contiguous process. But it's usually not a common case. And it can be confusing if the reported GC activity was short in time, as the next query to the GC state may not report it anymore.

@firebird-automations
Copy link
Collaborator Author

Commented by: @doychin

I also think that there is a need to report some progress information about long running GC.

There are cases where someone might erase lots of records in a table and when GC runs on next select it might take 10-15 minutes or even more if database is with FW=ON and on not very fast drive.

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

Please define "long running GC". Cleaning up after a batch delete means very short GC cycles intermixed with regular reads. The engine doesn't know whether the process is "long running" because it's performed in short steps with unknown number of iterations.

If you need to know about the GC activity you just need to look at the purges/expunges counts in MON$RECORD_STATS and see whether they grow. As simple as that.

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

I'm rejecting this ticket.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

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

resolution: Won't Fix [ 2 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

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

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

1 participant