Aerospike default.dat 文件无故巨大

Aerospike default.dat file is huge for no reason

我有一个 运行 Aerospike 服务器,单个集合中有大约 36,000 条记录。我所存储的只是几个用于布景的箱子。我已将我的 aerospike.conf 文件配置为将数据也保存在磁盘上:

namespace default {
        replication-factor 2
        memory-size 4G
        default-ttl 0

        storage-engine device {
                file /opt/aerospike/data/default.dat
                filesize 2T
                data-in-memory true
        }
}

我遇到的问题是我的 /opt/aerospike/data/default.dat 文件在我的系统中列为大约 2TB:

/opt/aerospike/data# ls -lh
total 10M
-rw------- 1 root root 2.0T Jun  5 19:01 default.dat

我的问题是:

  1. 当我目前在 Aerospike 中使用的数据很少时,为什么这个 .dat 文件必须是 2TB?

  2. 我的硬盘驱动器限制是 78GB,为什么我的 Ubuntu 系统不给我驱动器不足 space 错误?

系统盘space看起来不错:

df -h --total
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       79G  4.2G   72G   6% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           395M  424K  395M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
total            83G  4.2G   76G   6% -

有人有什么想法吗?

嗯,

A​​erospike 使用稀疏文件(或某种)来存储其文件存储。 因此,当您在命名空间配置中指定 filesize 2T 时,Aerospike 将创建一个您看到的大小为 2TB 的稀疏文件。

http://en.wikipedia.org/wiki/Sparse_file

所以,它只是一个包含一些元数据的文件,而不是真正的 2TB 数据。一旦文件内容实际填满了您的磁盘,您将在您的系统和 Aerospike 中看到常见的磁盘已满错误。