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

Bibliothèques et frameworks PHP Discussion :

Sémaphores sous Linux et Windows


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut Sémaphores sous Linux et Windows
    Salut à tous !
    Après des recherches infructueuses je me permet de poster mon problème sur ce forum.

    Pour le contexte :
    Je développe actuellement un système de statistiques. Ces dernières qui dépandent d'un enregistrement d'une table de la base de données :
    Grossiérement j'ai une table statistique dont la primary key est une clé étrangère d'une autre table.

    J'ai besoin de faire un semaphore au moment de la mise à jour des statistiques de la table de statistiques, mais je ne veux pas bloquer les mise à jour de toute la table, seulement de la ligne.

    Je sais que la plupart de SGBD permettent le verrou de la ligne lors de la modification, mais mon problème est que ces fonctions statistiques viennes s'intégrer dans un projet dans lequel j'utilise un mapping dynamique de la base de donnée avec abstraction de celle-ci et aussi des données quelle comporte, donc pas question de tapper du SQL. Je passe donc par mes méthodes qui repose sur de l'Active Record et du CRUD, mais en version dynamique. D'où le besoin de faire du sémaphore pour verouiller mes mises à jour.

    J'avais trouvé les fonctions de sémaphore de System V qui permettaient de verouiller des portions de code avec une clé, clé que je génère à partir de la primary key, ce qui me permettait de verouiller seulement les mises à jour de l'enregistrement que je modifie et de ne pas verouiller les mises à jour d'autres enregistrements. Le hic est que, comme le précise la doc, malgré qu'elle soit en standard dans php, cette extension n'est pas disponible sur les plates-formes Windows.

    Le serveur de déploiement de mon projet est un serveur unix, mais mon serveur de développement est sous windows pour des raisons pratiques, je cherche donc une alternative a ce systeme de sémaphore (ou même une astuce pour faire tourner ça sous windows), qui fonctionne aussi bien sous windows que sous unix, qui me permette de verouiller une portion de code en fonction d'une clé (généré à partir de la primary key par exemple) afin de ne pas bloquer les mises à jour d'autres enregistrements de la même table, et si possible dont l'instalation (si il y a besoin) ne soit pas trop complexe et pas trop contraignantes (par rapport au serveurs de déploiement sur lequel je ne pourrais pas faire forcément ce que je voudrais).

    Pour info le projet est en PHP5 !

    Merci d'avance pour toutes les pistes que vous pourriez me donner !

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2007
    Messages : 89
    Par défaut
    Bonjour, tu peux utiliser des fichiers temporaires. Tu le crée avec comme nom l'id de ta clée pour verrouiller ta ligne. Pour tester tu vérifie si le fichier existe. Une fois finit tu le supprime. Par contre niveau performance, j'espère que tu ne dois pas vérouiller 3000 lignes/secondes

    Autrement tu passes par une table spéciale pour insérer les clées des lignes vérouillées. Mais il faut que tu ais un accès direct à la table.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut
    C'est en effet une piste intéréssante à creuser, peut-être mettre au point mon propre système de semaphores, mais c'est clair que niveau performance c'est pas super.
    Merci de la réponse et de la piste que tu m'a donné en tout cas
    Je viendrais compléter le topic dés que j'aurais mis au point quelque chose dans ce sens, histoire d'en faire profiter la communauté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Free Pascal] GLScene : est-ce possible (sous Linux ET Windows) ?
    Par I_am_root dans le forum Free Pascal
    Réponses: 3
    Dernier message: 10/12/2007, 14h33
  2. Création d'installeur sous Linux et Windows
    Par knarf87 dans le forum Linux
    Réponses: 3
    Dernier message: 09/05/2007, 11h05
  3. Serveur mysql sous linux ou Windows?
    Par gnaoui_9999 dans le forum Installation
    Réponses: 5
    Dernier message: 11/10/2006, 13h28
  4. Ethernet sous Linux et Windows
    Par Invité4 dans le forum Réseau
    Réponses: 9
    Dernier message: 17/04/2005, 11h19
  5. Etat de la pile sous Linux et Windows
    Par Bibouda dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 16/02/2003, 01h28

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