"DMA" ici signifie ici: Accès à la mémoire directe et "RDMA" est: Accès à la mémoire directe à distance. P>
J'ai utilisé Java pour créer une application pour transférer des données sur actions, mais j'ai trouvé que la latence est plus grande que prévu. J'ai entendu quelqu'un de développer la même application de type utilisée "DMA / RDMA", qui a de bonnes performances, alors je me demande si je peux utiliser "DMA / RDMA" en Java? P>
Sinon, quelle langue devrais-je utiliser et s'il y a de bonnes bibliothèques à utiliser? p>
6 Réponses :
RDMA Comme je sais que c'est une propriété de l'infrastructure de réseautage (ainsi que les modules de noyau concernés, etc.), non du langage de programmation au niveau de l'application. P>
En d'autres termes, vous devez obtenir un kit spécialisé pour utiliser RDMA pour réduire la latence du réseau. Voici un exemple de carte réseau 10GBE prenant en charge RDMA: Lien < / a>. p>
Les applications Java sont capables de fichiers de lamapage via des packages Nio. Ces fichiers de lamapés peuvent être accès par plusieurs programmes - j'effray Ceci ferme la chose à DMA disponible en Java P>
Cet article d'IBM Les développeurs travaillent donnent un excellent aperçu de la DMA L'accès peut être atteint en utilisant Java P>
L'article montre comment permettre à d'autres parties du système d'exploitation de faire DMA sur des données créées Java et de réaliser des transferts de données zéro-copie. (Cool, si tu me le demandes.)
@Lorddoskias, merci, zérocopy est un bon conseil, je vais l'essayer plus tard
Afin de réaliser un accès DMA de tout type, vous devez compter sur le système d'exploitation sous-jacent. Donc, chaque version JVM dispose de code spécifique à la plate-forme qui expose cette capacité par le biais de moyens de Filechannel. Donc, dans un sens, vous obtenez toutes les friandises qui viennent d'utiliser DMA
Java 7 prend en charge le protocole SDP sur Solaris et Linux (avec des pilotes OpenFabrics.org). Malheureusement, le protocole SDP a été obsolète dans la version 2.x de OFEED. Les gens ont recours à des wrappers Jni comme des joybs. p>
Vous avez deux options (que je connais de): p>
Aussi Jsor d'IBM: ibm.com/support/knowledgeCenter/fr/ssyke2_7.1.0/...