-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Using Columns names instead of ORM to get all documents #620
Merged
tholor
merged 14 commits into
deepset-ai:master
from
lalitpagaria:optimize_convert_row_to_doc
Jan 6, 2021
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
cb69140
Using Columns name instead of ORM object for get all documents call
lalitpagaria b7fc4a5
Separating meta search from documents. This way it will optimize the …
lalitpagaria ce812e2
Fixing mypy issue
lalitpagaria eaf269b
SQLite have limit on number of host variable hence using batching to …
lalitpagaria ced3bfc
Query meta only if meta field is not Null in DocOrm
lalitpagaria 172d297
Add batch_size to other functions except label
lalitpagaria c17ae21
meta can be none so fix that issue
lalitpagaria ffcefba
Dummy commit to trigger CI
lalitpagaria 5bb39fc
Using chunked dictionary
lalitpagaria e7352aa
Upgrading faiss
lalitpagaria 9606749
reverting change related to faiss upgrade
lalitpagaria 5fec8b4
Changing DB name in test_faiss_retrieving test as it might interfere …
lalitpagaria 377cf63
Updating doc string related to batch_size
lalitpagaria f2e639f
Update docstring for batch_size
tholor File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first query (line 120) executes quickly as it should if just querying by index (< 1 sec). Memory usage seems to be normal / expected.
The second call to get metadata is much slower and errors eventually:
It seems odd that 2 separate queries would be required to get the same fields in a document.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To fix it I have added index on document_id and limiting the number of host variable parameters passed to sql queries. (999 is for sqlite < 3.32 and 32K for >= 3.32)
It is done to prevent duplication of very long
text
field in memory. Each docs can have multiple metas and for each meta better not to keep duplicate text in the memory. Hence I have split it in two queries.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please test with latest change where I have fix the issue you have reported.
It seems you have very good amount of data to benchmark it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vinchg by chance if you get time could you please test latest changes.