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

Mas p401 coverage #404

Merged
merged 8 commits into from
Mar 13, 2023
Merged

Mas p401 coverage #404

merged 8 commits into from
Mar 13, 2023

Conversation

martinsumner
Copy link
Owner

Combines:

#401
#403

This now has 100% test coverage as well.

ThomasArts and others added 7 commits February 28, 2023 10:16
but this function is deprecated... put in for backward compatibility
Only support messages, especially info messages, where they are possible.
* Log report GC Info by manifest level

* Hibernate on range query

If Block Index Cache is not full, and we're not yielding

* Spawn to deserialise blocks offline

Hypothesis is that the growth in the heap necessary due to continual term_to_binary calls to deserialise blocks is wasting memory - so do this memory-intensive task in a short-lived process.

* Start with hibernate_after option

* Always build BIC

Testing indicates that the BIC itself is not a primary memory issue - the primary issue is due to a lack of garbage collection and a growing heap.

This change enhances the patch to offline serialisation so that:
- get_sqn & get_kv are standardised to build the BIC, and hibernate when it is built.
- the offline PId is linked to crash this process on failure (as would happen now).

* Standardise spawning for check_block/3

Now deserialise in both parts of the code.

* Only spawn for check_block if cache not full

* Update following review
Make test more reliable.  Show no new compaction after third compaction.
Copy link
Contributor

@ThomasArts ThomasArts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.
Only remark is the fact that if a cast or info message comes in at specific states, then this is now resulting in a case clause exception, whereas it used to be handled some way.

test/end_to_end/recovery_SUITE.erl Show resolved Hide resolved
@martinsumner martinsumner merged commit 3d3d284 into develop-3.1 Mar 13, 2023
@martinsumner martinsumner deleted the mas-p401-coverage branch March 13, 2023 11:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants