![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 全世界最大的硬碟..... 應該放什麼好呢 ?!
(https://www.pcdvd.com.tw/showthread.php?t=842121)
|
---|
不要再想些有的沒的
verycd 的做法你可以參考 至少檔案有一個備份 可行的話早就有人做 你的想法我已經聽好幾個人說過了 要做也不是你做 google會去做 光是版權問題就搞死人 |
引用:
這個20倍/5倍的假設是可以調整的. 你覺得現在需要針對這個作討論嗎 ? 其次, 根據不同的上線機器數量, 而完檔率的假設, 這邊有個模擬程式, 是針對不同機器數量以及資料內容 作假設, 麻煩你參考. http://forum.dodopie.com/viewthread.php?tid=2387 程式碼片段: (模擬單一台電腦的容量/上下線狀態) 代碼:
public class Node { int nodeNo; boolean active=false; int nextActiveTime=0; // minute; ArrayList <String>pieces=new ArrayList<String>(); int curActiveTime=0; // how many minute I left; Random r = new Random(); int nodeSpeed=2; // mb/Min StaticsSimulator staticx=null; public Node(StaticsSimulator x) { staticx=x; this.nodeSpeed = x.nodeSpeed; } /** * initialize my active time/status */ public void init() { nextActiveTime = r.nextInt(avgSleepTime); } public ArrayList<String> getPieces() { return pieces; } public void tick() { nextActiveTime-=1; curActiveTime-=1; updateStatus(); if (active && pieces.size()<1) System.out.println("What ?! I am empty:" + pieces.size()); } public void updateStatus() { double rx = r.nextDouble(); if (rx<staticx.nodeCrashRate) { forceDeActiveX(); if (active) forceDeActive(); // node crashed. pieces.clear(); staticx.failNodeCnt++; active=false; calcNextActive(); return; } if (curActiveTime==0){ active=false; forceDeActive(); }else if (nextActiveTime==0){ forceActive(); } if (active) { // check my pieces. purge too onLineHealth pieces // get less healthy pieces from other peer. for (int i=0; i< nodeSpeed;i++) { String myMostHealthPiece = ""; if (pieces.size() >=nodeCapability){ myMostHealthPiece=getMyMostHealthPiece(); // don't do anything if my piece is too unhealthy. PieceHealth ph = totalPieces.get(myMostHealthPiece); if (ph.getGlobalHealth()<=1){ myMostHealthPiece=""; continue; } } String leastHealthPiece=staticx.getLeastHealthPiece(pieces); if (leastHealthPiece!=null && leastHealthPiece.length()>0){ if (myMostHealthPiece!=""){ if (pieces.size()>=nodeCapability){ pieces.remove(myMostHealthPiece); staticx.unRegPiece(myMostHealthPiece); staticx.delPiece(myMostHealthPiece); } } pieces.add(leastHealthPiece); staticx.regPiece(leastHealthPiece); staticx.addPiece(leastHealthPiece); }else { System.out.println("XD. no Least Health Piece exists ?"); } } } } /** * * @return */ private String getMyMostHealthPiece() { String ret=""; int health=-1; for (String x:pieces) { PieceHealth ph=staticx.totalPieces.get(x); if (ph.getOnLineHealth()>health) { ret = x; health=ph.getOnLineHealth(); } } return ret; } private void forceDeActiveX() { for (String i:pieces) { staticx.delPiece(i); } } private void forceDeActive() { for (String i:pieces) { staticx.unRegPiece(i); } } /** * * @param pieceNo * @return -1 = no removal. */ public String addPiece(String pieceNo) { String removed=""; if (pieces.size()>= nodeCapability) { removed=pieces.remove(0); } pieces.add(pieceNo); return removed; } public void forceActive() { active=true; calcNextActive(); calcCurActive(); // register my pieces for (String i:pieces) { staticx.regPiece(i); } } public void calcNextActive() { while (nextActiveTime <=0){ double d=r.nextGaussian(); nextActiveTime = avgSleepTime + (int)(d*avgSleepTime/4); } } public void calcCurActive() { double d=r.nextGaussian(); curActiveTime = activeDuration + (int)(d*activeDuration/4); } public boolean isActive() { return active; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("Active:" + active); sb.append("\nPieces:"); for (String pie:pieces) { sb.append(pie + "\t"); } sb.append("\n"); return sb.toString(); } } |
引用:
嗯. 目前這是另外一個隱憂, 版權的問題. 目前的態度是 "個人空間, 除非使用者自己揭露給大眾知道 (釋放連結), 否則不會被觸碰" 但是的確還是可能會有法律爭議. 至於 Google 的作法叫做 "MapReduce", 主要是針對 "不關機的伺服器群" 而設計的. 跟我們 "不確定性散步" 的使用者有差別. 引用:
根據我們的模擬模型. 目前主要是以 "平均一台機器 24 小時可能開機一小時" 作為模擬. 並沒有強迫使用者不關機啊 ^^; |
多年前....在下跟三五好友想說弄個網路分享,就使用當時很紅的
SoftEth,一台Server當Router + HUB然後其他人加入這個虛 擬的LAN,之後只要電腦開簡單的檔案分享區所有人都可以存取, 這個互通有無的方式最後甚至變成P2P大家分開抓不同的東西, 在透過這個互相分享,直到今日這個系統依然存在....缺的只是 更大的上傳頻寬而已XD,重點是這個系統幾乎可以穿過所有防火 牆(除非連80port這些都關光光)而且封包全部加密,別人想連到 這個虛擬LAN還需要有我們發的憑證才有辦法,安全性一流.... 至於樓主您想做的東西基本上還不如自己架一台eMule Server然 後做好控管來的容易的多,頂多再自己改一些東西....供參考! |
這個早就有阿...
對岸的納米盤就是這樣阿,只是空間較小 且無法搜尋儲存內容.. 只要改進搜尋就跟你說得差不多了 |
引用:
版權問題一定是大問題, 至於說連結不會給人散發出去, 就更加是很傻很天真了。 無心之失的不說, 如果我是釣魚的, 我只要加入樓主的社群, 再上傳一套有版權的電影, 然後將連結散發出去, 樓主不知道準備了多大的律師團隊? :D |
我覺得技術性的問題的確是沒那麼重要,反而應該先討論的是主要的訴求應用在哪、可不可行。
1. 共享好康:這個目前很多系統運作的很好了,樓主的idea似乎也沒有特別的優勢。 2. 網路硬碟:我把這項跟「共享好康」區隔開來,在此項指的就是重複性不大的資料,顯然這會對空間利用率形成很大壓力,所以樓主的idea也不適合。 3. 異地備援:沒哪個企業機關敢用的,因為既然是重要的資料,誰敢放在不知哪個阿貓阿狗的硬碟上,這不是有沒有加密的問題,而是沒有哪個企業願意允許別人任意存取它的機密資料(即使別人"應該""大概""通常""也許"解不開)。 此外,如果是"真正的"分散處理 (免中央伺服器),那就很難實現分級服務收費機制與有效的搜尋了,而如果還是存在某種程度的中央伺服器,那就還是要面對運作成本與法律的問題。 我不是要潑樓主冷水喔,我覺得任何idea在初期一定是很粗糙的,需要很多的琢磨才會比較成熟可行,這很正常。但是如果沒有先思慮週延就貿然投入,邊作邊修正,最後可能就會作白工。 |
引用:
不..打散開來還是5份20份.. 舉個例子你可能會比較清楚.. 假設某個檔案片段被 A B C D E 五台電腦持有..而有一百個人需要這部份.. 在傳統的 p2p 模式中.. F G H I J 等另五台電腦抓完以後.. 這段片段可以轉為上傳..所以剩下的95人可以使用 A~J 電腦的上傳頻寬抓這段片段.. 但在你的系統中..因為不能讓檔案重複太多份.. 所以 F~J 的電腦抓完後不會放到分享區..不會提供上傳.. 剩下的 95 人還是只能用 A~E 的上傳頻寬抓檔.. 請問是 A~E 的上傳頻寬多呢?還是 A~J 的上傳頻寬多呢? 你被表面上的千份迷惑住了.. 實際上在你的系統網路上檔案實際上只有5份20份.. 雖然可以分散到各機器.. 但實際上會遭受到持有檔案機器的總上傳頻寬限制 所以你的系統註定比 p2p 慢或是同速.. |
像樓上所說,人很難管理
到時一定會有幾個自私的傢伙 破解.放毒.放假檔.惡搞通通來 :think: |
看壞的人居多.....
不過...樓上有人提出一個看法... 用在辦公室環境....這就很好用了... 我也建議這個方向 1.頻寬至少是100mb 2.有資料備份的需求 3.上班時間保證都開機 4.空閒磁區都有... 5.公司得花錢買軟體...不買告他...個人會找破解檔...(簡單說...你會有錢賺) 大於5個人的公司都會有資料備份的需求...一般是買NAS... 低價有RAID1的....也要10K左右...兩顆1T做RAID 1..只能用1T 你的軟體只要.不能跨網段...儲存在各磁碟機的資料加密 限制人數分一般版10人(3K)跟PRO版不限人數(5K).... 能設定備份率跟分享容量...(會開一個虛擬磁碟) 假設辦公室有20人 每人出20G就400G 扣掉一半的備份率...也有200G能用 (這樣..就不用買NAS了...) A電腦掛了...MIS換一台...裝上你的軟體.. 30分鐘...文件匣,MAIL又通通跑回來了 期間已經能正常工作了... 平常不用多花時間去備份.... 很有機會賺錢... 至少我會跟我主管提要不要買... 之前公司的備份HD掛了....花兩萬去救.... 有這軟體就不用買NAS了... |
所有的時間均為GMT +8。 現在的時間是02:04 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。