Accueil > Forum > > > > Exercice temps réel
Exercice temps réel
mardi 8 décembre 2009 à 20:12:40 |
Exercice temps réel

cogno
|
Bonjour la famille,
j'ai un petit exercice simple d'énoncé a vous soumettre, je n'ai pas trouvé de solution. Il s'agit d'un exercice temps réel.
Prenons un serveur(dans le sens général) qui reçoit en entrée 2000 messages par seconde. Le serveur les traites dans l'ordre d'arrivée,en gardant l'ordonnencement, puis les renvoie en temps réel.
Chaque message reçu par le serveur est traité de la manière suivante:
-> tout les messages entrants demandent un accès en lecture à une base de données (qu'n appellera BD)
-> 20 messages entrants par seconde(parmis les 2000) demandent en plus un acces en écriture à la BD
La BD possède les caractéristiques suivantes:
-> un maximum de 80 acces (écriture et/ou lecture) par seconde max
-> elle a une taille de 500M
La question est: comment faire pour garder le temps réel?
(à mon avis c'est une question de multi thread)
Merci pour votre aide la famille
|
|
mercredi 9 décembre 2009 à 01:10:01 |
Re : Exercice temps réel

CptPingu
|
Réponse acceptée !
Ce n'est pas la solution, mais une idée comme ça.
Le problème que tu as c'est que tu ne peux faire que 80 accès pour 2000 messages entrant.
C'est donc impossible en l'état.
L'astuce consiste à dupliquer les BD, sur différentes machines si possible, et de répartir la charge à l'aide loadbalancer (répartisseur de charge).
Une fois la charge répartit, si tu as suffisamment de BD, c'est bon !
Petit problème qui complique tout: les accès en écriture. Si tu n'écris pas dans toutes les bases au même moment, c'est foutu !
Mais si tu écris dans toutes les bases, c'est foutu aussi puisque tu bloques tout.
L'astuce consiste à prendre une BD supplémentaire et à faire tourner régulièrement un processus de réplication. Si tu n'écris que dans une seule BD, il suffit alors d'utiliser la BD supplémentaire pour instaurer un cycle de roulement pour la réplication. Tu recopies une BD, la BD qui est recopiée étant gelée, il est nécessaire d'avoir une base de plus que prévu pour ne pas engendrer de perte de performance.
Si tu synchronise bien tout ceci, alors tu peux conserver ton temps réel.
Quelques petits défaut, tout de même:
- Prends beaucoup de place (nb de BD (au moins 25) * 500Mo)
- Peut coûter cher si on veut faire les choses biens et acheter suffisamment de machine.
- Les données se synchronise par cycle, et donc il peut y avoir des différences de résultats temporaire entre les BD. Ce qui peut très bien être inacceptable, tout dépend du contexte.
- Il faut correctement synchroniser tout ceci, ce qui est une vraie plaie à créer et à maintenir.
|
|
mercredi 9 décembre 2009 à 16:25:14 |
Re : Exercice temps réel

cogno
|
Réponse acceptée !
Merci Pingu,
je n'étais pas allé si loin avec le gars qui m'a posé le problème.
Cependant il m'a dit que ca pouvait se faire en gardant cette BD uniquement (j'ai donc compris sans la dupliquer) est ce possible?
|
|
mercredi 9 décembre 2009 à 16:29:03 |
Re : Exercice temps réel

CptPingu
|
Réponse acceptée !
Ben, en faisant une file d'attente, ouais, mais ce n'est plus du temps réel, il y aura un temps de latence de plus en plus grand au fur et à mesure que la liste grandit.
Si tu reçoit 2000 accès et que la base ne peut en gérer que 80, je suis désolé, mais ce n'est pas possible, ou encore une fois, je serais très intéressé par une solution à ce problème !
|
|
mercredi 9 décembre 2009 à 16:40:38 |
Re : Exercice temps réel

cogno
|
Réponse acceptée !
Moi aussi j'ai proposé d'empiler les messages d'entrée et bien, plus de temps réel.
Comme la question avant l'exercice etait en gros: "connaissez vous le multi tache?"
A mon avis il faut partir la dessus. DOnc cest ce que j'ai dit tout de suite "a ca cest du multi tache" mdr
Mais sans toucher a la BD ca me paraissait impossible, donc j'ai clairement posé la question, il m'a dit que oui cest possible tel quel...
Petit indice il m'a dit : "si vous aviez trouvé comment faire, je vous aurais demandé que se passe-t-il quand on augmente le nombre de message entrant."
Sous entendu je pense: il y a une solution pour cette exercice, mais avec ces valeurs la précisément. Au dela la solution montre ses limites...
|
|
mercredi 9 décembre 2009 à 17:11:57 |
Re : Exercice temps réel

juju12
|
Réponse acceptée !
Sûrement une c?????ie, mais...
Ne peux-tu pas récupérer des infos pour plusieurs messages en même temps?
Par exemple, plusieurs messages demandant accès aux mêmes données, ou à des données similaires que tu pourrais récupérer d'un coup...
Cela nécessiterait un tri des messages entrant suivant certains critères, selon ce qu'il y a dans ta BD.
|
|
mercredi 9 décembre 2009 à 17:24:55 |
Re : Exercice temps réel

cogno
|
je ne sais pas peut etre faut il trier els messages,
en tout cas il faut garder l'ordre des messages et le temps réel.
Sinon pour info, cest pas un bout de code que le mec attendait, cest plus un algorithme ou une methode de faire...
|
|
Cette discussion est classée dans : serveur, temps, messages, réel, exercice
Répondre à ce message
Sujets en rapport avec ce message
LiNuX - Langage C - Appli Multiclient / Serveur [ par azurone ]
Bonjour, Il a déja été fait pour un tp une application sous Win client/serveur, où les caractères envoyés par le client s'inscrive sur le serveur en t
interrompre un programme de calcul en temps réel [ par koaber ]
Bonjour, je souhaiterais utiliser une fonction qui interrompt le progamme en cours et renvoie au menu principal si on appuie sur 'm' (comme menu) ; c'
Client/Serveur en C++ [ par nephilik ]
Hello !Je souhaite développer sur une même machine deux terminaux communiquant, en même temps en mode client/serveur...Le problème est que, avec des s
prob socket [ par flatou ]
salutj'ai créé une appli serveur, banale : un client se connecte, il envoi un message et le serveur affiche le message.j'ai utilisé cela pour la recep
Client - serveur C++ avec thread [ par nono_in_maribor ]
Bonjour!!Voila, je previens tout de suite je ne suis pas un pro du c++. Mon probleme est le suivant : j'ai fait un client-serveur en c++ (sous devc++)
affichage temps réel [ par coyotte63 ]
Bonjour, Je réalise actuellement un projet qui consiste à afficher la valeur des angles dans des résolveurs en temps réel. Pour ça je passe par un sys
Calcul du point GPS a partir de l'acquisition en temps réel des trames d'un recepteur [ par berenger_R ]
Bonjour, Je doit réaliser un programme orientée objet en C++ sous linux qui réalise le calcul du point GPS à partir de l'acquisition en temps réel
Amplification et filtrage Audio en temps réel [ par pdc_666 ]
Bonjour à tous, voilà j'aimerai pouvoir amplifié (et éventuellement filtré le bruit) d'un signal audio provenant d'un eligne téléphoniue. Mon principa
Creation d'un jeu de strategie temps reel via le web [ par Thirael ]
Bonjour tout le monde !!! Je souhaiterais creer un jeu de gestion genre oGame. Vous allez me dire encore un autre ... et ben oui !!! lol. J epense qu
Synthèse audio en temps réel [ par louba ]
Bonjour à tous,Je cherche à faire de la synthèse audio en temps réel, c'est à dire que je voudrais générer un son qui changerait avec le mouvement de
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|