Why you should never, ever, ever use MongoDB - joepie91's Ramblings
lundi 20 juillet 2015 à 23:36Links from tsyr2ko's wandering 20/07/2015
Pour expliquer le pourquoi, il y a ça :
https://twitter.com/trvrm/status/623135659817971716
En l'occurrence, dans le code de MongoDB, on trouve cette fabuleuse ligne:
" if (!((_ok) ? true : (Math.random() > 0.1))) {"
https://github.com/mongodb/mongo-java-driver/blob/1d2e6faa80aeb5287a26d0348f18f4b51d566759/src/main/com/mongodb/ConnectionStatus.java#L213
(Permalink)
https://twitter.com/trvrm/status/623135659817971716
En l'occurrence, dans le code de MongoDB, on trouve cette fabuleuse ligne:
" if (!((_ok) ? true : (Math.random() > 0.1))) {"
https://github.com/mongodb/mongo-java-driver/blob/1d2e6faa80aeb5287a26d0348f18f4b51d566759/src/main/com/mongodb/ConnectionStatus.java#L213
(Permalink)
@jeekajoo shaarlinks 21/07/2015
j'ai toujours entendu du mal de mongodb sans l'avoir jamais utilisé.
maintenant j'ai des preuves.
via https://my.shaarli.fr/tsyr2ko/?6EKZFA
EDIT: hehe, éloquent: https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-reads
(Permalink)
maintenant j'ai des preuves.
via https://my.shaarli.fr/tsyr2ko/?6EKZFA
EDIT: hehe, éloquent: https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-reads
(Permalink)
HowTommy | Liens et actu en vrac 21/07/2015
Pas mal, les raisons pourquoi il ne faut pas utiliser MongoDB.
J'avais aussi vu qu'il valait mieux priviliéger PostgreSQL et TokuMX.
(Permalink)
J'avais aussi vu qu'il valait mieux priviliéger PostgreSQL et TokuMX.
(Permalink)
Liens en vrac de sebsauvage 21/07/2015
Liens 21/07/2015
Les liens de Kevin Merigot > Links from tsyr2ko's wandering 21/07/2015
Pour cette ligne, j'en parlais ici (depuis, le lien d'origine a changé) : http://mypersonnaldata.eu/shaarli/?v45HWA
L'idée est de loguer uniquement environ 10% des erreurs sur cette opération, qui, en cas d'erreur, crache souvent la même ligne trouzmille fois.
Explication plus complète ici : https://utcc.utoronto.ca/~cks/space/blog/programming/UnderstandingMongoDBRandom
En gros, en fait, c'est loin d'être con.
(Permalink)
L'idée est de loguer uniquement environ 10% des erreurs sur cette opération, qui, en cas d'erreur, crache souvent la même ligne trouzmille fois.
Explication plus complète ici : https://utcc.utoronto.ca/~cks/space/blog/programming/UnderstandingMongoDBRandom
En gros, en fait, c'est loin d'être con.
(Permalink)
Links from tsyr2ko's wandering > Les liens de Kevin Merigot 21/07/2015
D'accord sur le principe de vouloir logger une erreur que 10% du temps (et encore, Math.random pourrait très bien sortir sur du 25% s'il est tout buggué)
Mais il y a quand même un gros code spaghetti ignoble.
function() {
try {
[...]
if (res == null) {
throw new MongoInternalException("Invalid null value returned from isMaster");
}
[...]
} catch (Exception e) {
if (!((_ok) ? true : (Math.random() > 0.1))) {
return res;
}
[...]
}
return res;
}
Si res vaut null, dans 90% des cas, tout ça n'est rien d'autre qu'un "return null" >.<
C'est plutôt à ton logger de gérer l'enregistrement ou non dans ton système de log,
pas le rôle du code applicatif.
Une erreur => un appel au logger
Après, à l'intérieur du logger, il peut faire du traitement pour n'enregistrer qu'une fractions des erreurs.
(Permalink)
Mais il y a quand même un gros code spaghetti ignoble.
function() {
try {
[...]
if (res == null) {
throw new MongoInternalException("Invalid null value returned from isMaster");
}
[...]
} catch (Exception e) {
if (!((_ok) ? true : (Math.random() > 0.1))) {
return res;
}
[...]
}
return res;
}
Si res vaut null, dans 90% des cas, tout ça n'est rien d'autre qu'un "return null" >.<
C'est plutôt à ton logger de gérer l'enregistrement ou non dans ton système de log,
pas le rôle du code applicatif.
Une erreur => un appel au logger
Après, à l'intérieur du logger, il peut faire du traitement pour n'enregistrer qu'une fractions des erreurs.
(Permalink)
Liens et divers de Nicolas Constant 21/07/2015