MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / GetMetadataPurgeInterval

Method GetMetadataPurgeInterval

db/database.go:1610–1646  ·  view source on GitHub ↗

GetMetadataPurgeInterval returns the current value for the metadata purge interval for the backing bucket. if forceRefresh is set, we'll always fetch a new Metadata Purge Interval from the bucket, even if we had one cached.

(ctx context.Context, forceRefresh bool)

Source from the content-addressed store, hash-verified

1608// GetMetadataPurgeInterval returns the current value for the metadata purge interval for the backing bucket.
1609// if forceRefresh is set, we'll always fetch a new Metadata Purge Interval from the bucket, even if we had one cached.
1610func (db *DatabaseContext) GetMetadataPurgeInterval(ctx context.Context, forceRefresh bool) time.Duration {
1611 // look for metadata purge interval preferentially:
1612 // 1. test override value specified in DatabaseContextOptions
1613 // 2. cached metadata purge interval (if forceRefresh is false)
1614 // 3. bucket level
1615 // 4. cluster level
1616 // 5. default fallback value
1617 if db.Options.TestPurgeIntervalOverride != nil {
1618 return *db.Options.TestPurgeIntervalOverride
1619 }
1620
1621 // fetch cached value if available
1622 if !forceRefresh {
1623 mpi := db.CachedPurgeInterval.Load()
1624 if mpi != nil {
1625 return *mpi
1626 }
1627 }
1628
1629 // fetch from server
1630 cbStore, ok := base.AsCouchbaseBucketStore(db.Bucket)
1631 if !ok {
1632 return DefaultPurgeInterval
1633 }
1634 serverPurgeInterval, err := cbStore.MetadataPurgeInterval(ctx)
1635 if err != nil {
1636 base.WarnfCtx(ctx, "Unable to retrieve server's metadata purge interval - using default purge interval %.2f days. %s", DefaultPurgeInterval.Hours()/24, err)
1637 }
1638
1639 mpi := DefaultPurgeInterval
1640 if serverPurgeInterval > 0 {
1641 mpi = serverPurgeInterval
1642 }
1643
1644 db.CachedPurgeInterval.Store(&mpi)
1645 return mpi
1646}
1647
1648// GetVersionPruningWindow returns the current value for the XDCR Version Pruning Window for the backing bucket.
1649// if forceRefresh is set, we'll always fetch a new value from the bucket, even if we had one cached.

Callers 3

StartOnlineProcessesMethod · 0.95
CompactMethod · 0.80

Calls 5

AsCouchbaseBucketStoreFunction · 0.92
WarnfCtxFunction · 0.92
LoadMethod · 0.80
StoreMethod · 0.80
MetadataPurgeIntervalMethod · 0.65

Tested by 1