From ed6d1066ed4ddcdf5dba96d57373ee584edbb2d6 Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Tue, 20 Jun 2023 11:53:10 -0700 Subject: [PATCH] Add reset --- src/internal/m365/onedrive/collection.go | 1 + src/internal/m365/onedrive/collections.go | 18 ++++++++++++++++++ src/internal/m365/onedrive/url_cache.go | 3 +++ 3 files changed, 22 insertions(+) diff --git a/src/internal/m365/onedrive/collection.go b/src/internal/m365/onedrive/collection.go index 59b03bf1a..60eb307c5 100644 --- a/src/internal/m365/onedrive/collection.go +++ b/src/internal/m365/onedrive/collection.go @@ -401,6 +401,7 @@ func readItemContents( return nil, err } + logger.CtxErr(ctx, err).Info("item served from url cache") return rc, nil } diff --git a/src/internal/m365/onedrive/collections.go b/src/internal/m365/onedrive/collections.go index 917dd1ecc..94476fcc8 100644 --- a/src/internal/m365/onedrive/collections.go +++ b/src/internal/m365/onedrive/collections.go @@ -327,6 +327,24 @@ func (c *Collections) Get( "num_deltas_entries", numDeltas, "delta_reset", delta.Reset) + numDriveItems := c.NumItems - numPrevItems + numPrevItems = c.NumItems + + // Only create a drive cache if there are less than 300k items in the drive. + if numDriveItems < urlCacheDriveItemThreshold { + logger.Ctx(ictx).Info("adding url cache for drive ", driveID) + logger.Ctx(ictx).Info("url cache: new items in drive ", numDriveItems) + + err = c.addURLCacheToDriveCollections( + ictx, + driveID, + prevDelta, + errs) + if err != nil { + return nil, false, err + } + } + // For both cases we don't need to do set difference on folder map if the // delta token was valid because we should see all the changes. if !delta.Reset { diff --git a/src/internal/m365/onedrive/url_cache.go b/src/internal/m365/onedrive/url_cache.go index bfa4b16f8..e2cf8521d 100644 --- a/src/internal/m365/onedrive/url_cache.go +++ b/src/internal/m365/onedrive/url_cache.go @@ -177,6 +177,9 @@ func (uc *urlCache) deltaQuery( ) error { logger.Ctx(ctx).Debug("starting delta query") + // Reset item pager to remove any previous state + uc.itemPager.Reset() + _, _, _, err := collectItems( ctx, uc.itemPager,