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

Add the core of the ordinary index support #244

Merged
merged 1 commit into from
Jul 3, 2024

Conversation

jeltsch
Copy link
Collaborator

@jeltsch jeltsch commented Jun 7, 2024

This adds support for the ordinary index apart from serialization.

@jeltsch jeltsch added the enhancement New feature or request label Jun 7, 2024
@jeltsch jeltsch self-assigned this Jun 7, 2024
Copy link
Collaborator

@jorisdral jorisdral left a comment

Choose a reason for hiding this comment

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

This adds support for the ordinary index apart from serialization.

Another missing feature is incremental construction, or is that included in the serialisation?

Are you planning on adding tests in a follow-up PR?

src/Database/LSMTree/Internal/IndexOrdinary.hs Outdated Show resolved Hide resolved
src/Database/LSMTree/Internal/IndexOrdinary.hs Outdated Show resolved Hide resolved
src/Database/LSMTree/Internal/IndexOrdinary.hs Outdated Show resolved Hide resolved
src/Database/LSMTree/Internal/IndexOrdinary.hs Outdated Show resolved Hide resolved
src/Database/LSMTree/Internal/IndexOrdinary.hs Outdated Show resolved Hide resolved
@jeltsch
Copy link
Collaborator Author

jeltsch commented Jun 11, 2024

Another missing feature is incremental construction, or is that included in the serialisation?

I understood that serialization is supposed to be incremental and thus incremental construction is entangled with serialization. Consequently, I wanted to include incremental construction in the serialization part. Did I get something wrong here?

Are you planning on adding tests in a follow-up PR?

The testing issue is an interesting one. My understanding is that there should ultimately be a common interface for indexes, with instances for the compact and the ordinary index. Tests could and perhaps should then be written for indexes as such, using said interface, and run for the different instances. My impression is that adding tests specifically for the ordinary index would merely boil down to copying compact-index tests, which wouldn’t seem like a good idea to me. What are your thoughts about this?

@jorisdral
Copy link
Collaborator

Another missing feature is incremental construction, or is that included in the serialisation?

I understood that serialization is supposed to be incremental and thus incremental construction is entangled with serialization. Consequently, I wanted to include incremental construction in the serialization part. Did I get something wrong here?

Sure, that's true, the two are closely related, but not exactly the same. I was just wondering why you mentioned that only serialisation was missing

Are you planning on adding tests in a follow-up PR?

The testing issue is an interesting one. My understanding is that there should ultimately be a common interface for indexes, with instances for the compact and the ordinary index. Tests could and perhaps should then be written for indexes as such, using said interface, and run for the different instances. My impression is that adding tests specifically for the ordinary index would merely boil down to copying compact-index tests, which wouldn’t seem like a good idea to me. What are your thoughts about this?

Having at least one simple property test to give us some assurance that search is working would be nice to have, but sure in the end we could have tests that can run against all types of indexes. A little bit of duplication for now is not a bad thing

@jeltsch
Copy link
Collaborator Author

jeltsch commented Jun 22, 2024

Having at least one simple property test to give us some assurance that search is working would be nice to have […]. A little bit of duplication for now is not a bad thing

I’ve filed issue #265 to deal with this.

@jeltsch jeltsch force-pushed the jeltsch/ordinary-index-core branch from a56b90e to 378a844 Compare July 3, 2024 19:16
@jeltsch jeltsch force-pushed the jeltsch/ordinary-index-core branch from 378a844 to 4d69696 Compare July 3, 2024 20:15
@jorisdral jorisdral added this pull request to the merge queue Jul 3, 2024
Merged via the queue into main with commit 2195ec2 Jul 3, 2024
12 checks passed
@jorisdral jorisdral deleted the jeltsch/ordinary-index-core branch July 3, 2024 23:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants