public void CleanupDocuments(Etag lastIndexedEtag)
{
var highest = new ComparableByteArray(lastIndexedEtag);
foreach (var docToRemove in documentsToRemove)
{
if (docToRemove.Value.All(etag => highest.CompareTo(etag) > 0) == false)
continue;
HashSet<Etag> _;
documentsToRemove.TryRemove(docToRemove.Key, out _);
}
foreach (var updatedDocs in updatedDocuments)
{
if (updatedDocs.Value.All(etag => highest.CompareTo(etag) > 0) == false)
continue;
HashSet<Etag> _;
updatedDocuments.TryRemove(updatedDocs.Key, out _);
}
JsonDocument result;
while (prefetchingQueue.TryPeek(out result) && highest.CompareTo(result.Etag) >= 0)
{
prefetchingQueue.TryDequeue(out result);
}
}