Paramètres d'initialisation de la taille de la zone tampon

ArcSDE fournit trois paramètres d'initialisation de la zone tampon de transport : MINBUFSIZE, MAXBUFSIZE et MINBUFOBJECTS.

Les données sont transférées entre un service ArcSDE (serveur d'applications) et une application cliente par l'intermédiaire d'un flux. Un flux sert de mécanisme de communication pour interroger une table ou une couche. Les flux utilisent une structure de mémoire (une zone tampon de transport) comme contenant avant de passer la structure à la pile de réseau sous-jacente.

Lorsqu'un flux ArcSDE est créé, le processus ArcSDE attribue des zones tampon de transport au client et au serveur. Les zones tampon de transport réduisent les entrées/sorties (E/S) et améliorent les performances en accumulant des enregistrements pour les données vectorielles et en les envoyant sur le réseau par lots, et non sous forme d'enregistrements individuels.

Les enregistrements sont rassemblés dans la zone tampon de transport du processus du serveur d'application ArcSDE et envoyés à la zone tampon de transport du client ArcSDE lorsque l'application interroge la base de données. Les enregistrements peuvent aussi être rassemblés dans la zone tampon de transport du client et envoyés à la zone tampon de transport du processus du serveur ArcSDE lorsque l'application écrit des données dans la base de données.

Les paramètres de la zone tampon de transfert

Ces paramètres forment ensemble les seuils inférieurs qui empêchent des zones tampon d'être transmises en réponse à la demande d'un client. Pendant que les données demandées par la requête sont transmises, le lot de données dans la zone tampon n'est pas envoyé jusqu'à ce que les seuils MINBUFOBJECTS ou MINBUFSIZE soient atteints. Une fois que toutes les données extraites ont été placées dans la zone tampon, les données sont transférées au client, même si ces seuils n'ont pas été dépassés. MINBUFOBJECTS est examiné en premier.

MINBUFOBJECTS est le nombre minimal d'enregistrements stockés dans une zone tampon de transmission avant l'envoi sur le flux. La valeur par défaut est 512 enregistrements. Ce nombre correspond également à la valeur minimale. Les tests ESRI n'ont permis de constater aucun gain de performances avec une augmentation de ce paramètre au-delà de 512.

MINBUFSIZE ne doit pas représenter plus de la moitié de MAXBUFSIZE. Si MINBUFSIZE est trop élevé, le temps de transmission de la zone tampon au client est plus long. Si MAXBUFSIZE est défini sur 64 kilo-octets et MINBUFSIZE sur 56 kilo-octets, le client attend jusqu'à ce que le seuil de 56 kilo-octets soit atteint avant d'envoyer la zone tampon de transport. La valeur minimale est 4 096 octets.

Le paramètre MAXBUFSIZE représente la quantité de mémoire totale attribuée à chaque zone tampon de transport. La zone tampon de transport arrête d'accumuler les enregistrements lorsque MAXBUFSIZE est atteint et attend que la requête envoie les enregistrements au client. Avant d'augmenter la taille de la zone tampon, vérifiez qu'il y a suffisamment de mémoire physique sur le serveur, faute de quoi les performances s'en ressentiront. Par exemple, la valeur par défaut attribue 64 kilo-octets par zone tampon. S'il y a 100 utilisateurs connectés, chaque processus gsrvr contient une zone tampon, consommant un total de 6,4 Mo de mémoire système. Si MAXBUFSIZE est doublé, 12,8 Mo de mémoire seront consommés.

Séquence de transfert de données

Pendant que les données sont extraites en réponse à une requête, ArcSDE vérifie si le nombre de lignes du lot de données correspond au paramètre MINBUFOBJECTS. Si la requête est toujours en cours de traitement, le seuil MINBUFOBJECTS est atteint (le nombre requis de lignes est présent), et le client attend des données, les données sont envoyées. Si le seuil MINBUFOBJECTS n'est pas atteint et que les données sont toujours en cours de récupération, ArcSDE vérifie la taille des données pour vérifier si le seuil MINBUFSIZE a été atteint. Si ce n'est pas le cas, la zone tampon continue à se remplir.

La zone tampon commence à se remplir

Lorsque le seuil MINBUFSIZE est atteint, si le client attend, les données sont envoyées au client.

Le seuil MINBUFFSIZE est atteint

Si le client n'avait pas attendu et que la récupération des données était encore en cours, la zone tampon continuerait à se remplir au-delà du seuil MINBUFSIZE.

La zone tampon continue à charger si aucun client n'attend

La zone tampon continue à se remplir jusqu'à ce que toutes les données requises aient été placées dans la zone tampon, jusqu'à ce que le client attende des données, ou jusqu'à ce que le seuil MAXBUFSIZE soit atteint. Une fois que le seuil MAXBUFSIZE est atteint, le chargement de la zone tampon s'arrête.

Le client demande des données
La MAXBUFSIZE est atteinte

Rubriques connexes


7/10/2012