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

LongestPrefixMatch in case of Index Ordering strategy - Draft version(Proposal) #311

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

fouadazem
Copy link

the Use Of Inverted Radix Tree adopted into CqEngine once there are Longest Prefix match attributes provided.
what was done on this Solution is to cover the following

  1. get the Inverted Radix Holder that has the ability to hold inverted radix trees for specific key ( Setter and getter added)
  2. the ability from the cqengine to receive the Longest prefix and attributes part of the query options
  3. Logic in case of Longest Prefix match attributes provided and index ordering strategy called , get the Appropriate inverted Radix Tree and on it , get all the prefixes loaded prehand in our case its happening during the start up and then add to the currrent query instead of Longest Prefix match Operator , add the In Operator with prefixes got from the Inverted Radix Tree
    finally we are invoking the retrieveWithIndexOrderingStrategy and then got the result of the longest prefix columns arraged in descending order.
    final stage is to filter the result and find if we have 1 record of longest or the length of the first longest reduced .

we test the soluation from performance wise and we found huge improvement from what currently exist .
this is only proposal soluation .
please review and let me knows how i can improve it to make it better from all the perspectives.

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.

1 participant