getGCKeys returns keys that should be GC'd and whether there should be a follow up GC because keys are being replicated.
()
| 318 | // getGCKeys returns keys that should be GC'd and whether there should be a |
| 319 | // follow up GC because keys are being replicated. |
| 320 | func (n *Node) getGCKeys() ([]string, bool) { |
| 321 | keys := n.data.List() |
| 322 | var gc []string |
| 323 | var replicating bool |
| 324 | for _, key := range keys { |
| 325 | replicas := n.ring.replicaPeers(key) |
| 326 | for _, replica := range replicas { |
| 327 | if replica == n.name { |
| 328 | if n.replicator.IsReplicating(key) { |
| 329 | replicating = true |
| 330 | continue |
| 331 | } |
| 332 | gc = append(gc, key) |
| 333 | break |
| 334 | } |
| 335 | } |
| 336 | } |
| 337 | |
| 338 | return gc, replicating |
| 339 | } |