Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/07/2011, 10h35   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 7
Points : 0
Points : 0
Par défaut Zend Cache et masse importante de données

Bonjour,

Je suis en train de développer un outil pour Airbus qui teste la mixabilité des systèmes entre eux. En gros, pour chaque système, j'ai un fichier qui répertorie tous les signaux en entrée et sortie. Ces fichiers sont au format CSV.

Je bosse sur un ordi tout pourri (proc < 1GHz, 960Mo de RAM, DD 60Go) avec mon petit serveur apache. Important de préciser ça car l'appli devra être capable de tourner sur une charrette de ce genre.

Quel est mon problème ? En gros, on me passe des conf de taille variable. Je n'ai pas de problèmes pour les petites conf, c'est très rapide. Mais, parfois, il faudra faire tourner des conf avion entières où j'aurai 200 systèmes et plus d'un million de signaux échangés.

Ce que je faisais avant : je stockais tout dans mes petits tableaux PHP classiques et après j'analysais tous les input. OK pour une conf légère. Mais pour certains systèmes, pour une section, je peux me retrouver avec plus de 80Mo de texte CSV et là, rien ne va plus.

Je me suis dit, on va mettre ça en cache avec Zend_Cache. Je teste avec le backend File. Le truc est que ça me créé deux fichiers par signal donc je peux avoir 2 millions de fichiers créés au final. Et surtout, étant données que certaines sections sont trop grosses, je peux pas balancer tout le contenu de la section, je suis obligé de cacher ligne par ligne. J'ai essayé avec le backend SQLite mais là aussi, je suis obligé d'ajouter signal par signal, ce qui prend un temps monstre, encore plus important qu'avec le backend File.

Au final, je suis face à une impasse. Les petites conf tournent très bien et dans un temps record comparé aux anciens outils mais pour les grosses conf, rien ne va plus.

Je pourrais peut être coupler une mise en RAM à une écriture fichier. Si quelqu'un a une solution honnête, je suis tout ouïe.

Bien cordialement,

Louis
louis.hache est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 20h07   #2
Membre confirmé
 
Avatar de Nighty
 
Homme Lucas CORBEAUX
Chef de projet MOE
Inscription : février 2003
Messages : 158
Détails du profil
Informations personnelles :
Nom : Homme Lucas CORBEAUX
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet MOE

Informations forums :
Inscription : février 2003
Messages : 158
Points : 291
Points : 291
Bonjour,

Je ne suis pas sûr de bien saisir tous les tenants et aboutissants du problème à la seule lecture de la demande, aussi je peux répondre tout à fait à côté, mais tu peux jeter un oeil aux backends disponibles pour Zend_Cache ici :

http://framework.zend.com/manual/en/....backends.html

Utiliser un cache rapide (Apc, Memcached), ou même TwoLevels pour pouvoir jouer selon le besoin entre rapidité d'accès ou volume à mettre en cache, pourrait aider.

Je te renvoie aussi sur l'option "automatic_serialization" du frontend : http://framework.zend.com/manual/en/...frontends.html

En la positionnant à true, tu peux mettre en cache des structures complexes qui permettront de réduire le nombre de fichiers de cache.

En espérant que ça aide un peu.
Nighty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 09h58   #3
Invité de passage
 
Inscription : juillet 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 7
Points : 0
Points : 0
C'est bon, j'ai fini par trouver un moyen assez potable.

En gros, je teste la taille des fichiers qu'on me passe. Si elle dépasse pas une certaine limite, je mets tout en APC, sinon je mets la plus grosse section en File et les 4 autres mineures en APC.
louis.hache est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 12h31   #4
Membre éclairé
 
Homme Yann
Développeur Web
Inscription : avril 2005
Messages : 280
Détails du profil
Informations personnelles :
Nom : Homme Yann
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 280
Points : 366
Points : 366
Envoyer un message via MSN à yannux
Si je ne m'abuse apc stock dans ta ram aussi ? Pourquoi ne pas simplement augmenter le memory_limit. ?
yannux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h28.


 
 
 
 
Partenaires

Hébergement Web