SQL CLR Internals - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

SQL CLR Internals

Description:

Esta sesi n est dirigida a gente curiosa. o simplemente... que le gusta perder el tiempo. ... C digo .NET corriendo en el mismo proceso. Bueno, esto es f cil... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 18
Provided by: desarroll
Category:
Tags: clr | sql | esto | gente | internals | mucho | todo

less

Transcript and Presenter's Notes

Title: SQL CLR Internals


1
SQL CLR Internals
  • David Carmona
  • davidcsa_at_microsoft.com
  • División de Desarrolladores y Plataforma
  • Microsoft Ibérica

2
  • Esta sesión está dirigida a gente curiosa
  • o simplemente
  • que le gusta perder el tiempo.

3
SQL Server como host del CLR
  • SQL Server hospeda al CLR
  • Código .NET corriendo en el mismo proceso
  • Bueno, esto es fácil
  • Todos lo hacemos desde VB6, como Don Box
  • y qué pasa con?
  • Carga de assemblies
  • Gestión de la memoria
  • Condiciones excepcionales
  • Hilos
  • Seguridad

4
ICLRRuntimeHost
  • Dos interfaces en CLR
  • ICorRuntimeHost
  • ICLRRuntimeHost (nuevo)
  • ICLRRuntimeHost mucho más potente
  • SetHostControl permite interceptar casi todo
  • Carga de assemblies, locks, hilos, memoria

5
Hosting del CLR 2.0
6
Cargador de ensamblados
  • El cargador por defecto no nos vale
  • SQL Server almacena los ensamblados
  • Interfaz IHostAssemblyManager
  • Devuelve lista de ensamblados blessed
  • Carga habitual
  • Para los demás IHostAssemblyStore
  • Método ProvideAssembly
  • Devuelve Stream del ensamblado especificado

7
Application Domains
  • Los Application Domains proporcionan entornos de
    aislamiento
  • Usados por SQL Server para garantizar la
    seguridad y fiabilidad
  • Por base de datos y owner
  • Cuidado!
  • Podemos hacer reflection con mismo owner
  • Podemos lanzar nuevos AppDomains

8
Seguridad
  • Validación de código
  • Al crear el assembly
  • Reglas básicas (SAFE / EXTERNAL)
  • Código verificable (type safe)
  • Finalizers
  • Miembros estáticos mutables

9
Seguridad (II)
  • Todos los ensamblados tienen que estar
    almacenados
  • Excepto lista blessed
  • De la lista blessed no todo es usable
  • Atributo HostProtection con riesgo asociado
  • SharedState
  • Synchronization
  • ExternalThreading

10
Seguridad
11
La memoria
  • SQL Server no es una aplicación corriente
  • Utiliza toda la memoria posible
  • La mantiene al límite de la paginación
  • SQL Server utiliza IHostMemoryManager
  • Gestiona la memoria CLR como un recurso más
  • Puntos de control
  • Reserva / liberación de memoria
  • Puesta en marcha del recolector
  • En ambos sentidos

12
Gestión de hilos
  • Con los hilos nos hemos topado
  • SQL Server es non-preemptive
  • Las tareas deben cooperar con el UMS
  • En SQL Server tarea ! hilo
  • Modo fibra
  • Interfaz IHostTaskManager
  • Virtualiza la gestión de hilos
  • Permite el funcionamiento semi-cooperativo
  • SQL Server hace yield sobre hilos egoístas
  • Aprovecha cualquier oportunidad

13
Hilos
14
Bloqueos
  • El recolmo qué hacemos con los bloqueos?
  • Interfaz IHostSyncManager
  • SQL Server toma el control de los bloqueos .NET
  • Bloqueos .NET mapeados a bloqueos SQL
  • Permite su gestión unificada
  • Difícil de creer?

15
Bloqueos
16
Conclusiones
  • Esto es complicado
  • Tres lecciones
  • Fiabilidad
  • Escalabilidad
  • Seguridad

17
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com