Hi mark,

I think this maybe related to 'verify_checksums' config option ,when 
ReadOptions is initialized, default this option is  true , all data read from 
underlying storage will be verified against corresponding checksums,  however,  
this option cannot be configured in wip-rocksdb branch. I will modify code to 
make this option configurable .

Cheers,
xinxin

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Mark Nelson
Sent: Thursday, July 24, 2014 7:14 AM
To: [email protected]
Subject: First attempt at rocksdb monitor store stress testing

Hi Guys,

So I've been interested lately in leveldb 99th percentile latency (and the 
amount of write amplification we are seeing) with leveldb. Joao mentioned he 
has written a tool called mon-store-stress in wip-leveldb-misc to try to 
provide a means to roughly guess at what's happening on the mons under heavy 
load.  I cherry-picked it over to wip-rocksdb and after a couple of hacks was 
able to get everything built and running with some basic tests.  There was 
little tuning done and I don't know how realistic this workload is, so don't 
assume this means anything yet, but some initial results are here:

http://nhm.ceph.com/mon-store-stress/First%20Attempt.pdf

Command that was used to run the tests:

./ceph-test-mon-store-stress --mon-keyvaluedb <leveldb|rocksdb> 
--write-min-size 50K --write-max-size 2M --percent-write 70 --percent-read 30 
--keep-state --test-seed 1406137270 --stop-at 5000 foo

The most interesting bit right now is that rocksdb seems to be hanging in the 
middle of the test (left it running for several hours).  CPU usage on one core 
was quite high during the hang.  Profiling using perf with dwarf symbols I see:

-  49.14%  ceph-test-mon-s  ceph-test-mon-store-stress  [.] unsigned int 
rocksdb::crc32c::ExtendImpl<&rocksdb::crc32c::Fast_CRC32>(unsigned int, char 
const*, unsigned long)
    - unsigned int
rocksdb::crc32c::ExtendImpl<&rocksdb::crc32c::Fast_CRC32>(unsigned int, char 
const*, unsigned long)
         51.70% rocksdb::ReadBlockContents(rocksdb::RandomAccessFile*,
rocksdb::Footer const&, rocksdb::ReadOptions const&, rocksdb::BlockHandle 
const&, rocksdb::BlockContents*, rocksdb::Env*, bool)
         48.30%
rocksdb::BlockBasedTableBuilder::WriteRawBlock(rocksdb::Slice const&, 
rocksdb::CompressionType, rocksdb::BlockHandle*)

Not sure what's going on yet, may need to try to enable logging/debugging in 
rocksdb.  Thoughts/Suggestions welcome. :)

Mark
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the 
body of a message to [email protected] More majordomo info at  
http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to