¿Paralelo LINQ en WebApps?
-
08-07-2019 - |
Pregunta
Acabo de ver el último Canal 9 vid en las próximas extensiones paralelas a .NET. ¿Cómo usarías esto en una aplicación web? Estoy pensando específicamente en usar las extensiones paralelas de Linq contra una base de datos SQL. ¿Tendría sentido usarlo como una forma de acelerar su capa de acceso a datos en una aplicación de servidor multiusuario? ¿Cuáles son los problemas (aparte de los problemas obvios de seguridad de subprocesos que utilizan tipos de colección estática)?
Solución
Creo que este párrafo extraído de este artículo explica el uso de PLINQ-to-SQL:
LINQ-to-SQL y LINQ-to-Entities las consultas aún serán ejecutadas por el respectivas bases de datos y consulta proveedores, por lo que PLINQ no ofrece un manera de paralelizar esas consultas. Si desea procesar los resultados de esas consultas en memoria, incluyendo unirse a la salida de muchos consultas heterogéneas, entonces PLINQ puede ser bastante útil.
En cuanto al uso de PLINQ en una aplicación web, si la solicitud requiere muchos cálculos en memoria en PLINQ, podría ser útil (como si tuviera varias fuentes de datos que le gustaría consultar juntos) No veo ningún problema en usarlo.
Otros consejos
Parallel LINQ está destinado principalmente a trabajar contra colecciones en memoria, creo. ¿Cómo esperaba usarlo en su base de datos?
Dado que las webapps son naturalmente bastante paralelas (en términos de solicitudes separadas que se ejecutan en subprocesos separados, etc.) sospecho que PLINQ realmente no se aplicará mucho a él.