MemTableIterator not to reference Memtable
MemTableIterator not to reference Memtable

Summary: In one of the perf, I shows 10%-25% CPU costs of MemTableIterator.Seek(), when doing dynamic prefix seek, are spent on checking whether we need to do bloom filter check or finding out the prefix extractor. Seems that  more level of pointer checking makes CPU cache miss more likely. This patch makes things slightly simpler by copying pointer of bloom of prefix extractor into the iterator.

Test Plan: make all check

Reviewers: haobo, ljin

Reviewed By: ljin

CC: igor, dhruba, yhchiang, leveldb

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

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