[Add a second kind of verification to db_stress
[Add a second kind of verification to db_stress

Summary:
Currently the test tracks all writes in memory and
uses it for verification at the end. This has 4 problems:
(a) It needs mutex for each write to ensure in-memory update
and leveldb update are done atomically. This slows down the
benchmark.
(b) Verification phase at the end is time consuming as well
(c) Does not test batch writes or snapshots
(d) We cannot kill the test and restart multiple times in a
loop because in-memory state will be lost.

I am adding a FLAGS_multi that does MultiGet/MultiPut/MultiDelete
instead of get/put/delete to get/put/delete a group of related
keys with same values atomically. Every get retrieves the group
of keys and checks that their values are same. This does not have
the above problems but the downside is that it does less amount
of validation than the other approach.

Test Plan:
This whole this is a test! Here is a small run. I am doing larger run now.

[nponnekanti@dev902 /data/users/nponnekanti/rocksdb] ./db_stress --ops_per_thread=10000 --multi=1 --ops_per_key=25
LevelDB version     : 1.5
Number of threads   : 32
Ops per thread      : 10000
Read percentage     : 10
Delete percentage   : 30
Max key             : 2147483648
Num times DB reopens: 10
Num keys per lock   : 4
Compression         : snappy
------------------------------------------------
Creating 536870912 locks
2013/02/20-16:59:32  Starting database operations
Created bg thread 0x7f9ebcfff700
2013/02/20-16:59:37  Reopening database for the 1th time
2013/02/20-16:59:46  Reopening database for the 2th time
2013/02/20-16:59:57  Reopening database for the 3th time
2013/02/20-17:00:11  Reopening database for the 4th time
2013/02/20-17:00:25  Reopening database for the 5th time
2013/02/20-17:00:36  Reopening database for the 6th time
2013/02/20-17:00:47  Reopening database for the 7th time
2013/02/20-17:00:59  Reopening database for the 8th time
2013/02/20-17:01:10  Reopening database for the 9th time
2013/02/20-17:01:20  Reopening database for the 10th time
2013/02/20-17:01:31  Reopening database for the 11th time
2013/02/20-17:01:31  Starting verification
Stress Test : 109.125 micros/op 22191 ops/sec
            : Wrote 0.00 MB (0.23 MB/sec) (59% of 32 ops)
            : Deleted 10 times
2013/02/20-17:01:31  Verification successful

Revert Plan: OK

Task ID: #

Reviewers: dhruba, emayanke

Reviewed By: emayanke

CC: leveldb

Differential Revision: https://reviews.facebook.net/D8733

wat-ze-hex/rocksdb,wenduo/rocksdb,bbiao/rocksdb,fengshao0907/rocksdb,geraldoandradee/rocksdb,amyvmiwei/rocksdb,wat-ze-hex/rocksdb,rDSN-Projects/rocksdb.replicated,skunkwerks/rocksdb,ylong/rocksdb,caijieming-baidu/rocksdb,SunguckLee/RocksDB,hobinyoon/rocksdb,SunguckLee/RocksDB,vmx/rocksdb,jalexanderqed/rocksdb,NickCis/rocksdb,fengshao0907/rocksdb,anagav/rocksdb,wat-ze-hex/rocksdb,kaschaeffer/rocksdb,flabby/rocksdb,jalexanderqed/rocksdb,facebook/rocksdb,facebook/rocksdb,fengshao0907/rocksdb,anagav/rocksdb,wskplho/rocksdb,Andymic/rocksdb,jalexanderqed/rocksdb,mbarbon/rocksdb,Vaisman/rocksdb,SunguckLee/RocksDB,siddhartharay007/rocksdb,tizzybec/rocksdb,norton/rocksdb,wskplho/rocksdb,makelivedotnet/rocksdb,wenduo/rocksdb,geraldoandradee/rocksdb,makelivedotnet/rocksdb,NickCis/rocksdb,dkorolev/rocksdb,biddyweb/rocksdb,anagav/rocksdb,jalexanderqed/rocksdb,IMCG/RcoksDB,wat-ze-hex/rocksdb,wat-ze-hex/rocksdb,vmx/rocksdb,amyvmiwei/rocksdb,RyanTech/rocksdb,ryneli/rocksdb,rDSN-Projects/rocksdb.replicated,temicai/rocksdb,JackLian/rocksdb,wenduo/rocksdb,alihalabyah/rocksdb,zhangpng/rocksdb,JohnPJenkins/rocksdb,bbiao/rocksdb,geraldoandradee/rocksdb,vashstorm/rocksdb,fengshao0907/rocksdb,vashstorm/rocksdb,ryneli/rocksdb,skunkwerks/rocksdb,makelivedotnet/rocksdb,IMCG/RcoksDB,tschottdorf/rocksdb,wlqGit/rocksdb,dkorolev/rocksdb,bbiao/rocksdb,facebook/rocksdb,norton/rocksdb,ryneli/rocksdb,anagav/rocksdb,ryneli/rocksdb,mbarbon/rocksdb,caijieming-baidu/rocksdb,bbiao/rocksdb,facebook/rocksdb,tsheasha/rocksdb,wlqGit/rocksdb,SunguckLee/RocksDB,mbarbon/rocksdb,RyanTech/rocksdb,tschottdorf/rocksdb,tschottdorf/rocksdb,JackLian/rocksdb,biddyweb/rocksdb,IMCG/RcoksDB,hobinyoon/rocksdb,zhangpng/rocksdb,mbarbon/rocksdb,hobinyoon/rocksdb,alihalabyah/rocksdb,Applied-Duality/rocksdb,tizzybec/rocksdb,sorphi/rocksdb,ylong/rocksdb,luckywhu/rocksdb,temicai/rocksdb,msb-at-yahoo/rocksdb,rDSN-Projects/rocksdb.replicated,siddhartharay007/rocksdb,tschottdorf/rocksdb,JohnPJenkins/rocksdb,JohnPJenkins/rocksdb,bbiao/rocksdb,skunkwerks/rocksdb,ylong/rocksdb,makelivedotnet/rocksdb,skunkwerks/rocksdb,biddyweb/rocksdb,tschottdorf/rocksdb,RyanTech/rocksdb,siddhartharay007/rocksdb,alihalabyah/rocksdb,skunkwerks/rocksdb,luckywhu/rocksdb,JackLian/rocksdb,vashstorm/rocksdb,fengshao0907/rocksdb,IMCG/RcoksDB,flabby/rocksdb,kaschaeffer/rocksdb,tizzybec/rocksdb,dkorolev/rocksdb,flabby/rocksdb,hobinyoon/rocksdb,tsheasha/rocksdb,biddyweb/rocksdb,lgscofield/rocksdb,anagav/rocksdb,Andymic/rocksdb,amyvmiwei/rocksdb,vashstorm/rocksdb,temicai/rocksdb,tschottdorf/rocksdb,caijieming-baidu/rocksdb,JoeWoo/rocksdb,NickCis/rocksdb,alihalabyah/rocksdb,amyvmiwei/rocksdb,SunguckLee/RocksDB,skunkwerks/rocksdb,amyvmiwei/rocksdb,NickCis/rocksdb,anagav/rocksdb,kaschaeffer/rocksdb,kaschaeffer/rocksdb,Vaisman/rocksdb,hobinyoon/rocksdb,flabby/rocksdb,JoeWoo/rocksdb,zhangpng/rocksdb,wenduo/rocksdb,lgscofield/rocksdb,virtdb/rocksdb,facebook/rocksdb,biddyweb/rocksdb,Vaisman/rocksdb,OverlordQ/rocksdb,dkorolev/rocksdb,norton/rocksdb,wskplho/rocksdb,virtdb/rocksdb,SunguckLee/RocksDB,JackLian/rocksdb,ryneli/rocksdb,SunguckLee/RocksDB,sorphi/rocksdb,jalexanderqed/rocksdb,makelivedotnet/rocksdb,alihalabyah/rocksdb,virtdb/rocksdb,RyanTech/rocksdb,luckywhu/rocksdb,wenduo/rocksdb,JoeWoo/rocksdb,NickCis/rocksdb,Applied-Duality/rocksdb,sorphi/rocksdb,zhangpng/rocksdb,Vaisman/rocksdb,fengshao0907/rocksdb,amyvmiwei/rocksdb,tizzybec/rocksdb,Applied-Duality/rocksdb,lgscofield/rocksdb,makelivedotnet/rocksdb,tsheasha/rocksdb,flabby/rocksdb,wskplho/rocksdb,IMCG/RcoksDB,Applied-Duality/rocksdb,wat-ze-hex/rocksdb,RyanTech/rocksdb,geraldoandradee/rocksdb,amyvmiwei/rocksdb,zhangpng/rocksdb,ylong/rocksdb,temicai/rocksdb,vashstorm/rocksdb,Applied-Duality/rocksdb,siddhartharay007/rocksdb,facebook/rocksdb,hobinyoon/rocksdb,wlqGit/rocksdb,RyanTech/rocksdb,sorphi/rocksdb,caijieming-baidu/rocksdb,jalexanderqed/rocksdb,SunguckLee/RocksDB,Andymic/rocksdb,msb-at-yahoo/rocksdb,JackLian/rocksdb,JackLian/rocksdb,norton/rocksdb,lgscofield/rocksdb,Applied-Duality/rocksdb,Applied-Duality/rocksdb,wenduo/rocksdb,JohnPJenkins/rocksdb,caijieming-baidu/rocksdb,anagav/rocksdb,JohnPJenkins/rocksdb,OverlordQ/rocksdb,zhangpng/rocksdb,mbarbon/rocksdb,wlqGit/rocksdb,sorphi/rocksdb,rDSN-Projects/rocksdb.replicated,vashstorm/rocksdb,OverlordQ/rocksdb,facebook/rocksdb,alihalabyah/rocksdb,sorphi/rocksdb,temicai/rocksdb,kaschaeffer/rocksdb,zhangpng/rocksdb,skunkwerks/rocksdb,norton/rocksdb,luckywhu/rocksdb,tsheasha/rocksdb,wat-ze-hex/rocksdb,tizzybec/rocksdb,luckywhu/rocksdb,dkorolev/rocksdb,Vaisman/rocksdb,lgscofield/rocksdb,hobinyoon/rocksdb,tsheasha/rocksdb,Andymic/rocksdb,caijieming-baidu/rocksdb,wlqGit/rocksdb,OverlordQ/rocksdb,rDSN-Projects/rocksdb.replicated,bbiao/rocksdb,msb-at-yahoo/rocksdb,msb-at-yahoo/rocksdb,virtdb/rocksdb,lgscofield/rocksdb,Vaisman/rocksdb,virtdb/rocksdb,lgscofield/rocksdb,tsheasha/rocksdb,wskplho/rocksdb,mbarbon/rocksdb,vmx/rocksdb,wenduo/rocksdb,JohnPJenkins/rocksdb,bbiao/rocksdb,vmx/rocksdb,vmx/rocksdb,dkorolev/rocksdb,vmx/rocksdb,virtdb/rocksdb,OverlordQ/rocksdb,OverlordQ/rocksdb,JoeWoo/rocksdb,vmx/rocksdb,tizzybec/rocksdb,makelivedotnet/rocksdb,wlqGit/rocksdb,ryneli/rocksdb,tsheasha/rocksdb,jalexanderqed/rocksdb,msb-at-yahoo/rocksdb,JoeWoo/rocksdb,biddyweb/rocksdb,NickCis/rocksdb,geraldoandradee/rocksdb,kaschaeffer/rocksdb,ylong/rocksdb,siddhartharay007/rocksdb,vmx/rocksdb,siddhartharay007/rocksdb,Andymic/rocksdb,ylong/rocksdb,norton/rocksdb,mbarbon/rocksdb,Andymic/rocksdb,siddhartharay007/rocksdb,wskplho/rocksdb,caijieming-baidu/rocksdb,flabby/rocksdb,wenduo/rocksdb,temicai/rocksdb,biddyweb/rocksdb,facebook/rocksdb,rDSN-Projects/rocksdb.replicated,Andymic/rocksdb,luckywhu/rocksdb,JackLian/rocksdb,fengshao0907/rocksdb,dkorolev/rocksdb,vashstorm/rocksdb,bbiao/rocksdb,wlqGit/rocksdb,msb-at-yahoo/rocksdb,wskplho/rocksdb,JohnPJenkins/rocksdb,kaschaeffer/rocksdb,ylong/rocksdb,JoeWoo/rocksdb,virtdb/rocksdb,wat-ze-hex/rocksdb,JoeWoo/rocksdb,tsheasha/rocksdb,tizzybec/rocksdb,norton/rocksdb,hobinyoon/rocksdb,RyanTech/rocksdb,IMCG/RcoksDB,rDSN-Projects/rocksdb.replicated,luckywhu/rocksdb,Vaisman/rocksdb,OverlordQ/rocksdb,sorphi/rocksdb,ryneli/rocksdb,norton/rocksdb,alihalabyah/rocksdb,Andymic/rocksdb,geraldoandradee/rocksdb,temicai/rocksdb,flabby/rocksdb,IMCG/RcoksDB,geraldoandradee/rocksdb,NickCis/rocksdb