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

MapDB3 based collection factory should provide a queue and set implementation #4899

Open
JervenBolleman opened this issue Feb 6, 2024 · 3 comments · Fixed by #4902 · May be fixed by #4970
Open

MapDB3 based collection factory should provide a queue and set implementation #4899

JervenBolleman opened this issue Feb 6, 2024 · 3 comments · Fixed by #4902 · May be fixed by #4970
Assignees
Labels
📶 enhancement issue is a new feature or improvement
Milestone

Comments

@JervenBolleman
Copy link
Contributor

Problem description

qEndpoint has an issue where a path query triggers an out of memory exception. See the makeQuey and makeSet calls in PathIteration.

For the MapDb3 implementation we should be able to add a queue that spills to disk.

Preferred solution

Implement a java.util.Queue wrapper for a mapdb3 QueuLong that should be able to work here.

Are you interested in contributing a solution yourself?

Yes

Alternatives you've considered

No response

Anything else?

Spilling to disk might make existing queries much slower. Perhaps take a much higher switch point from in memory to mapdb then the MemoryTillSizeXSet default.

@JervenBolleman JervenBolleman added the 📶 enhancement issue is a new feature or improvement label Feb 6, 2024
@JervenBolleman JervenBolleman self-assigned this Feb 6, 2024
@JervenBolleman JervenBolleman added this to the 5.0.0 milestone Feb 6, 2024
@kenwenzel
Copy link
Contributor

Do you think it makes sense to consider an LMDB-based persistent data structure?
I've added a PersistentSet to the LmdbStore module.

@JervenBolleman
Copy link
Contributor Author

JervenBolleman commented Feb 6, 2024 via email

@JervenBolleman
Copy link
Contributor Author

MapDb3 QueueLong is undocumented and does not work like I assumed. Have a simple wrapper around a map where head and tail are maintained as keys.

JervenBolleman added a commit that referenced this issue Feb 6, 2024
specialization.

This way at least one is set.
JervenBolleman added a commit that referenced this issue Apr 23, 2024
specialization.

This way at least one is set.
JervenBolleman added a commit that referenced this issue May 1, 2024
different constructions.

Introduce optimise-able data-structures in the collection factory for
ValuePair used in the PathIteration without exposing the type by
wrapping making it extend BindingSet.
@JervenBolleman JervenBolleman linked a pull request May 1, 2024 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment