forked from I2P_Developers/i2p.i2p
reduce RouterInfo expiration again
This commit is contained in:
@@ -686,6 +686,8 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
|
||||
return rv;
|
||||
}
|
||||
|
||||
private static final int MIN_ROUTERS = 90;
|
||||
|
||||
/**
|
||||
* Determine whether this routerInfo will be accepted as valid and current
|
||||
* given what we know now.
|
||||
@@ -694,9 +696,9 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
|
||||
String validate(Hash key, RouterInfo routerInfo) throws IllegalArgumentException {
|
||||
long now = _context.clock().now();
|
||||
boolean upLongEnough = _context.router().getUptime() > 60*60*1000;
|
||||
// Once we're over 120 routers, reduce the expiration time down from the default,
|
||||
// Once we're over MIN_ROUTERS routers, reduce the expiration time down from the default,
|
||||
// as a crude way of limiting memory usage.
|
||||
// i.e. at 300 routers the expiration time will be about half the default, etc.
|
||||
// i.e. at 2*MIN_ROUTERS routers the expiration time will be about half the default, etc.
|
||||
// And if we're floodfill, we can keep the expiration really short, since
|
||||
// we are always getting the latest published to us.
|
||||
// As the net grows this won't be sufficient, and we'll have to implement
|
||||
@@ -708,7 +710,7 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
|
||||
// _kb.size() includes leasesets but that's ok
|
||||
adjustedExpiration = Math.min(ROUTER_INFO_EXPIRATION,
|
||||
ROUTER_INFO_EXPIRATION_MIN +
|
||||
((ROUTER_INFO_EXPIRATION - ROUTER_INFO_EXPIRATION_MIN) * 120 / (_kb.size() + 1)));
|
||||
((ROUTER_INFO_EXPIRATION - ROUTER_INFO_EXPIRATION_MIN) * MIN_ROUTERS / (_kb.size() + 1)));
|
||||
|
||||
if (!key.equals(routerInfo.getIdentity().getHash())) {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
|
||||
Reference in New Issue
Block a user