Optimistic Lock Coupling: escalabilidad sin bloqueos para estructuras de datos concurrentes
Safe Optimistic Lock Coupling
A medida que aumentan los núcleos de CPU, las estructuras de datos concurrentes se vuelven cuellos de botella por la contención de locks. El artículo presenta Optimistic Lock Coupling, una técnica en la que los lectores no escriben: validan versiones antes y después de leer, reintentando si hay cambios. Con soporte del compilador, se codifica la validación en el sistema de tipos para evitar race conditions. El resultado es un rendimiento casi lock-free en lecturas con escrituras concurrentes seguras.
El compilador atrapa los errores que de otro modo se convertirían en sutiles race conditions en tiempo de ejecución.