Choses à synchroniser plusieurs versions de BAS

Ceux d'entre nous qui sont engagés dans la programmation, en particulier ceux impliqués dans BAS), rencontrera certainement un tel problème de nous nous gratter la tête : lorsque mon programme de simulation doit prendre en charge plusieurs versions BAS, comment pouvons-nous le gérer pour être obéissant? Devrions-nous simplement les fourrer tous ensemble ou les séparer? Si vous le faites séparément, y a-t-il un moyen plus intelligent de rendre les données moins désordonnées?

Parlons d'abord du concept de base de ce BAS ! Il s'agit d'un algorithme d'évitement de blocage spécialement utilisé pour simuler les systèmes d'attribution des fonds bancaires. Par exemple, lorsque vous concevez un outil de contrôle des risques bancaire, vous devez utiliser différentes versions d'algorithmes BAS pour tester et optimiser … il y a en fait de nombreux problèmes avec cette version, tels que la lutte contre les données, les conflits de fichiers de configuration et les erreurs de chargement désordonnées pendant l'exécution.

Si vous prévoyez de faire ce travail, vous devez prêter attention aux points suivants , sinon vous vous sentirez comme si vous réparez un jouet LEGO qui a été soufflé par une bombe:

1. Mécanisme d'isolement et de crochet de version : vous devez vous assurer que les dépendances et les entrées et les sorties de différentes versions fonctionnent complètement indépendamment, et que les versions BAS appelées à chaque fois ne se affectent pas mutuellement. Comme ou Les méthodes de chargement hiérarchiques peuvent vous aider à diviser les données et la configuration de manière ordonnée.

2. Transformation globale du pool de cache : différentes versions de BAS nécessitent une synchronisation des pools de ressources bancaires. Vous pouvez configurer un pool de cache pour traiter les données partagées de manière centralisée et forcer les contextes de commutation lorsque vous appelez différentes versions. Pour le dire franchement, vous ne pouvez pas laisser le code de V1 entretonner avec les données de V2.

3. Mode plug-in ou adaptation d'interface : vous pouvez créer une bibliothèque dynamique (.dll ou .so) pour chaque version, et ouvrir uniquement la même interface d'appel au monde extérieur. Peu importe que vous souhaitiez utiliser les versions N BAS, vous n'allez que dans une entrée unifiée et ne laissez pas la gestion des versions.

Soit dit en passant, le problème de données ne devrait pas être trop rude! BAS nécessite généralement trois types d'entrée de données (montant total des ressources, exigences des applications de processus et statut alloué). Si ces formats de données continuent de changer chaque fois que vous mettez à niveau … alors vous devez écrire deux ensembles d'analyse des entrées. Il est préférable de faire des données en un "format intermédiaire" commun à l'avance – tel que JSON ou – puis laisser Multi-Version BAS ne s'appuie que sur une source de données unifiée, plutôt que de modifier l'interface dans les deux sens.

—— les suivants sont des réponses rapides à plusieurs questions courantes –

Q1: Et si la version de l'algorithme BAS est énorme et même les règles d'entrée sont différentes?

R: Dans ce cas, vous devez écrire séparément une "couche d'adaptation" et encapsuler leurs différences. Par exemple, V1 nécessite une liste de processus et V2 nécessite une matrice. Il est compatible avec deux méthodes d'entrée dans le format intermédiaire, mais il est préférable de maintenir la sortie externe cohérente.

Q2: Si vous souhaitez tester les performances de plusieurs versions BAS en même temps, le système se bloquera-t-il?

R: Il ne se bloquera pas … mais vous devez vous assurer que l'environnement de course a suffisamment de ressources (principalement CPU et mémoire), puis configurer une planification de file d'attente, et n'exécutez pas plus d'une douzaine de versions en même temps. Si vous l'utilisez, un outil comme .Pool sera un bon choix.

Personnellement, je pense qu'il est en fait assez artistique de faire beaucoup de versions de la direction de BAS , tout comme ranger une garde-robe. Il est à la fois facile de vous assurer de ne pas mélanger les chaussettes et de leur demander d'être récupérée. Vous devez trouver un équilibre entre le couplage lâche et la réutilisation élevée, sinon il sera inutile, peu importe la quantité de code écrite!

Posted in

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *