JeuWeb - Crée ton jeu par navigateur
Java, Daemon & Données - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Java, Daemon & Données (/showthread.php?tid=4962)



Java, Daemon & Données - Cartman34 - 01-07-2010

Bonjour,

Ce topic fait suite à un autre sur un projet que j'ai commencé il y a quelque temps.

J'ai créé un daemon multithread pouvant communiquer avec une base de données et l'extérieur grâce à un Thread dédié à un port socket.

Ce daemon doit pouvoir gérer toutes les données du projet dont les plus communes comme les comptes utilisateurs.
Comme toutes les données, toutes les créations, modifications, lectures passent par ce daemon, il doit pouvoir accéder à toutes les données nécessaires et les garder en mémoire.

Pour cela, je me pose la question suivant et souhaite obtenir votre avis:
Quel est le support de sauvegarde des données le plus approprié ?!
Au départ, je pensais utiliser tout bêtement une base de données (à première vue MySQL mais ça n'a aucune importance) mais un collègue m'a signalé que s'il faut utiliser un système de fichier/mémoire/cache, autant le faire moi même car JAVA c'est tout en objet et instancié/supprimé des objets à tout bout de champs, c'est lourd.
Alors on a pensé qu'il serait bon de créé un système gérant les enregistrements dans des fichiers et la mise en mémoire via un système interne.
Cela permettrait de gagner en efficacité et en praticité car il s'agit ici de pouvoir charger un gros lot de données d'un coup pour créer l'objet correspondant et mettre ça dans un fichier est plus pratique qu'utiliser 3-4 tables différentes, ne pas controler la mise en cache.
Le problème se poserait aussi au niveau des connexions/déconnexions qui pourraient n'être qu'une seule connexion persistante mais il y a des pertes de temps avec un tel système.


RE: Java, Daemon & Données - Sephi-Chan - 01-07-2010

Je ne comprends pas trop l'intérêt de ce que tu fais… :heuuu:
Pour le stockage, tu peux utiliser l'un des nombreux moteur de stockage par clé/valeur, comme Memcached, qui utilise la RAM.


Sephi-Chan


RE: Java, Daemon & Données - Cartman34 - 01-07-2010

Comment ça tu ne vois pas l'intéret ?
L'intérêt est d'avoir un daemon (comme un serveur de jeu) qui gère tout le jeu.

Et puis, memcached est pour PHP et je ne veux pas non plus mettre en RAM ce que j'ai déjà en RAM.


RE: Java, Daemon & Données - Anthor - 01-07-2010

Un truc dans ce genre en gros ?
http://www.reddwarfserver.org/


RE: Java, Daemon & Données - Sephi-Chan - 01-07-2010

Et bien justement. J'ai cru comprendre que tu aimais les daemons, mais en quoi ça consiste, gérer (je n'aime pas ce mot : il veut tout et rien dire à la fois) ? C'est pour quel genre de jeu ? Etc.

Quant à Memcached, tu aurais pu te documenter un peu avant de répondre… Ça n'a rien à voir avec PHP ! D'autant plus que c'est un outil éprouvé et très performant : je doute qu'une solution maison lui arrive à la cheville.

Ensuite, on est plus dans les années 1980 : Java est très performant. Il est utilisé dans plusieurs pans d'Oracle ainsi que d'autres projets qui demandent de hautes performances comme Apache Cassandra.

Ensuite, tu dis que tu ne veux pas mettre en RAM ce que tu as déjà en RAM, mais c'est pourtant ce que tu demandes… :heuuu:

(01-07-2010, 05:27 PM)IGstaff a écrit : Comme toutes les données, toutes les créations, modifications, lectures passent par ce daemon, il doit pouvoir accéder à toutes les données nécessaires et les garder en mémoire.

[...]

Alors on a pensé qu'il serait bon de créé un système gérant les enregistrements dans des fichiers et la mise en mémoire via un système interne.

En somme, je ne comprends pas trop ce que tu veux faire, ni pourquoi tu veux le faire.


Sephi-Chan


RE: Java, Daemon & Données - Cartman34 - 01-07-2010

Je parlais d'un coté d'un système de sauvegarde sur le disque dur et d'un autre coté d'un système interne permettant la libération & l'ajout des données enregistrées (en dur) en (vers la) mémoire.
Quelque soit le genre de jeu, pour l'instant le principe est le même mais si tu y tiens il s'agit avant tout d'un jeu de stratégie/Gestion.
Le daemon (oui j'aime bien ce mot) me sert à exécuter tout ce qui doit se passer ingame, l'évolution des ressources, les déplacements...tout.
Pratiquement comme un serveur de jeu, et c'est un peu ce que je veux reproduire, c'est pour cela qu'un daemon (ici servlet) est nécessaire.

Le but est justement ici d'éviter tout système préfabriqué menant forcément à des pertes de performances, sinon on aurait fait simple...

Pour memcached, j'avoue n'avoir pas été voir plus loin mais ça ne m'intéresse pas vraiment car j'ai déjà ma dose de nouveautés et que je préfère garder le focus sur ce qui est important ici.

NB: Je n'ai jamais vu les notions de servlet et de daemon entremelés mais il n'y a en fait que peu de différences entres les 2 et ici, pas du tout.
Je peux aussi ne pas avoir tout compris à ces notions.