No parece que lru.Cache sea seguro para el acceso simultáneo. ¿Es esto correcto? Si es así, ¿se opondría a que agregue un mutex?
Soy nuevo en la contribución de código abierto y parece que podría ser una victoria fácil.
¿Cuáles serían las desventajas de reemplazar el mapa actual con el nuevo mapa sincronizado?
Hola,
Espero no ser redundante al responder, pero noto que este hilo ha estado en silencio por un tiempo.
Al buscar en groupcache.go, el lru solo se usa de manera segura para subprocesos. Entonces, la LRU deja su política de bloqueo hasta el código de llamada. Creo que es razonable, porque entonces se pueden evitar los bloqueos dobles: no hay duda de quién tiene que implementar el bloqueo o dónde debe ir en el código.
Hay un par de recursos en sync.Map:
https://www.youtube.com/watch?v=C1EtfDnsdDs
https://medium.com/@deckarep/the-new-kid-in-town-gos-sync-map-de24a6bf7c2c
Entonces, supongo que la pregunta es: ¿tiene un problema de contención de caché medido en groupcache? :-)
Salud,
No es redundante en absoluto, y sus comentarios tienen sentido. Estoy satisfecho. ¡Gracias!
Comentario más útil
Hola,
Espero no ser redundante al responder, pero noto que este hilo ha estado en silencio por un tiempo.
Al buscar en groupcache.go, el lru solo se usa de manera segura para subprocesos. Entonces, la LRU deja su política de bloqueo hasta el código de llamada. Creo que es razonable, porque entonces se pueden evitar los bloqueos dobles: no hay duda de quién tiene que implementar el bloqueo o dónde debe ir en el código.
Hay un par de recursos en sync.Map:
https://www.youtube.com/watch?v=C1EtfDnsdDs
https://medium.com/@deckarep/the-new-kid-in-town-gos-sync-map-de24a6bf7c2c
Entonces, supongo que la pregunta es: ¿tiene un problema de contención de caché medido en groupcache? :-)
Salud,