![]() |
||
|
Amateur Member
![]() 加入日期: Nov 2008
文章: 44
|
不要再想些有的沒的
verycd 的做法你可以參考 至少檔案有一個備份 可行的話早就有人做 你的想法我已經聽好幾個人說過了 要做也不是你做 google會去做 光是版權問題就搞死人 |
|||||||
|
|
|
Master Member
![]() ![]() ![]() ![]() 加入日期: Dec 2001
文章: 1,747
|
引用:
這個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();
}
}
__________________
免費免註冊薪資行情查詢 - 人力銀行最討厭的網站... |
|||
|
|
|
Master Member
![]() ![]() ![]() ![]() 加入日期: Dec 2001
文章: 1,747
|
引用:
嗯. 目前這是另外一個隱憂, 版權的問題. 目前的態度是 "個人空間, 除非使用者自己揭露給大眾知道 (釋放連結), 否則不會被觸碰" 但是的確還是可能會有法律爭議. 至於 Google 的作法叫做 "MapReduce", 主要是針對 "不關機的伺服器群" 而設計的. 跟我們 "不確定性散步" 的使用者有差別. 引用:
根據我們的模擬模型. 目前主要是以 "平均一台機器 24 小時可能開機一小時" 作為模擬. 並沒有強迫使用者不關機啊 ^^;
__________________
免費免註冊薪資行情查詢 - 人力銀行最討厭的網站... 此文章於 2009-03-04 02:47 AM 被 chlang 編輯. |
||
|
|
|
Master Member
![]() ![]() ![]() ![]() 加入日期: Jun 2002
文章: 2,332
|
多年前....在下跟三五好友想說弄個網路分享,就使用當時很紅的
SoftEth,一台Server當Router + HUB然後其他人加入這個虛 擬的LAN,之後只要電腦開簡單的檔案分享區所有人都可以存取, 這個互通有無的方式最後甚至變成P2P大家分開抓不同的東西, 在透過這個互相分享,直到今日這個系統依然存在....缺的只是 更大的上傳頻寬而已XD,重點是這個系統幾乎可以穿過所有防火 牆(除非連80port這些都關光光)而且封包全部加密,別人想連到 這個虛擬LAN還需要有我們發的憑證才有辦法,安全性一流.... 至於樓主您想做的東西基本上還不如自己架一台eMule Server然 後做好控管來的容易的多,頂多再自己改一些東西....供參考!
__________________
Es muss sein! |
|
|
|
*停權中*
加入日期: Aug 2008
文章: 35
|
這個早就有阿...
對岸的納米盤就是這樣阿,只是空間較小 且無法搜尋儲存內容.. 只要改進搜尋就跟你說得差不多了 |
|
|
|
Master Member
![]() ![]() ![]() ![]() 加入日期: Apr 2001
文章: 1,933
|
引用:
版權問題一定是大問題, 至於說連結不會給人散發出去, 就更加是很傻很天真了。 無心之失的不說, 如果我是釣魚的, 我只要加入樓主的社群, 再上傳一套有版權的電影, 然後將連結散發出去, 樓主不知道準備了多大的律師團隊? ![]() |
|
|
|
|
Junior Member
![]() ![]() ![]() 加入日期: Jan 2007
文章: 800
|
我覺得技術性的問題的確是沒那麼重要,反而應該先討論的是主要的訴求應用在哪、可不可行。
1. 共享好康:這個目前很多系統運作的很好了,樓主的idea似乎也沒有特別的優勢。 2. 網路硬碟:我把這項跟「共享好康」區隔開來,在此項指的就是重複性不大的資料,顯然這會對空間利用率形成很大壓力,所以樓主的idea也不適合。 3. 異地備援:沒哪個企業機關敢用的,因為既然是重要的資料,誰敢放在不知哪個阿貓阿狗的硬碟上,這不是有沒有加密的問題,而是沒有哪個企業願意允許別人任意存取它的機密資料(即使別人"應該""大概""通常""也許"解不開)。 此外,如果是"真正的"分散處理 (免中央伺服器),那就很難實現分級服務收費機制與有效的搜尋了,而如果還是存在某種程度的中央伺服器,那就還是要面對運作成本與法律的問題。 我不是要潑樓主冷水喔,我覺得任何idea在初期一定是很粗糙的,需要很多的琢磨才會比較成熟可行,這很正常。但是如果沒有先思慮週延就貿然投入,邊作邊修正,最後可能就會作白工。 |
|
|
|
Power Member
![]() ![]() 加入日期: Jan 2002 您的住址: 台北苦命IT工人
文章: 586
|
引用:
不..打散開來還是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 慢或是同速.. |
|
|
|
|
*停權中*
加入日期: Nov 2008 您的住址: 志玲姊姊醜怪照
文章: 299
|
像樓上所說,人很難管理
到時一定會有幾個自私的傢伙 破解.放毒.放假檔.惡搞通通來 ![]() |
|
|
|
*停權中*
加入日期: Mar 2008 您的住址: 墓仔埔旁的樹上
文章: 1
|
看壞的人居多.....
不過...樓上有人提出一個看法... 用在辦公室環境....這就很好用了... 我也建議這個方向 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了... |
|
|