Aller sur la version française Go to English versionAccueil > Communautés > Le blog

Rachat de No One Development par Doctissimo

Par Philippe le 9 Novembre à 14:46:22 29 commentaire(s)

C'est avec plaisir que nous vous annonçons que No One Development a été rachetée par la société française Doctissimo. Ce rachat va permettre à MesDiscussions.net de prendre une nouvelle ampleur en lui donnant plus de moyens et ainsi d'augmenter encore la qualité du logiciel que vous connaissez depuis maintenant plus de 7 ans. No One Development est ainsi renommé Doctissimo Software.

 

Jocelyn Fournier, co-fondateur de No One Development et architecte principal de MesDiscussions.net intègre le pôle Recherche et Développement de Doctissimo Software à Sophia Antipolis et continuera ainsi à vous proposer plus que jamais un produit d'une qualité inégalée en France. Il sera toujours aidé par Cédric Chichilianne. Afin d'assurer la transition commerciale, Philippe Rocheteau continuera d'être votre interlocuteur dans les semaines à venir et pourra répondre à toutes vos questions.

 

Merci pour votre confiance,

 

L'équipe Mesdiscussions.net

 

Lien vers le communiqué complet




MySQL 5.1.22 RC : Discussion sur le partitionning

Par joce le 17 Octobre à 22:51:59 5 commentaire(s)

MySQL vient d'annoncer la release de sa version 5.1.22 RC, et parmi le top des nouvelles fonctionnalités, le partitionning est cité.
Qu'est ce donc et est-ce si bien que cela ?

 

Sans rentrer dans les détails de la syntaxe des requètes le partitionning permet, suivant des régles définies par l'utilisateur, de séparer physiquement sur le disque dans des fichiers différents et de façon transparente les données d'une table.

 

Pour prendre un exemple concret, pour un forum par exemple, deux approches sont possibles :

 

Mettre toutes les catégories du forum dans une même table, ou alors séparer chaque catégorie dans une table différente.

 

La première approche permet une gestion simple des opération sur de multiples catégories (déplacement, fusion, etc), mais dès que l'on veut vraiment isoler une catégorie en particulier, les choses sont plus complexes (aucune possibilité de restaurer une cat en particulier d'un backup en cas de crash par exemple), et les performances ne sont pas optimales (obligé d'utiliser un index sur la catégorie voulue).

 

La deuxième approche permet un gain de vitesse, et une gestion des données par catégorie plus simple, mais dès qu'on commence à vouloir traiter plusieurs catégories à la fois, les choses se compliquent.

 

Le partitionning permet d'obtenir le meilleur des deux mondes : l'utilisateur ne voit et ne manipule qu'une seule table, et on obtient les performances des tables dissociées. De plus, la façon dont les tables sont stockées sur le disque permet de récupérer uniquement certaines "partitions".
C'est l'idéal me direz vous ? Malheureusement, pas complétement. Un des gros points noirs du partitionning se situe au niveau des files descriptors. En effet, même si vous ne voulez accéder qu'à une seule catégorie en particulier, (et donc une seule partition), MySQL va ouvrir tous les fichiers correspondant à chaques partitions associées à votre table (si vous avez 1024 catégories, ca fait quand même 1024 fichiers à ouvrir en même temps).
Linux étant généralement avare de file description par defaut, si vous gérez beaucoup de catégories vous allez vite découvrir la magnifique erreur :

 

"Too many open files".

 

En bref, avant de considérer le partitionning comme le saint graal et de réecrire votre application pour en bénéficier, pensez à ce petit détail ;)




[perf MySQL] tmpdir de MySQL : pas toujours utilisé

Par joce le 30 Septembre à 21:10:43 0 commentaire(s)

Si vous cherchez absolument à optimiser au maximum les performances de MySQL et que vous avec de la mémoire RAM à revendre, vous avez surement été tenté de configurer le tmpdir pour qu'il pointe vers un filesystem en mémoire (comme la shm).
Cela permet en effet de réduire les lectures/écritures disque lors de la création de table temporaires créees automatiquement par MySQL.

 

Malheureusement, un bug dans MySQL, introduit dans la version 5.0.44 fait que lors des opérations de filesorting, les tables temporaires ne sont pas créés dans le tmpdir mais dans le repertoire de la base de donnée.
Ce bug a été corrigé dans la version 5.1.22-rc de MySQL qui vient de sortir aujourd'hui.
Pour les utilisateurs de la version stable, il faudra attendre la sortie de la 5.0.48 pour voir ce bug corrigé.




MesDiscussions.net en 2007.2

Par Philippe le 3 Septembre à 11:43:43 12 commentaire(s)

Nous vous annoncons aujourd'hui la sortie officielle de la version 2007.2 de MesDiscussions.net. Les forums éco et sérénité ont déja basculé, et les forums en version licence vont être mis à jour au cours des prochains jours. Voici la liste exhaustive des nouveautés :
 
Utilisateurs :
- Les utilisateurs peuvent désormais réouvrir leur sondage précédement cloturé.
- Les utilisateurs ont la possibilité lors de l'upload d'un ou plusieurs émoticones de définir des mots clés sur ces émoticones pour faciliter la recherche des autres membres. Les utilisateurs disposent donc d'un moteur de recherche par mots clés sur les émoticones.
- Le passage du forum en UTF-8 permet une meilleure gestion des caractères spéciaux.
- Nouveau formulaire moderne permettant de passer du mode "bbcode" au mode wysiwyg.
- Les invités peuvent désormais participer aux sondages si le créateur du sondage le désire.
 
Modérateur :
- Possibilité de déplacer plusieurs sujets à la fois.
 
Administrateur :
- Possibilité de limiter la taille des <title> à l'intérieur d'un sujet ou d'une catégorie.
- Possibilité d'éditer les entrées utilisateurs dans le profil, tel que les citations, signature, profession, etc.
- Possibilité de rentrer manuellement les multipseudos si le forum ne les détecte pas
- Possibilité de fixer une taille maximum des images à l'affichage par rapport à une largeur ou à une marge vis à vis de la surface d'affichage.
- Possibilité de désactiver les messages privés
- Possibilité de désactiver le moteur de recherche
- Possibilité de régler certains paramètres sur toutes les catégories simultanément
- Possibilité de remettre le star-rating à zéro ou de programmer une remise à zéro ponctuellement.
- Possibilité d'instaurer une captcha (cryptogramme) pour les anonymes lorsque le forum accepte les messages des anonymes.
- Possibilité de récupérer le design d'une catégorie existante lors de la création d'une nouvelle catégorie.
- Possibilité de créer une catégorie "Lien vers un autre sujet"
- Dans le cas des catégories "Lien vers un forum mesdiscussions", vous pouvez renseigner la colonne modérateur manuellement.
- Dans le cas de catégorie "Lien externe", vous pouvez renseigner la colonne "dernier auteur" et la colonne modérateur manuellement.
- Possibilité de mettre un avatar générique pour les membres n'en affichant pas.
- Possibilité de mettre des avatars en fonction du grade (lui même définissable selon le nombre de message des membres) pour les membres n'ayant pas d'avatar.
- Possibilité de personnaliser les titres des fenêtres selon la catégorie en cours.
 
Super-Administrateur :
- Possibilité de programmer une multi identification sur plusieurs domaines via l'administration.
- Possibilité de gérer les cookies, nom d'url sur tous les forums en simultané.
- Moteur de remplacement dans le design/intégration
- Possibilité de choisir un répertoire pour tous les fichiers autogénérés du forum.
 
Divers :
- Possibilité de cacher les groupes de sous-catégories quand un utilisateur se trouve dans une sous-catégorie.
- Possibilité de désactiver la synchronisation des serveurs MySQL master et slave.
- Possibilité de rajouter la liste des forums du serveur sur l'affichage de la hiérarchie du forum
- Possibilité de rajouter une racine à l'affichage de la hiérarchie du forum avec le lien et/ou le texte libre.
- Possibilité de placer un message fictif (comme une publicité) en deuxième message visible par tous les membres ou uniquement par les invités;
- Diverses optimisations et corrections de bogues.
A noter pour les développeurs :
- Passage du forum en UTF-8.
- Les cookies user, passs et data se nomment désormais md_user, md_passs et md_data.
- Pour les menus personnalisés qui déloguent d'un forum, il faut rajouter la constante 'md_codehex' à l'url de déconnexion.
 
Communiqué de presse




Nouveautés pour les documentations

Par Philippe le 30 Août à 10:46:25 4 commentaire(s)

Si vous ne le savez pas encore, il existe des documentations pour les forums MesDiscussions.net : une pour les internautes, une pour les modérateurs du forum et une pour ses administrateurs. Elles sont destinées à expliquer en détail l'usage des fonctions de MesDiscussions.net et ont un caractère exhaustif. Il en existe également une expliquant les fonctions avancées de MesDiscussions.net, à propos du kit de développement et des webservices (accessible uniquement avec les offres licences ou dédiées).  
 
Nous venons de remodeler ces documentations afin de les rendre plus simples à utiliser : design similaire au site web et menu latéral pour naviguer entre les différentes rubriques.
Vous pouvez y accéder en vous rendant à cette adresse. N'hésitez pas à nous laisser vos remarques/critiques en commentaire.




Entrez dans la matrice !

Par Philippe le 22 Août à 11:43:24 7 commentaire(s)

De nombreux utilisateurs des forums MesDiscussions.net se demandent à quoi ressemble l'interface d'administration et ce qu'elle peut contenir comme options. D'autres aimeraient voir ce qu'il est possible de configurer et jusqu'ou peut aller la personnalisation.
 
Nous avons donc créé un forum de démonstration, ou vous disposez de tous les droits possibles (super administrateur) permettant de configurer au maximum le forum.
 
Evidemment, nous vous faisons confiance afin de ne pas réaliser des opérations pouvant bloquer le forum (fermeture, accès restreint, changement du profil administrateur etc...). En dehors de cela, les modifications de l'affichage et des différents paramètres sont libres.
 
Voici l'adresse, ou vous retrouverez les identifiants d'accès : http://demo.mesdiscussions.net/




[perf MySQL] Consommation CPU excessive à partir de la version 5.0.37

Par joce le 28 Juillet à 14:44:53 1 commentaire(s)

A partir de la version 5.0.37 de MySQL, une regression a été introduite qui peut avoir un effet très négatif sur le taux de CPU utilisé par MySQL. (jusqu'à x10 sur des serveurs avec un très grand nombre de requète par secondes)
Cette régression est liée à la fonctionnalité SHOW PROFILE non implementée de façon optimale et faisant inutilement appel à la fonction getrusage(), même lorsque le profiling est désactivé.
Pour plus d'infos sur le bug, jetez un oeil ici : http://bugs.mysql.com/bug.php?id=27501
 
Vous pouvez corriger le problème en récupérant une version binaire de MySQL 5.0.44/45 à partir de cette adresse : http://www.dorsalsource.org/




Tout comprendre sur le concurrent insert utilisé par l'engine MyISAM

Par joce le 25 Juillet à 23:36:42 0 commentaire(s)

MyISAM utilise un système de lock appelé "table locking", qui bloque les lectures dans la globalité d'une table en cas d'insertion, afin de garantir la cohérence des résultats.
La fonctionnalité "concurrent insert" de MySQL permet de contourner cet effet, en permettant d'avoir des lectures et écritures simultanées sous certaines conditions.
Il y a trois modes de concurrent insert possible au niveau de MySQL (2 pour MySQL 4.1 et < ), controllés par la variable concurrent_insert :
 
   

  • 0 — Concurrent Insert desactivé

   

  • 1 — Un concurrent insert peut survenir uniquement s'il n'y a pas d'enregitrement marqué comme étant effacés (mode par defaut)

   

  • 2 — Un concurrent insert peut survenir même s'il des enregistrement sont marqués comme étant effacés (MySQL 5.0 et > seulement)


Passer la variable de 1 à 2 avec MySQL permet d'augmenter encore les performances pour les tables ayant beaucoup d'effacement / insertion concurrent, mais introduit de la fragmentation, MySQL ne "rebouchant" plus les trous causés par les effacements. Il est donc bon de planifier des "OPTIMIZE TABLE" regulièrement, pour défragmenter ces tables.
 
Pour les anglophones interessés par le fonctionnement interne de MySQL lors d'un concurrent insert, je vous recommande le très instructif article suivant, écrit par Jay Pipes, qui travaille chez MySQL en tant "North American Community Relations Manager" :
 
http://www.jpipes.com/index.php?/a [...] art-I.html




Des problèmes de performances avec les requètes de type IN ?

Par joce le 25 Juillet à 00:42:18 3 commentaire(s)

Martin Friebe, un contributeur très actif de la communauté MySQL s'est rendu compte d'une chose intéressante, notamment pour ceux utilisant de façon intensive des requètes du style IN () contenant beaucoup de valeur :
 
le code de l'optimizer de MySQL responsable du plan d'execution de type RANGE (utilisé notamment lors des requètes IN) n'est pas optimal, ce qui amène à des performances moins élevées que ce que l'on pourrait escompter.
Le problème devient particulièrement embétant dans MySQL 5.0 lorsque des jointures de ce style sont utilisées :
 
SELECT a FROM t1,t2 WHERE t1.a=t2.b AND t2.b IN (...)
 
En effet, MySQL 5.0 et > dispose d'une optimisation appelée "propagation d'égalité", et la requète devient donc après optimisation :
 
SELECT a FROM t1,t2 WHERE t1.a=t2.b AND t2.b IN (...) AND t1.a IN (...)
 
Et là, le problème de l'optimizer se fait sentir : en effet, lorsqu'il se trouve en presence de deux IN, il calcule de façon incorrecte que le nombre approximatif de ligne qui va être retourné par la requète est égal au nombre de valeur dans le premier IN * le nombre de valeur dans le deuxième IN, et va faire beaucoup plus de tests que nécessaire... ce qui peut faire particulièrement mal :D
Et il semble que l'optimizer ait d'autres problèmes s'ajoutant à cela, necessitant une investigation approfondie (voir le bug http://bugs.mysql.com/bug.php?id=20932 )
 
 
En bref, la phase de calcul des statistiques peut être jusqu'à 20x plus lente sur de grosse liste !
 
Il pourrait être donc judicieux, si vous vous trouvez dans ce cas, de créer une temporary table (en memoire) contenant votre liste et de faire une jointure sur cette liste, plutôt que d'utiliser un IN (...) avec énormement de valeurs.
 
Pour les personnes recherchant les performances à tout prix tout en gardant un IN (...) avec beaucoup de valeurs, ils peuvent jeter un oeil et essayer les patchs suivant :
 
http://bugs.mysql.com/bug.php?id=26453
http://bugs.mysql.com/bug.php?id=26232
 
 
en attendant que MySQL ne les intègre officiellement.
 
Un hack a été également posté, désactivant la propagation d'égalité dans 5.0 pour les listes contenant plus de 5 éléments :
 

Code :
  1. ===== item_cmpfunc.h 1.153 vs edited =====
  2. --- 1.153/sql/item_cmpfunc.h    2007-07-19 03:26:18 +04:00
  3. +++ edited/item_cmpfunc.h       2007-07-19 02:31:15 +04:00
  4. @@ -1144,6 +1144,8 @@
  5.   class Item_func_in :public Item_func_opt_neg
  6.   bool nulls_in_row();
  7.   bool is_bool_func() { return 1; }
  8.   CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
  9. /* sergeyp: don't do eq substs inside IN if the IN-list has > 5 elements */
  10. bool subst_argument_checker(byte **arg) { return test(arg_count < 5); }
  11. };
  12. class cmp_item_row :public cmp_item
  13. ===== sql_select.cc 1.538 vs edited =====
  14. --- 1.538/sql/sql_select.cc     2007-07-19 03:26:18 +04:00
  15. +++ edited/sql_select.cc        2007-07-19 02:29:39 +04:00
  16. @@ -7375,11 +7375,15 @@ 
  17.   static COND *build_equal_items_for_cond(
  18.       an argument of a comparison predicate.
  19.     */
  20.     byte *is_subst_valid= (byte *) 1;
  21. -    cond= cond->compile(&Item::subst_argument_checker,
  22. +    Item *new_cond;
  23. +    if ((new_cond= cond->compile(&Item::subst_argument_checker,
  24.                         &is_subst_valid,
  25.                         &Item::equal_fields_propagator,
  26. -                        (byte *) inherited);
  27. -    cond->update_used_tables();
  28. +                        (byte *) inherited)) && (new_cond != cond))
  29. +    {
  30. +      cond= new_cond;
  31. +      cond->update_used_tables();
  32. +    }
  33.   }
  34.   return cond;
  35. }




Welcome/Willkommen MyDiscussions.net

Par Philippe le 18 Juillet à 12:28:12 1 commentaire(s)

MesDiscussions.net équipe depuis peu de temps les forums américains et allemands de Toms Hardware, site international d'actualité et de tests de matériel informatique. Le forum existe donc désormais en anglais (avec une documentation 100% traduite) et en allemand. MesDiscussions.net est donc rebaptisé pour l'occasion en MyDiscussions.net (vous noterez l'effort d'originalité) dans les langues étrangères, ce qui a le double avantage de ne pas être très complexe à retenir et à reconnaître, et de garder un logo universel "MD".