這周三因?yàn)閑s中的一個(gè)索引需要添加字段,然后需要重新構(gòu)建新索引,線上數(shù)據(jù)量大概6千萬,線上es就一臺,你么看錯(cuò)就一臺。配置就不曉得了。然后就一級bug了。趁著周末看下reindex源碼。
es2.4 reindex官方地址,reindex是底層依靠scroll,查看了文檔提供性能也就size可用了,默認(rèn)是1000。先說下我在測試環(huán)境的測試結(jié)果,阿里云2核4g一臺,總條數(shù)1w.測試條件如下,分別測試5次
1.默認(rèn)size(1000)?reindex時(shí)間不超過7s
2.設(shè)置size為3000,reindex時(shí)間不低于7s...
然后還有其他條數(shù)1200 1800 2000等等時(shí)間都在7s左右,mmp,這配置真特么爛,老大在阿里申請測試機(jī)器,一次機(jī)器數(shù)150臺,64core機(jī)器,人與人的差距,這配置,這訪問量,還是得去大公司。繼續(xù)說源碼。


剛畢業(yè)那會框架用的是ssh,控制層命名就是以action為后綴,這里我并不知道是不是同一個(gè)意思,但是處理確實(shí)是從action層發(fā)起。核心過程在AbstractAsyncBulkByScrollAction.start方法,我是根據(jù)ReindexBasicTests.testCopyMany方法debug的,核心代碼沒有多少行,然后又好幾個(gè)類都沒弄明白具體作用,也懶得弄明白了。

上圖是不是很熟悉了,在這里說下個(gè)問題上圖中有BulkIndexByScrollResponse的類但并沒有BulkIndexByScrollRequest,我不評價(jià)這樣設(shè)計(jì)好還是壞,只是覺得讓人很疑惑,我在看lucence7.0.1源碼的時(shí)候還看到一個(gè)判斷真假的代碼if(xx == false)....完結(jié)!