[SERVER-1145] Strings too large for index cause record to be silently ignored Created: 24/May/10  Updated: 12/Nov/10  Resolved: 12/Nov/10

Status: Closed
Project: Core Server
Component/s: Usability
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Roger Binns Assignee: Unassigned
Resolution: Duplicate Votes: 3
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Participants:

 Description   

If you insert a record where one of the fields is too long to fit in an index then the record is omitted from the index and a single message ends up in the log. In any queries that use that index, the row is silently ignored. This is really bad behaviour as it gives wrong answers.

Suggestions are:

  • Reject additions/updates where the record can't be indexed. This makes the limitation explicitly visible just as with the 4MB record size limit.
  • Note that record in the index, but not the value. On a query using that index, use the index for all applicable rows and then visit the noted records checking their eligibility the non-indexed way. This will ensure that the vast majority of records get the performance benefit of an index while the small minority are checked slower, but there aren't many of them so it isn't that big a deal.

In either case the correct answer will be given to queries.



 Comments   
Comment by Eliot Horowitz (Inactive) [ 12/Nov/10 ]

SERVER-1716 is the same and has a test case attached

Comment by Lucas Zamboulis [ 11/Oct/10 ]

+1 on the second strategy and Mathias' improvement.

Comment by Mathias Stearn [ 24/May/10 ]

As an improvement on the second strategy, we could store the portion that does fit in the index, and flag it and an "incomplete" value.

Generated at Thu Feb 08 02:56:12 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.