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

Zend Framework PHP Discussion :

Zend Cache et masse importante de données


Sujet :

Zend Framework PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    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

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    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.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Par défaut
    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.

  4. #4
    Membre chevronné
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Par défaut
    Si je ne m'abuse apc stock dans ta ram aussi ? Pourquoi ne pas simplement augmenter le memory_limit. ?

Discussions similaires

  1. [Core] Apprendre à traiter des quantités importantes de données avec Hibernate
    Par Mickael Baron dans le forum Hibernate
    Réponses: 0
    Dernier message: 17/05/2012, 11h39
  2. [ZF 1.10] Zend Cache et BLOB image
    Par Heilong dans le forum Zend Framework
    Réponses: 1
    Dernier message: 19/05/2010, 09h50
  3. Cache PHP ou base de données
    Par flo_k dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/08/2009, 00h08
  4. Diffusion importante de données en multicast
    Par fregolo52 dans le forum Développement
    Réponses: 8
    Dernier message: 02/03/2007, 16h58

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