FR3090929A1 - Actualisation de multiples enregistrements de données - Google Patents

Actualisation de multiples enregistrements de données Download PDF

Info

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
Application number
FR1873627A
Other languages
English (en)
Other versions
FR3090929B1 (fr
Inventor
Tony BISEGNA
Laurent AZEMARD
M’hammed LAHIA
Minh Dung DANG
Xavier BOURGOUIN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Priority to FR1873627A priority Critical patent/FR3090929B1/fr
Priority to EP19821137.7A priority patent/EP3899750A1/fr
Priority to US17/311,888 priority patent/US11803533B2/en
Priority to CN201980084140.2A priority patent/CN113243011A/zh
Priority to PCT/EP2019/086422 priority patent/WO2020127806A1/fr
Publication of FR3090929A1 publication Critical patent/FR3090929A1/fr
Application granted granted Critical
Publication of FR3090929B1 publication Critical patent/FR3090929B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates 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)

  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.
FR1873627A 2018-12-20 2018-12-20 Actualisation de multiples enregistrements de données Active FR3090929B1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
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&#39;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&#39;organisation d&#39;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