FR3090929A1 - Actualisation de multiples enregistrements de données - Google Patents
Actualisation de multiples enregistrements de données Download PDFInfo
- Publication number
- FR3090929A1 FR3090929A1 FR1873627A FR1873627A FR3090929A1 FR 3090929 A1 FR3090929 A1 FR 3090929A1 FR 1873627 A FR1873627 A FR 1873627A FR 1873627 A FR1873627 A FR 1873627A FR 3090929 A1 FR3090929 A1 FR 3090929A1
- Authority
- FR
- France
- Prior art keywords
- database
- session
- data records
- server
- records
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000007246 mechanism Effects 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims description 27
- 238000010200 validation analysis Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 5
- 230000008439 repair process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Actualisation de multiples enregistrements de données dans un système de bases de données avec au moins une base de données et un premier serveur comprenant la création d’une première session et le chargement, au cours de la première session, de multiples enregistrements de données stockés par la base de données dans une mémoire du premier serveur. L’actualisation d’au moins un premier et un deuxième des multiples enregistrements de données au cours de la première session dans la mémoire du premier serveur. Un mécanisme de transaction de base de données réécrit les multiples enregistrements de données après avoir actualisé lesdits au moins premier et deuxième enregistrements de données, assurant ainsi que tous les enregistrements actualisés de bases de données sont validés, ou aucun d’entre eux. Le mécanisme de transaction de base de données inclut un verrouillage des premier et deuxième enregistrements de données stockés dans la base de données. Figure pour l’abrégé : Fig. 3
Description
Description
Titre de l'invention : Actualisation de multiples enregistrements de données dans une base de données
[0001] De façon générale, l’invention concerne des ordinateurs et des logiciels et, en particulier, des procédés, des systèmes et des produits-programmes d’ordinateur pour actualiser de multiples enregistrements de données dans une base de données.
[0002] Les bases de données stockent en elles-mêmes une pluralité d’enregistrements de données. Les enregistrements de données stockés dans une base de données peuvent être lus uniquement ou peuvent être modifiés par une commande d’écriture. Plus souvent, une base de données peut être accédée par de nombreux utilisateurs différents à distance. Des mécanismes de verrouillage empêchent que différents utilisateurs modifient un enregistrement de données en même temps.
[0003] Les transactions de base de données permettent d’effectuer des mises à jour sur une pluralité d’enregistrements de données séparés de manière cohérente. Soit tous les enregistrements de données compris dans une transaction de base de données sont actualisés, ou aucun d’entre eux. Au cours d’une transaction de base de données, tous les enregistrements de données compris dans la transaction sont verrouillés. De trop nombreuses transactions en même temps ou des transactions qui durent trop longtemps peuvent donc impacter la performance de la base de données.
[0004] Par conséquent, il existe un besoin pour des systèmes améliorés, des procédés et des produits-programmes d’ordinateur permettant d’actualiser de multiples enregistrements de données dans une base de données sans impacter la performance de la base de données.
[0005] Selon un premier aspect, un procédé pour actualiser de multiples enregistrements de données dans un système de bases de données est fourni. Le système de bases de données comprend au moins une base de données et un premier serveur. Selon le procédé, une première session est créée dans le premier serveur. Au cours de la première session, de multiples enregistrements de données stockés par la base de données dans une mémoire du premier serveur sont chargés ; le procédé comprend par ailleurs l’actualisation d’au moins un premier et un deuxième des multiples enregistrements de données au cours de la première session dans la mémoire du premier serveur et l’enclenchement d’un mécanisme de transaction de base de données pour les multiples enregistrements de données après l’actualisation desdits premier et deuxième enregistrements de données pour écrire les enregistrements de données actualisés dans la base de données assurant ainsi que tous les enregistrements de base de données ac tualisés sont validés, ou aucun d’entre eux. Le mécanisme de transaction de base de données inclut un verrouillage des premier et deuxième enregistrements de données stockés dans la base de données. La première session dans le premier serveur est fermée après la validation des enregistrements de base de données actualisés.
[0006] D’autres aspects comprennent :
- le chargement et la mise à jour de multiples enregistrements de données sans verrouiller de multiples enregistrements de données dans la base de données
- l’actualisation d’au moins les premier et deuxième enregistrements de données comprend par ailleurs de définir au moins un des multiples enregistrements de données comme enregistrement de données actif et l’application de mises à jour aux enregistrements de données défini comme enregistrements de données actifs.
[0007] Dans un autre aspect, le procédé comprend par ailleurs l’envoi d’une requête à une autre base de données.
[0008] Dans un autre aspect, un quelconque des procédés énoncés ci-dessus comprend, au cours de la première session, un nouvel enregistrement de données dans lequel le nouvel enregistrement de données est validé avec les multiples enregistrements de données.
[0009] Dans un autre aspect, la création du nouvel enregistrement de données comprend la fusion du premier enregistrement de données et du deuxième enregistrement de données.
[0010] Dans un autre aspect, un quelconque des procédés énoncés ci-dessus comprend, au cours d’une deuxième session sur le premier serveur ou sur un deuxième serveur fonctionnant parallèlement à la première session, le chargement d’au moins le premier enregistrement de données stocké par la base de données dans la mémoire du premier serveur ou dans la mémoire du deuxième serveur et l’actualisation d’au moins le premier enregistrement de données dans la mémoire du premier ou du deuxième serveur au cours de la deuxième session alors que le premier enregistrement de données est également actualisé au cours de la première session et après que le premier enregistrement de données actualisé a été réécrit dans la base de données à partir de la première session, en réponse à une tentative de validation pour réécrire le premier enregistrement de données actualisé au cours de la deuxième session dans la base de données, l’utilisation d’un mécanisme de résolution de cohérence de réécriture pendant le mécanisme de transaction ;
[0011] Dans un autre aspect, le mécanisme de résolution de cohérence de la réécriture est un mécanisme de déni de tentative de validation pour réécrire le premier enregistrement de données actualisé au cours de la deuxième session dans la base de données, rechargeant le premier enregistrement de données à partir de la base de données et poursuivant la deuxième session, et fusionnant le premier enregistrement de données actualisé, mis à jour au cours de la deuxième session, avec le premier enregistrement de données réécrit dans la base de données de la deuxième session.
[0012] Dans un autre aspect, un serveur est configuré pour créer une première session dans un premier serveur ; charger, au cours de la première session, les multiples enregistrements de données stockés par la base de données dans une mémoire du premier serveur ; actualiser au moins un premier et un deuxième des multiples enregistrements de données au cours de la première session dans la mémoire du premier serveur ; enclencher un mécanisme de transaction de base de données pour les multiples enregistrements de données après avoir actualisé lesdits au moins premier et deuxième enregistrements de données pour écrire les enregistrements de données actualisés dans la base de données, assurant ainsi que tous les enregistrements de base de données actualisés sont validés, ou aucun d’entre eux, dans lequel le mécanisme de transaction de base de données inclut un verrouillage des premier et deuxième enregistrements de données stockés dans la base de données ; fermer la première session dans le premier serveur après la validation des enregistrements de base de données actualisés.
[0013] Dans un autre aspect, un programme d’ordinateur pour actualiser de multiples enregistrements de données dans une base de données est fourni comprenant un code de programme qui, lorsqu’il est exécuté par un ou plusieurs processeurs d’un premier serveur, amène les processeurs à : créer une première session dans un premier serveur ; charger, au cours de la première session, les multiples enregistrements de données stockés par la base de données dans une mémoire du premier serveur ; actualiser au moins un premier et un deuxième des multiples enregistrements de données au cours de la première session dans la mémoire du premier serveur ; enclencher un mécanisme de transaction de base de données pour les multiples enregistrements de données après avoir actualisé lesdits au moins premier et deuxième enregistrements de données pour écrire les enregistrements de données actualisés dans la base de données, assurant ainsi que tous les enregistrements de base de données actualisés soient validés,, ou aucun d’entre eux, dans lequel le mécanisme de transaction de base de données inclut un verrouillage des premier et deuxième enregistrements de données stockés dans la base de données ; fermer la première session dans le premier serveur après la validation des enregistrements de base de données actualisés. En d’autres termes, un programme d’ordinateur comprenant un code de programme pour exécuter un quelconque des procédés cités ci-dessus lorsque ledit programme fonctionne sur un ordinateur.
[0014] Les dessins qui accompagnent illustrent des modes variés de réalisation de l’invention et, avec la description générale de l’invention ci-dessus et la description détaillée des modes de réalisation donnée ci-dessous, servent à expliquer les modes de réalisation de l’invention.
[0015] [Eig. 1] montre un diagramme simplifié d’un système de bases de données exemplaire ;
[0016] [Fig. 2] illustre dans un diagramme simplifié le chargement et la validation des enregistrements de données ;
[0017] [Fig. 3] est un organigramme illustrant le procédé de mise à jour d’un enregistrement de données décrit dans les présentes.
[0018] [Fig. 4] est une visualisation de la mise à jour d’un enregistrement de données au cours de deux sessions parallèles.
[0019] [Fig. 5] est une représentation schématique des composants internes d’une machine informatique conforme à des modes de réalisation.
[0020] La Fig. 1 montre un diagramme simplifié d’un système de bases de données exemplaire 1. Le système de bases de données 1 comprend une base de données 10, un premier serveur 12A, un deuxième serveur 12B et un autre système informatique 14.
[0021] La base de données peut être toute base de données comme, p. ex., une base de données Oracle®. La base de données 10 peut stocker une multitude d’enregistrements de données. Une pluralité d’utilisateur peut accéder à la base de données 10 pour lire ou actualiser les enregistrements de données.
[0022] Le système de base de données 1 comprend deux serveurs 12A et 12B. Le système de base de données 1 peut comprendre plus de serveurs. Le système de base de données 1 peut comprendre un seul serveur. Le serveur ou les serveurs 12A et 12B peuvent être distants de la base de données 10. Les serveurs 12A et 12B peuvent être capables d’accéder à la base de données 10 via des lignes de communication bidirectionnelles. Les serveurs 12A et 12B peuvent accéder à la base de données 10 via un réseau de communication, p. ex. l’Internet. Les serveurs 12A et 12B peuvent être distants l’un de l’autre. Les serveurs 12A et 12B peuvent être indépendants l’un de l’autre. Le serveur 12A et/ou le serveur 12B peuvent être compris dans un système de traitement de données.
[0023] Le système de base de données 1, tel qu’il est illustré, comprend un système informatique 14. Il faut comprendre que le système de base de données 1 ne comprend pas nécessairement le système informatique 14. Le système informatique 14 peut être une autre base de données. Le système informatique 14 peut être un serveur comprenant un programme logiciel exécutant p. ex. un moteur de finalisation de réservation, un moteur de réservation et tout autre moteur d’application. Les serveurs 12A et 12B peuvent être configurés pour accéder au système informatique 14. Une mise à jour d’un enregistrement de données peut être dépendant d’une requête d’un client envoyée au système informatique 14.
[0024] La Fig. 2 montre un détail du système de bases de données 1. La Fig. 2 montre le serveur 12A et la base de données 10. Le système de bases de données 1 pourrait se limiter au serveur 12A et à la base de données 10. Les enregistrements de données 16A, 16B.... 16G peuvent être stockés dans la base de données 10. Un utilisateur (p. ex. une application en cours d’exécution sur le système informatique 14) peut vouloir actualiser plusieurs enregistrements de données stockés dans la base de données 10. L’utilisateur peut exiger les mises à jour de tous les enregistrements de données, ou qu’aucune des mises à jour ne soit effectuée. L’utilisateur peut utiliser le serveur 12A. L’utilisateur peut créer une première session sur le serveur 12 A. La première session peut permettre à l’utilisateur de charger un nombre quelconque d’enregistrements de données de la base de données 10. La première session peut inviter l’utilisateur à indiquer quels enregistrements de données doivent être chargés. L’utilisateur peut transmettre une commande au cours de la première session en chargeant les enregistrements de données devant être modifiés dans une mémoire (p. ex. une antémémoire) du premier serveur 12 A. L’utilisateur peut utiliser une interface de programmation d’application (API) ou, dans le cadre d’un utilisateur humain, une ligne de commandes comme suit pour créer la première session et pour charger trois enregistrements de données :
[0025] >spmulti/rtT9XSNP, KP6YFP, JTY4NT
[0026] Les trois enregistrements de données sont lus à partir de la base de données. Aucune modification n’est effectuée aux enregistrements de données dans la base de données. Aucun mécanisme de verrouillage n’est activé dans la base de données 10. Comme l’illustre la Fig. 2, des copies des enregistrements de données 16A, 16B et 16G sont chargés dans la mémoire du serveur 12A. Les enregistrements de données originaux 16A, 16B et 16G sont toujours conservés dans la base de données 10 dans un état non verrouillé, c.-à-d. qu’ils sont accessibles par d’autres utilisateurs. Le chargement des trois enregistrements de données 16A, 16B et 16G peut être effectué par trois processus de lecture séparés sans mécanisme de transaction de base de données. Les trois processus de lecture séparés peuvent être automatiquement réalisés au cours de la première session en réponse à l’entrée des noms des enregistrements de données dans la première session.
[0027] La première session peut permettre de définir un quelconque des enregistrements de données chargés comme enregistrement de données actif. L’utilisateur peut définir un premier des enregistrements de données 16A, 16B et 16G comme enregistrement de données actif. L’utilisateur peut sélectionner un ou plusieurs enregistrements de données comme étant actifs. La première session peut afficher le contenu de l’enregistrement(s) de données actif afin de faciliter la manipulation de l’enregistrement de données et de son contenu. Par exemple, pour des enregistrements de données d’une base de données de réparation et de maintenance technique, le contenu peut inclure une identification d’un dispositif technique en réparation, une information de diagnostic d’échec, une information de date, un horaire estimé pour la ré paration, les pièces nécessaires pour la réparation, les commentaires en texte libre d’un technicien, etc. L’utilisateur peut sélectionner plus qu’un seul enregistrement de données comme enregistrement de données actif. L’utilisateur peut manipuler l’enregistrement(s) de données actif et mettre à jour l’enregistrement(s) de données actif au cours de la première session.
[0028] Une actualisation effectuée peut être valide pour tous les enregistrements de données actifs. L’utilisateur peut définir un premier enregistrement de données 16A comme étant actif et actualiser le premier enregistrement de données 16 A. L’utilisateur peut ensuite définir un deuxième enregistrement de données 16B comme étant actif et mettre à jour le deuxième enregistrement de données 16 B. L’actualisation du premier enregistrement de données 16A et/ou du deuxième enregistrement de données 16B peut nécessiter l’envoi d’une requête au système informatique 14. L’actualisation peut être dépendante d’une réponse à la requête. Il faut comprendre qu’il peut y avoir plus d’un seul système informatique et que la procédure d’actualisation peut nécessiter l’envoi de plus d’une seule requête à plus d’un seul système informatique. L’actualisation du premier et du deuxième enregistrement de données peut être un processus itératif. Un quelconque enregistrement de données peut être défini plus d’une seule fois comme étant actif et peut être actualisé plus d’une seule fois. La première session fournit un environnement permettant à l’utilisateur de manipuler tous les enregistrements de données chargés.
[0029] La première session peut fournir la possibilité de créer un nouvel enregistrement de données. L’utilisateur peut créer un nouvel enregistrement de données. Un nouvel enregistrement de données est un enregistrement de données qui n’est pas chargé à partir de la base de données 10. L’utilisateur peut créer un nouvel enregistrement de données en fusionnant deux enregistrements de données actualisés. L’utilisateur peut créer un nouvel enregistrement de données en fusionnant p. ex. l’enregistrement de données actualisé 16A et l’enregistrement de données actualisé 16B. L’utilisateur peut créer un nouvel enregistrement de données en fusionnant un enregistrement de données actualisé avec un enregistrement de données chargé, mais non actualisé. L’utilisateur peut mettre fin au processus d’actualisation.
[0030] La première session peut fournir la possibilité d’amorcer une transaction de base de données pour réécrire les enregistrements de données actualisés (incluant tout nouvel enregistrement généré potentiel) dans la base de données 10. Le démarrage d’une transaction de base de données au cours de la première session peut comprendre le groupement de tous les enregistrements de données 16A, 16B et 16G compris ensemble dans la première session, permettant une seule itération d’une ou de plusieurs commandes de base de données à l’encontre de chaque enregistrement de données groupé. Le groupement de tous les enregistrements de données ensemble peut comprendre les enregistrements de données actualisés, les enregistrements de données non modifiés et/ou les enregistrements de données nouvellement créés. Par exemple, afin de réécrire les enregistrements de données modifiés et nouvellement générés, ces enregistrements sont groupés et une commande de validation est envoyée à la base de données 10 pour le groupe des enregistrements de données. Par ailleurs, les enregistrements de données ou les parties d’enregistrements de données peuvent être en boucle de sorte que de multiples itérations d’une série de commandes de base de données peuvent être appliquées à chacun des enregistrements de données. Les commandes peuvent faire référence p. ex. à des incohérences et/ou à des vérifications fonctionnelles. La Lig. 2 est une visualisation du groupement et/ou du bouclage par une ligne de pointillés entourant les enregistrements de données 16A, 16B et 16G. Le démarrage d’une transaction de base de données dans la première session peut comprendre l’envoi d’une commande de validation du serveur 12A à la base de données 10 comprenant les noms de tous les enregistrements de données groupés et/ou bouclés comme indiqué dans la Lig. 2 par une flèche en pointillée. Une seule commande est nécessaire pour valider tous les enregistrements de données.
[0031] La réception à la base de données 10, de la commande de validation peut amorcer une transaction de base de données sous un ID commun de session. Tous les enregistrements de données 16A, 16B et 16G correspondant aux noms compris dans la commande reçue peuvent être verrouillés à la base de données 10. Les enregistrements de données peuvent être verrouillés à l’écriture. La base de données 10 peut créer un tableau de verrouillage comprenant les noms. Le mécanisme de base de données enclenché par la commande de validation assure, soit que tous les enregistrements de base de données actualisés 16A, 16B et 16G soient validés, ou aucun d’entre eux. Les enregistrements de données 16A, 16B et 16G ne sont verrouillés qu’une fois que la commande de validation est reçue à la base de données 10.
[0032] La première session peut être fermée par l’utilisateur une fois que les enregistrements de données 16A, 16B et 16G sont validés.
[0033] La Lig. 3 illustre un flux séquentiel de diverses activités du procédé conformément à un mode de réalisation. Premièrement, un utilisateur crée une première session dans un serveur (activité SI). Le serveur peut être distant d’une base de données. Le serveur peut être couplé à la base de données via toutes sortes de lignes de communication.
[0034] Ensuite (activité S2) de multiples enregistrements de données peuvent être chargés, à partir d’une base de données au cours de la première session, dans une mémoire du serveur. Les multiples enregistrements de données peuvent avoir une interdépendance pour l’utilisateur. Les multiples enregistrements de données peuvent être stockés indépendamment l’un de l’autre dans la base de données et peuvent être recherchés indépendamment les uns des autres dans la base de données. Ils ne peuvent être que lus dans la base de données. Aucun verrouillage des enregistrements de données n’est mis en œuvre dans la base de données.
[0035] Au moins un premier et un deuxième enregistrement de données parmi les multiples enregistrements de données sont actualisés (activité S3). Des mises à jour peuvent être effectuées de façon séquentielle ou parallèle aux premier et deuxième enregistrements de données.
[0036] Une fois que les mises à jour sont terminées, la première session contacte la base de données pour remplacer les enregistrements de données, toujours non modifiés dans la base de données avec les données modifiées (activité S4). Par conséquent, un mécanisme de transaction de base de données comprenant tous les enregistrements de données chargés dans la mémoire du serveur est enclenché. La transaction de base de données peut par ailleurs comprendre des enregistrements de données créés au cours de la première session. Le mécanisme de transaction de base de données comprend un mécanisme de verrouillage d’écriture sur tous les enregistrements de données chargés au cours de la première session. Le mécanisme de transaction de base de données assure que tous les enregistrements de base de données actualisés soient validés, ou aucun d’entre eux. A la fin de la transaction de base de données tous (ou aucun) des enregistrements de données sont modifiés dans la base de données.
[0037] La première session est fermée une fois que tous les enregistrements de données sont validés (activité S5).
[0038] Dans certains modes de réalisation, une deuxième session peut être amorcée indépendamment de la première session. La deuxième session peut être amorcée sur le premier serveur 12A ou sur le deuxième serveur 12B, ou sur un autre serveur. La deuxième session peut chevaucher dans le temps la première session. Comme tous les enregistrements de données 16A-16G ne sont pas verrouillés après leur lecture dans la première session, la deuxième session peut charger les trois mêmes enregistrements de données 16A, 16B et 16G dans une mémoire du serveur respectif. A titre d’exemple on peut supposer que la deuxième session charge les enregistrements de données 16A et 16L. De nouveau, aucun mécanisme de verrouillage n’est enclenché au niveau de la base de données 10. Aucune modification aux enregistrements de données, tels qu’ils sont stockés dans la base de données 10, n’est effectuée à ce point.
[0039] Au cours de la deuxième session, les enregistrements de données 16A et 16L peuvent être actualisés, de la manière décrite ci-dessus par rapport à la première session. Une transaction de base de données peut être enclenchée au cours de la deuxième session après l’achèvement des mises à jour. La transaction de base de données peut être amorcée à partir de la deuxième session indépendamment de la transaction de base de données amorcée à partir de la première session.
[0040] Dans certains modes de réalisation, un mécanisme de résolution de cohérence de ré écriture au cours du mécanisme de transaction peut être apporté. En réponse à une tentative de validation, tout d’abord les enregistrements de données récupérés à l’origine (qui ont été conservés dans la mémoire du serveur 12B avec en plus la version actualisée des enregistrements de données) peuvent être comparés aux enregistrements de données correspondants dans la base de données 10. Si les enregistrements de données tels qu’ils ont été chargés à l’origine dans la mémoire du serveur 12A respectivement 12B ne sont pas identiques aux enregistrements de données actuels dans la base de données 10, le mécanisme de résolution cohérence de réécriture peut être utilisé.
[0041] Un déni de la tentative de validation est un exemple du mécanisme de résolution de cohérence de réécriture. En réponse au déni de la tentative de validation, la session peut être configurée pour recharger l’enregistrement de données identifié comme n’étant pas identique à l’enregistrement de données récupéré à l’origine de la base de données 10. L’enregistrement de données rechargé peut ensuite être fusionné au cours de la session avec l’enregistrement de données actualisé. Une nouvelle tentative de validation peut commencer.
[0042] Un autre exemple de mécanismes de résolution de cohérence de réécriture est la fusion qui a lieu au niveau de la base de données 10 sans aucune nouvelle tentative de validation. La fusion comprend l’incorporation des mises à jour faites au cours de la deuxième session dans la version des données actuellement stockées dans la base de données 10.
[0043] Un exemple des corrélations de multiples sessions accédant et actualisant les mêmes données stockées dans la base de données 10 conformément aux méthodologies décrites dans les présentes est fourni par la EIG. 4. Le système informatique 14 se met en marche et conserve la première session avec le serveur 12B (activité 20). Au cours de la première session, le serveur 12B charge les données devant être gérées et actualisées à partir de la base de données 10 dans la mémoire du serveur 12B (activité 22). Ainsi que décrit ci-dessus les données chargées peuvent être des enregistrements de données 12A, 12B et 12G. Les données chargées sont ensuite actualisées dans la mémoire du serveur 12B au cours de la première session en réponse aux commandes respectives du système informatique 14 (activité 24).
[0044] A un certain moment après que les données sont chargées dans la première session (activité 22), la deuxième session est amorcée et conservée (activité 26). Dans l’exemple de la EIG. 4, la deuxième session est amorcée et conservée avec le serveur 12A et également par le système informatique 14, mais elle peut être réamorcée et conservée par un autre serveur (p. ex. par le serveur 12B) et par tout autre système informatique. Au cours de la deuxième session, les données devant être gérées et actualisées sont chargées à partir de la base de données 10 (activité 28), les données comprenant au moins un enregistrement de données qui a déjà été précédemment chargé à partir de la base de données 10 au cours de la première session à l’activité 22 (p. ex. l’enregistrement de données 16A décrit ci-dessus). Les données chargées sont ensuite actualisées dans la mémoire du serveur 12A au cours de la deuxième session en réponse aux commandes respectives du système informatique 14 (activité 30).
[0045] Faisant à nouveau référence à la première session, après la fin de l’actualisation des données dans la mémoire du serveur 12B, les données actualisées sont réécrites dans la base de données 10 (activité 32). Dans le scénario hypothétique de la FIG. 4, au moins un des enregistrements de données également chargés par la deuxième session a été actualisé au cours de la première session (p. ex. l’enregistrement de données 16A de la FIG. 2). Comme décrit ci-dessus, la réécriture 32 peut utiliser une transaction de base de données à la pointe de l’art. En supposant qu’aucune des données actualisées au cours de la première session n’a été chargée à partir de la base de données 10 par toute autre session auparavant et n’a pas déjà été réécrite avant l’heure du chargement 22, la validation de la réécriture sera réussie et tous les enregistrements de données actualisés de la première session sont réécrits dans la base de données 10 d’une manière cohérente. La première session est ensuite terminée (activité 34).
[0046] A un moment ultérieur, après que les données actualisées de la première session ont été réécrites dans la base de données 10 par l’activité 32, l’actualisation de données de la deuxième session est complétée et une tentative est faite pour réécrire les données actualisées de la deuxième session dans la base de données 10. Dans le scénario hypothétique de la FIG. 4, au moins un enregistrement de données qui a été mis à jour et réécrit dans la base de données 10 par la première session est également mis à jour au cours de la deuxième session. Dans ce cas, la réécriture n’est pas réussie dès le début, mais une résolution de cohérence de réécriture 36 est utilisée. Ainsi que décrit cidessus, la résolution de cohérence de réécriture 36 peut inclure le déni d’une tentative de réécriture pour recharger les données modifiées de la base de données 10 à la deuxième session et pour répéter les actualisations des données rechargées. Dans un autre exemple, un mécanisme de fusion est utilisé pour assurer la cohérence des données dans la base de données 10 en incorporant les mises à jour effectuées au cours de la deuxième session dans les versions des données actuellement stockées dans la base de données 10. D’une façon ou d’une autre, après que la résolution de cohérence de réécriture 36 a été achevée avec succès, la deuxième session prend fin (activité 38).
[0047] La FIG. 5 est une représentation sous forme de diagramme des composants internes d’une machine informatique 100 représentant p. ex. un quelconque des serveurs 12A et 12B. La machine informatique 100 inclut un ensemble d’instructions pour amener la machine informatique 100 à mettre en œuvre l’une quelconque des méthodologies décrites dans les présentes lorsqu’elles sont exécutées par la machine in formatique 100. La machine informatique 100 inclut au moins un processeur 101, une mémoire principale 106 et un dispositif d’interface de réseau 103 qui communiquent les uns avec les autres via un bus 104. En option, la machine informatique 100 peut par ailleurs inclure une mémoire statique 105 et une unité de lecteur de disque. Un écran vidéo, un dispositif de saisie alphanumérique et un dispositif de contrôle de pointeur peuvent être fournis comme exemples d’interface d’utilisateur 102. Le dispositif d’interface de réseau 103 connecte la machine informatique 100 aux autres composants du système de bases de données tels que la base de données 10 et par ailleurs le système informatique 14.
[0048] La mémoire 106 de la machine informatique 100 peut inclure une zone de mémoire 107 stockant les données récupérées (telles que les enregistrements de données 16A, 16B et 16G de la FIG. 2). Dans une autre zone 108 de la mémoire 106, des données de gestion de sessions, telles que les IDs de session et les données d’état de session définissant les sessions actuellement actives avec le système informatique 14, peuvent être stockées. Dans une autre zone 109 de la mémoire 106, les processus logiciels mettant en œuvre la fonctionnalité active du moment, telle que l’interaction avec la base de données 10 (chargement et réécriture), ainsi que l’actualisation de données et les commandes de traitement au cours des sessions actuellement actives, peuvent être stockées. La mémoire 106 dans les présents modes de réalisation peut être composée de composants matériels et logiciels qui stockent les enregistrements de données. Il peut y avoir des antémémoires basées sur le matériel telles que des antémémoires de CPU, des antémémoires de GPU, des processeurs de signaux numériques et des tampons de translation par consultation latérale tels que des antémémoires de pages, des antémémoires de Web (des antémémoires HTTP, etc.
[0049] La machine informatique hébergeant la base de données 10 ainsi que le système informatique 14 peut être implémentée par une machine informatique similaire 100 telle que celle qui est montrée dans la FIG. 5.
Claims (1)
-
Revendications [Revendication 1] Un procédé pour actualiser de multiples enregistrements de données dans un système de bases de données comprenant au moins une base de données et un premier serveur, le procédé comprenant : la création d’une première session dans le premier serveur ; le chargement, au cours de la première session, de multiples enregistrements de données stockés par la base de données dans une mémoire du premier serveur ; l’actualisation d’au moins un premier et un deuxième des multiples enregistrements de données au cours de la première session dans la mémoire du premier serveur ; l’enclenchement d’un mécanisme de transaction de base de données pour les multiples enregistrements de données après l’actualisation desdits au moins un premier et un deuxième enregistrements pour écrire les enregistrements de données actualisés dans la base de données afin d’assurer soit que tous les enregistrements de bases de données actualisés soient validés, ou aucun d’entre eux, dans lequel le mécanisme de transaction de base de données inclut un verrouillage des premier et deuxième enregistrements de données stockés dans la base de données ; la fermeture de la première session dans le premier serveur après la validation des enregistrements de base de données actualisés. [Revendication 2] Le procédé selon la revendication 1, dans lequel le chargement et l’actualisation de multiples enregistrements de données sont effectués sans établir le verrouillage de multiples enregistrements de données dans la base de données. [Revendication 3] Le procédé selon la revendication 1 ou la revendication 2, dans lequel l’actualisation d’au moins les premier et deuxième enregistrements de données comprend par ailleurs : la définition d’au moins un des multiples enregistrements de données comme enregistrement de données actif, la mise en œuvre de l’actualisation des enregistrements de données définis comme enregistrements de données actifs. [Revendication 4] Le procédé selon l’une quelconque des revendications 1 à 3, dans lequel l’actualisation d’au moins les premier et deuxième enregistrements de données comprend par ailleurs : l’envoi d’une requête à une autre base de donnée. [Revendication 5] Le procédé selon l’une quelconque des revendications 1 à 4, comprenant par ailleurs : la création, dans la première session, d’un nouvel enregistrement de données dans lequel le nouvel enregistrement de données est validé avec les multiples enregistrements de données. [Revendication 6] Le procédé selon la revendication 5, dans lequel la création du nouvel enregistrement de données comprend la fusion du premier enregistrement de données et du deuxième enregistrement de données. [Revendication 7] Le procédé selon l’une quelconque des revendications précédentes, comprenant par ailleurs : au cours d’une deuxième session sur le premier serveur ou sur le deuxième serveur fonctionnant parallèlement avec la première session, le chargement d’au moins le premier enregistrement de données stocké par la base de données dans la mémoire du premier serveur ou dans la mémoire du deuxième serveur, l’actualisation d’au moins le premier enregistrement de données dans la mémoire du premier ou du deuxième serveur au cours de la deuxième session alors que le premier enregistrement de données est également actualisé au cours de la première session, après la réécriture du premier enregistrement de données actualisé dans la base de données de la première session, en réponse à une tentative de validation pour réécrire le premier enregistrement de données actualisé au cours de la deuxième session dans la base de données, l’utilisation d’un mécanisme de résolution de cohérence de la réécriture pendant le mécanisme de transaction. [Revendication 8] Le procédé selon la revendication 7, dans lequel le mécanisme de résolution de cohérence de la réécriture est un mécanisme de déni de tentative de validation pour réécrire le premier enregistrement de données actualisé au cours de la deuxième session dans la base de données, de rechargement du premier enregistrement de données à partir de la base de données et de continuation de la deuxième session, et de fusion du premier enregistrement de données actualisé, mis à jour au cours de la deuxième session, avec le premier enregistrement de données réécrit dans la base de données à partir de la deuxième session. [Revendication 9] Un serveur, le serveur étant configuré pour : créer une première session dans le serveur ; charger, à l’intérieur de la première session, de multiples enregistrements de données stockés par la base de données dans une mémoire du serveur ; actualiser au moins un premier et un deuxième des multiples enregistrements de données au cours de la première session dans la mémoire du premier serveur ;enclencher un mécanisme de transaction de base de données pour les multiples enregistrements de données après avoir actualisé lesdits au moins premier et deuxième enregistrements de données pour écrire les enregistrements de données actualisés dans la base de données assurant ainsi que tous les enregistrements de base de données soient validés, ou aucun d’entre eux, dans lequel le mécanisme de transaction de base de données inclut un verrouillage des premier et deuxième enregistrements de données stockés dans la base de données ;fermer la première session dans le serveur après la validation des enregistrements de base de données actualisés.[Revendication 10] Un programme d’ordinateur comprenant des instructions de code de programme pour exécuter le procédé selon les revendications 1 à 8 lorsque ledit programme est exécuté sur un ordinateur.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1873627A FR3090929B1 (fr) | 2018-12-20 | 2018-12-20 | Actualisation de multiples enregistrements de données |
EP19821137.7A EP3899750A1 (fr) | 2018-12-20 | 2019-12-19 | Mise à jour de multiples enregistrements de données dans une base de données |
US17/311,888 US11803533B2 (en) | 2018-12-20 | 2019-12-19 | Updating multiple data records in a database |
CN201980084140.2A CN113243011A (zh) | 2018-12-20 | 2019-12-19 | 更新数据库中的多条数据记录 |
PCT/EP2019/086422 WO2020127806A1 (fr) | 2018-12-20 | 2019-12-19 | Mise à jour de multiples enregistrements de données dans une base de données |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1873627A FR3090929B1 (fr) | 2018-12-20 | 2018-12-20 | Actualisation de multiples enregistrements de données |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3090929A1 true FR3090929A1 (fr) | 2020-06-26 |
FR3090929B1 FR3090929B1 (fr) | 2021-07-02 |
Family
ID=67660152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1873627A Active FR3090929B1 (fr) | 2018-12-20 | 2018-12-20 | Actualisation de multiples enregistrements de données |
Country Status (5)
Country | Link |
---|---|
US (1) | US11803533B2 (fr) |
EP (1) | EP3899750A1 (fr) |
CN (1) | CN113243011A (fr) |
FR (1) | FR3090929B1 (fr) |
WO (1) | WO2020127806A1 (fr) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905614B (zh) * | 2021-02-19 | 2024-04-12 | 中国邮政储蓄银行股份有限公司 | 数据更新方法及装置、电子设备、计算机可读存储介质 |
US11841847B2 (en) * | 2021-06-07 | 2023-12-12 | Salesforce, Inc. | Declarative transaction control |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754657B2 (en) * | 2001-08-24 | 2004-06-22 | Microsoft Corporation | Time stamping of database records |
US7100076B2 (en) * | 2003-05-09 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Minimum latency reinstatement of database transaction locks |
US7933881B2 (en) * | 2006-03-17 | 2011-04-26 | Microsoft Corporation | Concurrency control within an enterprise resource planning system |
JP5203733B2 (ja) * | 2008-02-01 | 2013-06-05 | 株式会社東芝 | コーディネータサーバ、データ割当方法及びプログラム |
CN103136308A (zh) * | 2011-11-23 | 2013-06-05 | 英业达股份有限公司 | 应用系统数据库更新的方法和系统 |
GB2510426A (en) * | 2013-02-05 | 2014-08-06 | Ibm | Workload balancing in a distributed database |
JP6477169B2 (ja) * | 2015-03-31 | 2019-03-06 | 富士通株式会社 | データベースの処理制御方法、処理制御プロラム及びデータベースサーバ |
US9892160B2 (en) * | 2015-04-07 | 2018-02-13 | International Business Machines Corporation | Database statistics based on transaction state |
JP2018085042A (ja) * | 2016-11-25 | 2018-05-31 | 富士通株式会社 | データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム |
-
2018
- 2018-12-20 FR FR1873627A patent/FR3090929B1/fr active Active
-
2019
- 2019-12-19 US US17/311,888 patent/US11803533B2/en active Active
- 2019-12-19 WO PCT/EP2019/086422 patent/WO2020127806A1/fr unknown
- 2019-12-19 CN CN201980084140.2A patent/CN113243011A/zh active Pending
- 2019-12-19 EP EP19821137.7A patent/EP3899750A1/fr active Pending
Non-Patent Citations (4)
Title |
---|
"Database systems : the complete book", 1 January 2002, PEARSON EDUCATION INTERNATIONAL, Upper Saddle River, NJ [u.a.], ISBN: 978-0-13-098043-4, article HECTOR GARCIA-MOLINA ET AL: "Chapter 1 - The Worlds of Database Systems", pages: 1 - 21, XP055114118 * |
ANONYMOUS: "Transaction Isolation Levels - SQL Server | Microsoft Docs", 19 January 2017 (2017-01-19), pages 1 - 3, XP055630546, Retrieved from the Internet <URL:https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/transaction-isolation-levels?view=sql-server-2017> [retrieved on 20191009] * |
ELMASRI R ET AL: "Fundamentals of Database Systems - VALIDATION (OPTIMISTIC) CONCURRENCY CONTROL TECHNIQUES, RECOVERY CONCEPTS, CHECKPOINTS IN THE SYSTEM LOG AND FUZZY CHECKPOINTING", FUNDAMENTALS OF DATABASE SYSTEMS, ELMASRI R., NAVATHE S. B, BOSTON, MASS. [U.A.] : PEARSON, ADDISON-WESLEY, 1 January 2004 (2004-01-01), pages 551 - 635, XP002526530, ISBN: 978-0-321-20448-6 * |
JIANDONG HUANG ET AL: "Experimental Evaluation of Real-Time Optimistic Concurrency Control Schemes*", 17TH INTERNATIONAL CONFERENCE ON VERY LARGE DATA BASES, SEPTEMBER 3-6, 1991, BARCELONA, CATALONIA, SPAIN, 6 September 1991 (1991-09-06), pages 35 - 46, XP055630004, Retrieved from the Internet <URL:http://www.vldb.org/conf/1991/P035.PDF> [retrieved on 20191008] * |
Also Published As
Publication number | Publication date |
---|---|
EP3899750A1 (fr) | 2021-10-27 |
US11803533B2 (en) | 2023-10-31 |
WO2020127806A1 (fr) | 2020-06-25 |
CN113243011A (zh) | 2021-08-10 |
US20220027336A1 (en) | 2022-01-27 |
FR3090929B1 (fr) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10250694B2 (en) | Maintaining distributed state among stateless service clients | |
JP6033830B2 (ja) | 高可用性データを提供するためのシステム及び方法 | |
US6393434B1 (en) | Method and system for synchronizing data using fine-grained synchronization plans | |
US8782604B2 (en) | Sandbox support for metadata in running applications | |
US8060864B1 (en) | System and method for live software object interaction | |
US7640249B2 (en) | System and method for transactional session management | |
US8112394B2 (en) | Long-lived data transactions | |
US20070239725A1 (en) | Active cache offline access and management of project files | |
US20150019495A1 (en) | Customizable storage system for virtual databases | |
JP7389793B2 (ja) | 分散型異種ストレージシステムにおけるデータ一貫性のリアルタイムチェックのための方法、デバイス、およびシステム | |
EP0804771A1 (fr) | Interface administrateur pour base de donnees dans un environnement informatique distribue | |
FR2756070A1 (fr) | Systeme de gestion et de traitement de transactions distribuees d'objets et procede mis en oeuvre par ledit systeme | |
US20200310860A1 (en) | Quality Assurance For A Context Driven Hybrid Transaction Processing System | |
US20210141698A1 (en) | Methods and systems relating to network based storage retention | |
FR3090929A1 (fr) | Actualisation de multiples enregistrements de données | |
US20090006619A1 (en) | Directory Snapshot Browser | |
US11080298B2 (en) | Data replication in a database environment | |
US11416382B2 (en) | Change list-based snapshots of applications for development and testing | |
US20200364241A1 (en) | Method for data synchronization between a source database system and target database system | |
US20140365877A1 (en) | File History Tagging | |
EP1537497A2 (fr) | Procede d'organisation d'une base de donnees numeriques sous une forme tracable | |
US20030225856A1 (en) | Automated methods and systems for changing a clinical study in progress | |
US11354357B2 (en) | Database mass entry insertion | |
US10635641B1 (en) | System and method to provide document management on a public document system | |
US11379351B2 (en) | Change list-based snapshots of applications for testing and development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20200626 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |