removed index Transfer, because it does not make sense any more to do a complete index transfer using the DHT methods. It is far easier and faster to just copy the whole index files from the source to the target peer. To do this, copy all files from DATA/INDEX/<network>/TEXT/RICACHE and DATA/INDEX/<network>/TEXT/METADATA from the source to the destination peer.

Future versions of YaCy will have different file structures than given here, because of the new index segment concept, where each peer may have several indexes (called segments) for each network definition. A copy from one peer to another will then create a new index segment.
To track changes for this feature, see forum discussion at
http://forum.yacy-websuche.de/viewtopic.php?p=14728#p14728

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5945 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
orbiter 2009-05-10 21:00:39 +00:00
parent c1e5fad9a7
commit 04ec42e1d0
3 changed files with 0 additions and 215 deletions

View File

@ -1,83 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>YaCy '#[clientname]#': Index Transfer</title>
#%env/templates/metas.template%#
<meta http-equiv="REFRESH" content="30" />
</head>
<body id="IndexTransfer">
#%env/templates/header.template%#
#%env/templates/submenuIndexControl.template%#
<h2>Index Transfer</h2>
<form action="IndexTransfer_p.html" method="post" enctype="multipart/form-data">
<p>The local index currently consists of (at least) #[wcount]# reverse word indexes and #[ucount]# URL references.</p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td>&nbsp;</td>
<td>Status</td>
<td>Chunk Size<br />(Word Entries)</td>
<td>Words Range</td>
<td>Transfered Words</td>
<td>Delete<br />Index</td>
<td>Remote<br />Peer</td>
#(running)#<td>Overwrite IP<br />(blank for defaultip)</td>::#(/running)#
<td>Start/Stop Transfer</td>
</tr>
#(running)#
<tr valign="top" class="TableCellLight">
<td class="TableHeader">-</td>
<td>#[status]#</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td>
<select name="deleteIndex">
<option value="1">true</option>
<option value="0">false</option>
</select>
</td>
<td>
<select name="hostHash">
#{hosts}#
<option value="#[hosthash]#">#[hostname]#</option>
#{/hosts}#
</select>
</td>
<td>
<input type="text" name="overwriteIP" />
</td>
<td>
<input type="submit" name="startIndexTransfer" value="Start Index Transfer" />
</td>
</tr>
::
<tr class="TableCellLight">
<td class="TableCellDark">Selection</td>
<td style="color: #(stopped)#green::red#(/stopped)#;">#[selection.status]#</td>
<td align="right">#[selection.twchunk]# words</td>
<td align="right"><tt>#[selection.twrange]#</tt></td>
<td rowspan="2" align="left">#[twEntityCount]# Entities (#[twEntityPercent]#%)<br />
#[twEntryCount]# Entries<br />
#[twPayloadSize]#<br />
#[twEntrySpeed]# entries/s</td>
<td rowspan="2">#(deleteIndex)#false::true#(/deleteIndex)#</td>
<td rowspan="2">#[peerName]#</td>
<td rowspan="2">#(stopped)#<input type="submit" name="stopIndexTransfer" value="Stop Index Transfer" />::
<input type="submit" name="newIndexTransfer" value="Start New Index Transfer" />#(/stopped)#
</td>
</tr>
<tr class="TableCellLight">
<td class="TableCellDark">Transfer</td>
<td style="color: #(stopped)#green::red#(/stopped)#">#[transfer.status]#</td>
<td align="right">#[transfer.twchunk]# words</td>
<td align="right"><tt>#[transfer.twrange]#</tt></td>
</tr>
#(/running)#
</table>
</form>
<p><em>Last Refresh:</em> #[date]#</p>
#%env/templates/footer.template%#
</body>
</html>

View File

@ -1,131 +0,0 @@
//IndexTransfer_p.java
//-----------------------
//part of the AnomicHTTPD caching proxy
//(C) by Michael Peter Christen; mc@yacy.net
//first published on http://www.anomic.de
//Frankfurt, Germany, 2005
//
//This file is contributed by Martin Thelian
//
// $LastChangedDate$
// $LastChangedRevision$
// $LastChangedBy$
//
//This program is free software; you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation; either version 2 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//You must compile this file with
//javac -classpath .:../Classes IndexControl_p.java
//if the shell's current path is HTROOT
import de.anomic.http.httpRequestHeader;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
public final class IndexTransfer_p {
public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch<?> env) {
// return variable that accumulates replacements
//final plasmaSwitchboard sb = (plasmaSwitchboard) env;
final serverObjects prop = new serverObjects();
/*
if (post != null) {
if (post.containsKey("startIndexTransfer")) {
final yacySeed seed = sb.webIndex.seedDB.getConnected(post.get("hostHash", ""));
if (seed == null) {
prop.put("running_status","Disconnected peer");
} else {
final boolean deleteIndex = post.get("deleteIndex", "0").equals("1");
if(prop.containsKey("overwriteIP") && ! (prop.get("overwriteIP")).equals("")){
seed.setIP(prop.get("overwriteIP"));
}
sb.startTransferWholeIndex(seed,deleteIndex);
prop.put("LOCATION","");
return prop;
}
} else if (post.containsKey("stopIndexTransfer")) {
sb.stopTransferWholeIndex(true);
prop.put("LOCATION","");
return prop;
} else if (post.containsKey("newIndexTransfer")) {
sb.abortTransferWholeIndex(true);
prop.put("LOCATION","");
return prop;
}
}
// insert constants
prop.putNum("wcount", sb.webIndex.size());
prop.putNum("ucount", sb.webIndex.countURL());
prop.put("running",(sb.transferIdxThread==null) ? "0" : "1");
if (sb.transferIdxThread != null) {
final String[] status = sb.transferIdxThread.getStatus();
final String[] range = sb.transferIdxThread.getRange();
final int[] chunk = sb.transferIdxThread.getIndexCount();
prop.put("running_selection.status",status[0]);
prop.put("running_selection.twrange", range[0]);
prop.put("running_selection.twchunk", chunk[0]);
prop.put("running_transfer.status",status[1]);
prop.put("running_transfer.twrange", range[1]);
prop.put("running_transfer.twchunk", chunk[1]);
prop.putNum("running_twEntityCount", sb.transferIdxThread.getTransferedContainerCount());
prop.putNum("running_twEntryCount", sb.transferIdxThread.getTransferedEntryCount());
prop.put("running_twPayloadSize", Formatter.bytesToString(sb.transferIdxThread.getTransferedBytes()));
prop.putNum("running_twEntityPercent", sb.transferIdxThread.getTransferedContainerPercent());
prop.putNum("running_twEntrySpeed", sb.transferIdxThread.getTransferedEntrySpeed());
prop.put("running_deleteIndex", sb.transferIdxThread.deleteIndex() ? "1" : "0");
prop.putHTML("running_peerName",sb.transferIdxThread.getSeed().getName());
prop.put("running_stopped",(sb.transferIdxThread.isFinished()) || (!sb.transferIdxThread.isAlive()) ? "1" : "0");
} else {
if (!prop.containsKey("running_status")) prop.put("running_status","Not running");
}
//List known hosts
yacySeed seed;
int hc = 0;
if ((sb.webIndex.seedDB != null) && (sb.webIndex.seedDB.sizeConnected() > 0)) {
final Iterator<yacySeed> e = PeerSelection.getAcceptRemoteIndexSeeds(sb.webIndex.seedDB, null, sb.webIndex.seedDB.sizeConnected(), false);
final TreeMap<String, String> hostList = new TreeMap<String, String>();
while (e.hasNext()) {
seed = e.next();
if (seed != null) hostList.put(seed.get(yacySeed.NAME, "nameless"), seed.hash);
}
String hostName = null;
try {
while ((hostName = hostList.firstKey()) != null) {
prop.put("running_hosts_" + hc + "_hosthash", hostList.get(hostName));
prop.putHTML("running_hosts_" + hc + "_hostname", hostName);
hc++;
hostList.remove(hostName);
}
} catch (final NoSuchElementException ex) {}
prop.put("running_hosts", hc);
} else {
prop.put("running_hosts", "0");
}
prop.put("date",(new Date()).toString());
*/
return prop;
}
}

View File

@ -4,7 +4,6 @@
<li><a href="/IndexControlRWIs_p.html" class="MenuItemLink lock">RWI Admin</a></li>
<li><a href="/IndexControlURLs_p.html" class="MenuItemLink lock">URL Reference Admin</a></li>
<li><a href="/IndexImport_p.html" class="MenuItemLink lock">Queue Import</a></li>
<li><a href="/IndexTransfer_p.html" class="MenuItemLink lock">Index Transfer</a></li>
<li><a href="/IndexCleaner_p.html" class="MenuItemLink lock">Index Cleaner</a></li>
<li><a href="/IndexImportWikimedia_p.html" class="MenuItemLink lock">Wikimedia Dump Import</a></li>
</ul>