国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

mongodbsharding原理學習與試用(六)之chunk手動切割

來源:懂視網 責編:小采 時間:2020-11-09 09:45:15
文檔

mongodbsharding原理學習與試用(六)之chunk手動切割

mongodbsharding原理學習與試用(六)之chunk手動切割:1. 手動切割chunk主要是兩個函數splitAt(fullname,middle)與splitFind(fullname,find). fullname指定哪個庫的哪個集合。middle與find都是條件,代表你想手動切割哪個chunk. 需要注意的是條件必須包含片鍵,不然報錯,如下圖。 這兩個函數不同的是: 1.
推薦度:
導讀mongodbsharding原理學習與試用(六)之chunk手動切割:1. 手動切割chunk主要是兩個函數splitAt(fullname,middle)與splitFind(fullname,find). fullname指定哪個庫的哪個集合。middle與find都是條件,代表你想手動切割哪個chunk. 需要注意的是條件必須包含片鍵,不然報錯,如下圖。 這兩個函數不同的是: 1.

1. 手動切割chunk主要是兩個函數splitAt(fullname,middle)與splitFind(fullname,find). fullname指定哪個庫的哪個集合。middle與find都是條件,代表你想手動切割哪個chunk. 需要注意的是條件必須包含片鍵,不然報錯,如下圖。 這兩個函數不同的是: 1.1 spli

1. 手動切割chunk主要是兩個函數splitAt(fullname,middle)與splitFind(fullname,find). fullname指定哪個庫的哪個集合。middle與find都是條件,代表你想手動切割哪個chunk. 需要注意的是條件必須包含片鍵,不然報錯,如下圖。

  

這兩個函數不同的是:

 1.1 splitAt利用middle這個條件找到對應的chunk,并以這個條件所查詢到的第一條結果為分隔點,把原先的chunk分隔成兩部分。

  (一)在手動切隔之前,sar總共有三個塊。如下圖

  

  (二)執行切割命令

  

  之后chunks的分布如下圖

  

  可以看出,執行之后,將第二個chunk,香港虛擬主機,按照{_id:ObjectId("50dc0790525e4314024b79d0")}這個值為分隔點分隔成第2,3兩塊。

 1.2 函數splitFind,官網解釋是將找到的第一個chunk分隔成size大小相等的兩個chunk.但是我在測試過程中發現并不是這么回事。版本是2.2.2

  (一)準備數據。向一個新集合插入250W條有規律的數據。如下圖。字段name的值末尾是一個自增的數字。

  

 ?。ǘ祿迦胫?,集合的分塊情況如下圖。

  

 ?。ㄈ┪覀兛梢钥聪拢谝粔K最后一條數據是什么。

  

  (四)可以看到,第一塊最后一條數據的name值是"habc780335".也就是說第一塊有78W條數據之多?,F在將第一塊分成兩塊。使用splitFind()函數。

  

 ?。ㄎ澹﹏ame值為"habc19"肯定是在第一塊中。因為按官網所說,應該將第一塊分成size大小相等的兩塊??蓪嶋H上呢?

  

  (六)如上圖,的確是將原先的第一塊分成了兩塊。第二塊最后一條的ID值就是原先第一塊最后一條的ID值。但第1,2這兩塊size大小是相等的嗎?如下圖。

  

  (七)如上圖。第一塊的最后一條數據實際上就是第一條數據。這說明第一塊實際上只有一條數據。很顯然這兩塊的size是不相等的。真實情況究竟是什么呢 ???

2. 今天在將一個已被移除的shard重新添加進來的時候,出現了問題。特記錄下來。

  問題:將一個shard移除后,我沒有停掉這個shard。后來為了測試我又把它添加進來。db.runCommand({addshard:"hostname:port"}); 操作提示成功。也開始了遷移數據。等遷移完成之后,我進行查詢操作,發現操作失敗。錯誤提示是“gotshardname different than what i had before” 。如下圖

  錯誤提示是說,這個shard之前添加進來的時候name被賦值為shard0001,現在再次添加進來后name被賦值為shard0000.當進行查詢操作時發現這前后name不一樣。所以報錯。我比較困惑的是,它是怎么知道這個shard之前的name值的。我找遍config庫下面的所有collection.都沒有發現有地方存儲shard之前的name值。僅僅只有shards這個集合存儲相關數據。但是存儲的都是此時此刻各個shard的情況。問了渡娘與google.沒有什么收獲。后來沒辦法,我想把這個shard再一次的remove掉后再添加進來??梢圆恍?。

  

  雖然操作提示是成功的,但是過了很久我發現數據根本就沒有遷移。查詢日志,發現了錯誤提示。

  

  錯誤提示仍是name值前后不一樣。后來在同事的提示下,我將這個shard重啟,重啟后發現問題解決了。

  分析:每個添加進去的shard的name值不僅在config庫存儲,同時各個shard也都存儲著這個值。不同的是,config庫的數據是落地的,但各個shard是緩存起來的。被移除的shard如果不重啟,那么這個name值就一直存在。有一點我不理解的是,既然name值存在,并且再次添加后name不一樣卻能添加成功,并且數據也都遷移過來了,香港虛擬主機,只是查詢操作的時候才報錯。難道遷移數據與查詢數據使用的是不同地方的name值? 有一點需要注意的是,雖然查詢操作失敗,但寫操作能夠成功。

  如何避免:db.runCommand({addshard:"hostname:port",name:"xxx"}) VS db,runCommand({addshard:"hostname:port"})。 在addshard的時候,我沒有指定name值,系統就使用默認值從shard0000開始遞增。因此,在addshard時一定要手動指定name值。

  

  

  

,服務器空間

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

mongodbsharding原理學習與試用(六)之chunk手動切割

mongodbsharding原理學習與試用(六)之chunk手動切割:1. 手動切割chunk主要是兩個函數splitAt(fullname,middle)與splitFind(fullname,find). fullname指定哪個庫的哪個集合。middle與find都是條件,代表你想手動切割哪個chunk. 需要注意的是條件必須包含片鍵,不然報錯,如下圖。 這兩個函數不同的是: 1.
推薦度:
標簽: 原理 學習 試用
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 97人人插| 久久一精品 | 亚洲国产成人久久一区久久 | 精品国产香蕉 | 国产精品国产精品国产专区不卡 | 国产一区三区二区中文在线 | 在线观看欧美 | 视频精品一区二区 | 日韩欧美第一页 | 午夜精品一区二区三区免费视频 | 国产精品免费视频网站 | 亚洲国产成人久久99精品 | 熟年中出交尾六十路七十路 | 在线观看视频国产 | 亚洲高清在线视频 | 日韩欧美精品一区二区 | 国产第八页 | 国产视频一二三区 | 国内精品伊人久久久久妇 | 亚洲专区欧美专区 | 国产欧美成人一区二区三区 | 久久久青青久久国产精品 | 国产一级在线 | a一区二区三区视频 | 国产精品特级毛片一区二区三区 | 日韩欧美视频一区 | 日韩电影第一页 | 欧洲色图亚洲色图 | 悠悠色综合 | 另类欧美日韩 | 欧美激情视频一区二区 | 黑人一区二区三区中文字幕 | 国产欧美在线观看视频 | 精品欧美一区二区三区 | 黄色一级视频免费看 | 久久精品一区二区影院 | 欧洲综合网 | 欧美日韩不卡在线 | 国产精品高清视亚洲一区二区 | 男女全黄一级带免费 | 在线免费视频国产 |