2011-05-08 2 views
2

Je vois toutes sortes de référence à MongoDB en tant que client pour les points de repère YCSb pour tester l'évolutivité/élasticité du serveur de base de données NoSQL.YCSb - pourquoi je ne peux jamais trouver une configuration tesson partout sur Internet

https://github.com/brianfrankcooper/YCSB

Cependant, il est clair que l'indice de référence, il faudrait une sorte de configuration sharding, parce que les tests sont conçus pour fonctionner sur 6 à 10 machines de serveur pour afficher l'échelle et de l'élasticité.

Je ne peux trouver aucune référence sur Internet pour ce qui ressemble à la configuration avec MongoDB. Je ne peux pas trouver quelqu'un qui a publié des résultats qui ont également publié à quoi ressemble leur configuration.

était ce truc vraiment fait avec succès? Quels sont les résultats comparés aux clients YCSB d'origine comme Cassandra, HBase, etc.

Je suis particulièrement confus car, dans le code du client MongoDB il lit ..... "il y a une instance DB par thread client "... voir l'extrait.

public class MongoDbClient extends DB { 

    private static final Logger logger = LoggerFactory.getLogger(MongoDbClient.class); 

    private Mongo mongo; 
    private WriteConcern writeConcern; 
    private String database; 

    /** 
    * Initialize any state for this DB. Called once per DB instance; there is 
    * one DB instance per client thread. 
    */ 
    public void init() throws DBException { 
        // initialize MongoDb driver 
        Properties props = getProperties(); 
     ...... 

Cependant, dans les résultats Brian Cooper YCSb papier, il affirme qu'ils ont couru leur charge de travail jusqu'à 500 threads.

6,1 Configuration expérimentale

Pour la plupart des expériences, nous avons utilisé six serveur classe machines (dual core quad 64 bits 2,5 GHz Intel Xeon, 8 Go de RAM, 6 disque RAID-10 array et gigabit ethernet) pour exécuter chaque système. Nous avons également couru PNUTS sur un cluster de serveurs 47 à démontrer avec succès que YCSb peut être utilisé pour les systèmes de référence plus importants. PNUTS nécessaires deux machines supplémentaires pour servir de serveur de configuration et le routeur et HBase requis une machine supplémentaire appelé le « serveur maître . » Ces serveurs étaient légèrement chargés, et les résultats que nous rapportons dépendent principalement de la capacité de les six serveurs de stockage. Le client YCSB a exécuté une machine séparée 812 . Le client a été exécuté avec jusqu'à 500 fils, selon le débit offert souhaité. Nous avons observé dans nos tests que la machine cliente n'était pas un goulot d'étranglement; en particulier, la CPU était presque inactif, car la plupart du temps a été passé attendre que le système de base de données pour répondre .

Est-ce que quelqu'un sait où il y a une configuration sharding pour cette référence et quels sont les résultats réels par rapport à la concurrence qui peut être sauvegardé par une configuration de tesson ou d'une explication détaillée des raisons pour lesquelles un tesson ne serait pas nécessaire.

Merci, -Robert

+0

Confusion fréquente/Point faux: la classe Mongo représente un pool de connexions plutôt qu'une connexion individuelle. Cela expliquerait une partie de la discussion par client. –

+0

Merci pour l'info Brendan. Pouvez-vous expliquer comment cela se rapporte à ce cas où YCSB est censé se connecter avec 6 bases de données sur 6 machines différentes? Cette question est toujours sans réponse. – Robert

+0

Malheureusement, je ne connais pas YCSB. Il est étrange qu'ils établissent un point de référence, mais ne fournissent aucun exemple de configuration ou de docs. Il est cependant tout à fait possible que cette configuration soit basée sur des ensembles de réplicas plutôt que sur Sharding. –

Répondre

2

Nous ne comprenaient pas MongoDB dans le cadre de notre étude initiale de YCSb. Le client Mongo a été contribué plus tard par un autre développeur, mais je n'ai pas exécuté le benchmark complet contre Mongo, donc je ne sais pas si le client fait vraiment tout ce dont il a besoin. Si ce n'est pas le cas, allez-y et soumettez un patch et je vais essayer de l'inclure!

De plus, le commentaire "instance de base de données par thread client" signifie une instance de la classe de client DB dans la machine virtuelle Java, pas nécessairement un serveur MongoDB.

+0

Bonjour Brian. Merci d'avoir vérifié. Apparemment, en ce qui concerne Mongo, personne n'a vraiment exécuté la série de tests décrits dans votre document (YCSB est un excellent travail). J'ai nos gens qui cherchent à le faire. J'ai été surpris de découvrir à quel point il est difficile d'installer un db Mongo distribué. Si nous pouvons obtenir un environnement fragmenté qui fonctionne, nous publierons. – Robert

+0

Salut Brian, Alors le soutien de YCSB est-il présent pour mongodb avec sharding? Nous comparons Mongo avec ycsb. nous avons déployé mongo cluster avec 3 partitions mais quand nous avons essayé de charger des données en utilisant ycsb, cela montre des données chargées sur la console mais quand nous avons vérifié dans DB il était vide. Pouvez-vous clarifier s'il vous plait? Merci d'avance. –

Questions connexes