I do not know if this is a bug in 2.9.0, but it seems that segments with all documents deleted are not automatically removed:
Shouldn't such segments not be removed automatically during the next commit/close of IndexWriter?
Lucene doesn't actually short-circuit this case, ie, if every single doc in a given segment has been deleted, it will still merge it [away] like normal, rather than simply dropping it immediately from the index, which I agree would be a simple optimization. Can you open a new issue? I would think IW can drop such a segment immediately (ie not wait for a merge or optimize) on flushing new deletes.