Bonjour à tous !
Je suis débutant en Java et je me suis lancé dans un projet un peu compliqué pour moi.
Si vous le voulez bien, je vais vous expliquer de quoi il s'agit, puis vous présenter comment je compte m'y prendre : je vais avoir quelques questions et j'aimerais un avis de qqn qui connait bien java
J'enregistre chaque nuit la bourse Coréenne, pour être plus précis j'enregistre en base, chaque mouvement (bid, ask, trade et volumes) qu'il peut y avoir sur toutes les options sur leur indice principal (le KOSPI).
Le but de mon projet est de diffuser en temps réel différé les données vers mes outils d'analyses, afin de pouvoir observer la bourse et dormir la nuit .
Pour vous donner une idée, une journée représente en base, une table de 300 MO (3 millions de lignes)
En effet, je veux reproduire les mouvements et leur timing, (de l'ordre de la milliseconde), mais j'ai peur que : (là j'attends vos avis) :
de tout charger dans un Statement, puis de lire le statement
1°) ne soit trop gourmand en mémoire
2°) ne me permette pas de lire à la "bonne" vitesse, sachant que j'ai parfois des grappes de mouvements qui sont tous dans la même milliseconde
c'est pourquoi j'ai imaginé de mettre les mouvements dans une liste chainée, qui sera remplie d'un côté par un Lecteur et dépilée de l'autre par un Diffuseur (qui balancera les infos). Au pire, quand le Diffuseur aura rattrapé le Lecteur, de le freezer un peu le temps que le Lecteur reprenne de l'avance.
Mais ça ne rêgle pas le problème du Statement SQL : est-ce qu'il va pouvoir gérer 3 millions de lignes ?
Sinon, on m'a dit que la fonction sleep n'était pas fiable sous les 15 millisecondes et qu'il vallait mieux considérer qu'il faut diffuser tout de suite tous les mouvements espacés de moins de 20 millisecondes.
Qu'en pensez-vous ?
Merci de vos avis !
Partager