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
Partager