IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Mise en cache de données et autres problèmes ...


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut Mise en cache de données et autres problèmes ...
    Salut,

    Me revoilà avec la suite de ma problématique.

    Désormais, j'ai un service et une appli desktop qui fonctionnent de concert selon ce principe :

    1) le service crée un fichier mappé 'hébergeant' une structure de données et crée un événement. à chaque fois qu'il écrit dans le fichier mappé, il déclenche l'événement.

    2) d'un autre coté, mon appli desktop ouvre le même fichier mappé et surveille en permanence à l'aide d'un thread la détection de l'événement. dès que ce dernier est détecté, l'appli lit les données du fichier mappé partagé et les traite.

    j'ai deux problèmes :

    1) le fonctionnement du service est basé sur un ou plusieurs threads qui provoquent l'écriture dans la zone mémoire du fichier mappé. il est donc théoriquement possible que deux threads accèdent à cette zone mémoire en même temps pour y écrire leurs données -> je risque donc de perdre des données.

    dans ce cas, quelle solution s'offre a moi pour pallier à ce problème ?

    2) de temps en temps, le service doit certainement écraser les données du fichier mappé avant même que l'appli desktop n'ait le temps de les traiter -> la encore, je risque de perdre des données.

    sachant que le service traite de son coté des données en temps réel et que sa capacité à les traiter rapidement est obligatoire, cela m'empêche donc de le mettre en pause même si l'appli n'a pas traité lesdites données.

    dans ce cas, comment mettre en place coté appli desktop un système de cache. quelle piste serait la plus appropriée d'après vous pour faire cela ?


    merci d'avance aux courageux qui auront lu mon message en entier et encore plus merci à ceux qui pourront m'apporter un peu d'aide.
    _____
    __
    _

    Engi

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut
    Pour ta première question l'accès à à mémoire partagée entre ton service peut-être protégée en accès pour interdire la concurrence par différents objets de synchronisation assurant que pas plus d'un seul Thred n'a un accès simultané à ta mémoire
    Possibilités avec des sections critiques, sémaphores , la VCL offre également des objets permettant ce genre de protection

    Pour la question 2 rien n'interdit le stockage du contenu de la mémoire partagée dans une autre zone mémoire dans ton process desktop ( buffer, filemapping, conteneur STL,...) le choix dépendant de la vitesse d'exécution souhaitée , et le traitement avec un autre Thread , le tout synchronisé par un objet de synchronisation

    On peut également imaginer du côté du service la même méthodologie
    À savoir traitement de l'information, dans un Thread, copie de l'information dans la mémoire partagée et notification à l'application dans un Thread sépare appeler un Thread de communication

    Il me semble que des composants de la STL serait idéal pour ce genre de traitement


    Cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut
    Merci pour ces pistes.
    Je vais rechercher dans ce sens.
    _____
    __
    _

    Engi

Discussions similaires

  1. [Joomla!] Problème de mise en cache des données
    Par freud dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 05/11/2011, 10h25
  2. Réponses: 0
    Dernier message: 11/04/2011, 15h32
  3. Scope Application et mise en cache de données
    Par Huojid dans le forum JSF
    Réponses: 7
    Dernier message: 22/07/2009, 18h01
  4. Mise en cache de données
    Par moumoune65 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/10/2007, 00h13
  5. Création d'un cache, mise en cache de donnée indexé
    Par *alexandre* dans le forum Persistance des données
    Réponses: 6
    Dernier message: 19/05/2007, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo