code: func (m *LocalDatasetShardsManager) purgeExpiredEntries() {
  	for {
  		func() {
  			m.Lock()
  			cutoverLimit := time.Now().Add(-24 * time.Hour)
  			var oldShardNames []string
  			for name, ds := range m.name2Store {
  				if ds.LastWriteAt().Before(cutoverLimit) && ds.LastReadAt().Before(cutoverLimit) {
  					println("purging dataset", name, "last write:", ds.LastWriteAt().String(), "last read:", ds.LastReadAt().String())
  					oldShardNames = append(oldShardNames, name)
  				}
  			}
  			for _, name := range oldShardNames {
  				m.doDelete(name)
  			}
  			m.Unlock()
  			time.Sleep(1 * time.Hour)
  		}()
  	}
  }
docs: // purge executor status older than 24 hours to save memory