* BlueStore data (i.e., recently read or written object data)
Cache memory usage is governed by the following options:
``bluestore_cache_meta_ratio``, ``bluestore_cache_kv_ratio``, and
``bluestore_cache_kv_max``. The fraction of the cache devoted to data
is 1.0 minus the meta and kv ratios. The memory devoted to kv
metadata (the RocksDB cache) is capped by ``bluestore_cache_kv_max``
since our testing indicates there are diminishing returns beyond a
certain point.
``bluestore_cache_size``
:Description:The amount of memory BlueStore will use for its cache. If zero, ``bluestore_cache_size_hdd`` or ``bluestore_cache_size_ssd`` will be used instead.
:Type:Integer
:Required:Yes
:Default:``0``
``bluestore_cache_size_hdd``
:Description:The default amount of memory BlueStore will use for its cache when backed by an HDD.
:Type:Integer
:Required:Yes
:Default:``1 * 1024 * 1024 * 1024`` (1 GB)
``bluestore_cache_size_ssd``
:Description:The default amount of memory BlueStore will use for its cache when backed by an SSD.
:Type:Integer
:Required:Yes
:Default:``3 * 1024 * 1024 * 1024`` (3 GB)
``bluestore_cache_meta_ratio``
:Description:The ratio of cache devoted to metadata.
:Type:Floating point
:Required:Yes
:Default:``.01``
``bluestore_cache_kv_ratio``
:Description:The ratio of cache devoted to key/value data (rocksdb).
:Type:Floating point
:Required:Yes
:Default:``.99``
``bluestore_cache_kv_max``
:Description:The maximum amount of cache devoted to key/value data (rocksdb).
:Type:Floating point
:Required:Yes
:Default:``512 * 1024*1024`` (512 MB)
Checksums
=========
BlueStore checksums all metadata and data written to disk. Metadata
checksumming is handled by RocksDB and uses `crc32c`. Data
checksumming is done by BlueStore and can make use of `crc32c`,
`xxhash32`, or `xxhash64`. The default is `crc32c` and should be
suitable for most purposes.
Full data checksumming does increase the amount of metadata that
BlueStore must store and manage. When possible, e.g., when clients
hint that data is written and read sequentially, BlueStore will
checksum larger blocks, but in many cases it must store a checksum
value (usually 4 bytes) for every 4 kilobyte block of data.
It is possible to use a smaller checksum value by truncating the
checksum to two or one byte, reducing the metadata overhead. The
trade-off is that the probability that a random error will not be
detected is higher with a smaller checksum, going from about one if
four billion with a 32-bit (4 byte) checksum to one is 65,536 for a
16-bit (2 byte) checksum or one in 256 for an 8-bit (1 byte) checksum.
The smaller checksum values can be used by selecting `crc32c_16` or
`crc32c_8` as the checksum algorithm.
The *checksum algorithm* can be set either via a per-pool
``csum_type`` property or the global config option. For example, ::
ceph osd pool set <pool-name> csum_type <algorithm>
``bluestore_csum_type``
:Description:The default checksum algorithm to use.