ApsaraDB for HBase escribe datos en HLog y Memory con base en el modo Log-Structured Merge (LSM). Esto significa que ApsaraDB for HBase no realiza operaciones de entrada/salida (I/O) aleatorias, lo que proporciona alto rendimiento y estabilidad en las operaciones de escritura. En la mayoría de las soluciones de bases de datos, las operaciones de escritura se optimizan para garantizar la fiabilidad a costa del rendimiento.
Use HTable.put(List<Put>) para agrupar varias escrituras en una sola llamada a procedimiento remoto (RPC) y reducir la sobrecarga de red por fila.
HTable.put(List<Put>)
Deshabilite AutoFlush
Establezca Autoflush en false para mejorar significativamente el rendimiento de escritura. Sin embargo, se recomienda esperar hasta que se almacenen en búfer 2 MB de datos (hbase.client.write.buffer) o hasta que se ejecute el comando hbase.flushcommits() antes de invocar Autoflush en un RegionServer. Los datos no se escriben en la base de datos remota.
Configure el tamaño del búfer con HTable.setWriteBufferSize().
Optimización del servidor
Indicador WAL
El registro de escritura anticipada (WAL) conserva cada escritura en el disco antes de confirmarla para garantizar la durabilidad. Si deshabilita WAL, se reduce el número de operaciones de I/O y mejora el throughput de escritura. Solo se realizan escrituras en memoria hacia MemStore.
Esta operación es adecuada para escenarios donde se prioriza el rendimiento sobre la fiabilidad.
Incremente la memoria de MemStore
Para cargas de trabajo con muchas escrituras, aumente la asignación de memoria de MemStore y reduzca la asignación de BlockCache. Este enfoque es inverso al de la optimización de lectura.
Gestione la acumulación de HFile
Con un throughput de escritura elevado, los archivos HFile se acumulan más rápido de lo que la compactación puede fusionarlos.
Para mantener bajo control la cantidad de archivos HFile:
Programe la compactación mayor durante las horas de menor actividad para fusionar los archivos HFile sin competir con el tráfico de escritura en tiempo real.
Si no es posible reducir la cantidad de archivos HFile dentro de un periodo aceptable, agregue nodos RegionServer para distribuir la carga de escritura.