PDA

Ver la Versión Completa : Funcionamiento de Actualizaciones "ApplyUpdates"


flystar
07-07-2007, 03:51:47
Buenos Días:

He notado que Delphi ofrece componentes para conexion a tablas de una BD
que permiten almacenar en memoria todos los movimientos que se hicieron a una tabla de una BD, para que al final en determinado momento se mande actualizar realmente a la BD con todos los movimientos que sucedieron como altas, bajas y cambios, un ejemplo de este comando es el famoso "Applyupdates", esto segun se es util para deshaogar el trafico en red y para que las aplicaciones que accesan a la BD se manejen de una forma mas rapida.

Despues de saber esto me salta a la duda todos los mecanismoso manera en que se actualiza una BD si dos computadoras mandaron llamar el comando Applyupdates con un total de 2500 cambios en memoria o alguna cantidad considerable, obviamente ambos cambios trataran de hacerse al mismo tiempo, pero como se solucionan los cambios en dicha situacion???
A quien atiende primero? O a los dos los atiende?

Como funcionan y se procesan las solicitudes en red que llegan al mismo tiempo, existe algun documento que explique eso a detalle y bien explicado?

Gracias.

maro
07-07-2007, 20:57:51
Hola,

No soy ningún experto en esto, por lo que puedo equivocarme fácilmente.

Si te refieres a Midas, por cada usuario que se conecta a la capa SQL, se genera un nuevo hilo (esto se puede configurar, dependiendo del tipo de servidor SQL se haya generado ) y éste levanta una instancia de la capa SQL para atender todas las peticiones del usuario.

Cuando en la capa cliente ejecutamos un ApplyUpdate, el ClientDataset envía las modificaciones (DeltaDS) al DatasetProvider correspondiente. Éste las interpreta y prepara una sentencia 'UPDATE' ('INSERT' o 'DELETE', según corresponda) para ejecutar sobre la base de datos las modificaciones oportunas.

Pues bien, ¿Como reaccionará tu servidor de base de datos? Exactamente igual que si ejecutamos dos sentencias SQL al mismo tiempo sobre el mismo motor de base de datos, desde cualquier otra herramienta.

Un Saludo.