Info
In current code, each metadata version has provisioned one range to delete when it is retired. Registering a second range would require copying the metadata to a new version (if there is no other event that required the copy), a potentially expensive operation. Keeping a list of ranges for each metadata version would simplify the code and avoid otherwise-unnecessary metadata copying.
Furthermore, the event-managing code has a race in which a deletion could fail while the requester is not waiting, resulting in the failure not being reported to the requester, and then, possibly, in-migration to a range currently occupied.
Solving this requires plumbing range deletion event notification through more levels of interface.
Top User Comments
xgen-internal-githook commented on Wed, 17 May 2017 17:53:42 +0000:
Author:
{u'username': u'ncm', u'name': u'Nathan Myers', u'email': u'ncm@cantrip.org'}
Message: SERVER-28884 Better range deletion event tracking
Branch: master
https://github.com/mongodb/mongo/commit/1ac2f9d964bc86a1b7ed5ec608a7d1c444b017bd
nathan.myers commented on Mon, 15 May 2017 21:55:00 +0000:
See also comments on 133320002:
https://mongodbcr.appspot.com/133320002/#msg3
https://mongodbcr.appspot.com/133320002/#msg4