2014-08-27 12 views

Odpowiedz

6

Codewisely, można użyć db->GetProperty("rocksdb.estimate-num-keys", &num) aby uzyskać szacunkową liczbę kluczy przechowywanych w rocksdb.

Inną opcją jest użycie narzędzia sst_dump z argumentem --show_properties w celu uzyskania liczby wpisów, chociaż wynik byłby zależny od pliku. Na przykład, następujące polecenie pokaże właściwości każdego pliku SST pod podanym katalogu rocksdb:

sst_dump --file=/tmp/rocksdbtest-691931916/dbbench --show_properties --command=none 

A oto przykładowe dane wyjściowe:

Process /tmp/rocksdbtest-691931916/dbbench/000005.sst 
Sst file format: block-based 
Table Properties: 
------------------------------ 
    # data blocks: 845 
    # entries: 27857 
    raw key size: 668568 
    raw average key size: 24.000000 
    raw value size: 2785700 
    raw average value size: 100.000000 
    data block size: 3381885 
    index block size: 28473 
    filter block size: 0 
    (estimated) table size: 3410358 
    filter policy name: N/A 
    # deleted keys: 0 
Process /tmp/rocksdbtest-691931916/dbbench/000008.sst 
Sst file format: block-based 
Table Properties: 
------------------------------ 
    # data blocks: 845 
    # entries: 27880 
    raw key size: 669120 
... 

Połącz z niektórych poleceń powłoki, będzie można aby uzyskać całkowitą liczbę wpisów:

sst_dump --file=/tmp/rocksdbtest-691931916/dbbench --show_properties --command=none | grep entries | cut -c 14- | awk '{x+=$0}END{print "total number of entries: " x}' 

A to wygeneruje następujący wynik:

total number of entries: 111507