2016-11-08 1 views
0

j'ai besoin pour optimiser le temps pris pour le fonctionnement get pour l'environnement distribué multithread ina de distribution MAPR -premiers appels get MapR prenant le temps

1) Service de données est en cours d'exécution sur plusieurs JVM. 2) J'utilise HTablePool (je dois m'en tenir à la version client où il n'y a pas de support pour ConnectionFactory) et lors du profilage d'une performance, j'ai trouvé que l'utilisation de connection.getTable() introduit HOTSPOT.

Problème - La requête initiale prend ~ 1 sec (ce que je croyais est parce que le client n'a pas de ressources en cache pour localiser les régions, etc.) cela a pris du temps supplémentaire. Normalement, le temps de réponse est de quelques ms. 1) Est-ce que chaque fois que nous obtenons un nouveau HTableInterface groupé, il y aura du retard pour créer un cache côté client pour localiser le serveur de région. 2) Si le client est inactif (le pool est créé mais pas d'activité), j'ai observé que l'exécution de get call prend encore ~ ​​1 sec. Est-il possible que je garde les emplacements de région déjà mis en cache disponibles tout le temps.

Y a-t-il un paramètre côté client que je devrais explorer pour toujours garder le temps de réponse inférieur à 200 ms.

Merci

Répondre

0

Pour obtenir plus de connexions se rassis ajoutées ci-dessous propriété dans le noyau-site.xml

fs.mapr.rpc.timeout => 400

Au lieu d'utiliser Connection.GetTable chaque fois , créé HTable une fois et utilisé avec plusieurs threads.

HTable pour l'implémentation de mapr est thread-safe.