Skip to main content

Posts

Showing posts from November, 2011

Optimiser les accès en lecture sur HBase

Increase HBase read performance checklist

Accès en parallèle, client "multihtread"
Dans HBase les données sont découpées en Régions et ces Régions peuvent être servies par des Region Servers différents. La charge de lecture doit donc être dans la mesure du possible distribuée sur l'ensemble des serveurs. 

Privilégier les lectures en mode "batch"
L'API HBase permet de lotir des appels à la base dans des "Batch Operations". L’intérêt est d'éviter de trop nombreux aller/retour sur le réseau.
Ainsi les opérations PUT, GET, DELETE peuvent être regroupées dans un seul appel à la base de donnée.


HTable hTable = new HTable("cachetestdb");
List listOfget = new ArrayList();
for (int i = 0; i < 10; i++) {
String keyAsString = "17#" + i;
Get get = new Get(Bytes.toBytes(keyAsString));
listOfget.add(get);
}

Object[] batch = hTable.batch(listOfget);

for (Object object : batch) {
Result result = (Result) object; 
/* TODO : process data */
}



Le cache …