Tuning Parameters for Client Apps
Though tuning client applications is generally not necessary, Data Fabric does offer tuning parameters to change the behavior of client-side caching.
Client application cache pending puts in buffers that are unique to each tablet (region, in HBase terminology). Individual put buffers are flushed when they are full or idle. As a result of this architecture and behavior, client applications tend to send RPCs of 128KB when flushing puts to disk, which results in better performance than flushing a single global buffer would, as that could result in a large number of small RPCs.
You can change the values of parameters that affect how put buffers are flushed. Set values
for them in the hbase-site.xml
file or core-site.xml
file
in your Data Fabric installation. If a non-default value for
a parameter is set in both files, the value in the hbase-site.xml
file is
used.
- db.mapr.putbuffer.threshold.mb
- Specifies the size of the cumulative put buffer for all tablets in the client
application. When this threshold is reached, the put buffer that is most full is
flushed to its tablet.
The default value is 32MB.
Increasing this value can improve performance when an application performs operations on very large tables or on a very large number of tables.
- db.mapr.putbuffer.threshold.sec
- Specifies the number of seconds that HPE Ezmeral Data Fabric Database should wait before flushing an idle put
buffer.
The default value is 3.
This parameter has no effect if automatic flushing is enabled.
- fs.mapr.tabletlru.size.kb
- Specifies the size of the metadata cache
for all tables in a client application..
The metadata for each tablet is 128 bytes.
The default value of this parameter is 512KB, which allows for the caching of the metadata of 4,096 tablets.
When this metadata cache is full, any operation on a tablet for which the metadata is not cached requires an RPC to fetch that tablet's metadata. Moreover, caching the newly retrieved metadata removes from the cache the metadata of a different tablet.
- fs.mapr.threads
- Specifies the number of threads to use when flushing put
buffers. Each thread makes synchronous RPCs when flushing.
The default value is 64.