public class PeerProfile extends Object
Constructor and Description |
---|
PeerProfile(RouterContext context,
Hash peer)
Caller should call setLastHeardAbout() and setFirstHeardAbout()
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
coalesceOnly()
Caller must next call updateValues()
|
void |
coalesceStats()
update the stats and rates (this should be called once a minute)
|
(package private) void |
dataPushed(int size) |
(package private) void |
dataPushed1m(int size)
the tunnel pushed that much data in a 1 minute period
|
boolean |
equals(Object obj) |
void |
expandDBProfile()
For floodfills
|
void |
expandProfile()
When the given peer is performing well enough that we want to keep detailed
stats on them again, call this to set up the info we dropped during shrinkProfile.
|
int |
getCapacityBonus()
extra factor added to the capacity ranking - this can be updated in the profile
written to disk to affect how the algorithm ranks capacity.
|
float |
getCapacityValue()
How many tunnels do we think this peer can handle over the next hour?
|
(package private) RouterContext |
getContext()
Helper for calculators
|
DBHistory |
getDBHistory()
history of db activity with the peer
Warning - may return null if !getIsExpandedDB()
|
RateStat |
getDbIntroduction()
how many new peers we get from dbSearchReplyMessages or dbStore messages, calculated over a 1 hour, 1 day, and 1 week period
Warning - may return null if !getIsExpandedDB()
|
RateStat |
getDbResponseTime()
how long it takes to get a db response from the peer (in milliseconds), calculated over a 1 minute, 1 hour, and 1 day period
Warning - may return null if !getIsExpandedDB()
|
long |
getFirstHeardAbout()
When did we first hear about this peer?
|
int |
getIntegrationBonus()
extra factor added to the integration ranking - this can be updated in the profile
written to disk to affect how the algorithm ranks integration.
|
float |
getIntegrationValue()
How well integrated into the network is this peer (as measured by how much they've
told us that we didn't already know).
|
boolean |
getIsActive()
Is this peer active at the moment (sending/receiving messages within the last
5 minutes)
|
boolean |
getIsActive(long period)
Is this peer active at the moment (sending/receiving messages within the
given period?)
Also mark active if it is connected, as this will tend to encourage use
of already-connected peers.
|
boolean |
getIsExpanded()
are we keeping an expanded profile on the peer, or just the bare minimum.
|
boolean |
getIsExpandedDB() |
boolean |
getIsFailing()
is this peer actively failing (aka not worth touching)?
deprecated - unused - always false
|
long |
getLastHeardAbout()
when did we last hear about this peer?
|
long |
getLastHeardFrom()
when did we last hear from the peer?
|
long |
getLastSendFailed()
when did we last have a problem sending to this peer?
|
long |
getLastSendSuccessful()
when did we last send to this peer successfully?
|
float |
getPeakThroughputKBps() |
float |
getPeakTunnel1mThroughputKBps() |
float |
getPeakTunnelThroughputKBps() |
Hash |
getPeer()
what peer is being profiled, non-null
|
int |
getSpeedBonus()
extra factor added to the speed ranking - this can be updated in the profile
written to disk to affect how the algorithm ranks speed.
|
float |
getSpeedValue()
How fast is the peer, taking into consideration both throughput and latency.
|
RateStat |
getTunnelCreateResponseTime()
how long it takes to get a tunnel create response from the peer (in milliseconds), calculated over a 1 minute, 1 hour, and 1 day period
Warning - may return null if !getIsExpanded()
|
TunnelHistory |
getTunnelHistory()
history of tunnel activity with the peer
Warning - may return null if !getIsExpanded()
|
RateStat |
getTunnelTestResponseTime()
how long it takes to successfully test a tunnel this peer participates in (in milliseconds), calculated over a 10 minute, 1 hour, and 1 day period
Warning - may return null if !getIsExpanded()
|
float |
getTunnelTestTimeAverage() |
(package private) int |
getXORDistance()
For now, just a one-byte comparison
|
int |
hashCode() |
(package private) boolean |
isEstablished() |
(package private) boolean |
isSameCountry() |
void |
setCapacityBonus(int bonus) |
void |
setDBHistory(DBHistory hist) |
(package private) void |
setFirstHeardAbout(long when)
Set when did we first heard about this peer, only if older.
|
void |
setIntegrationBonus(int bonus) |
(package private) void |
setIsFailing(boolean val)
deprecated - unused - always false
|
void |
setLastHeardAbout(long when)
Set when did we last hear about this peer, only if unset or newer
Also sets FirstHeardAbout if earlier
|
void |
setLastHeardFrom(long when) |
void |
setLastSendFailed(long when) |
void |
setLastSendSuccessful(long when) |
void |
setPeakThroughputKBps(float kBps) |
void |
setPeakTunnel1mThroughputKBps(float kBps) |
void |
setPeakTunnelThroughputKBps(float kBps) |
void |
setSpeedBonus(int bonus) |
void |
setTunnelHistory(TunnelHistory history) |
(package private) void |
setTunnelTestTimeAverage(float avg) |
String |
toString() |
(package private) void |
tunnelDataTransferred(long tunnelByteLifetime)
the tunnel pushed that much data in its lifetime
|
(package private) void |
updateTunnelTestTimeAverage(long ms) |
(package private) void |
updateValues()
Copy over the new values generated by coalesceOnly()
|
(package private) boolean |
wasUnreachable() |
public PeerProfile(RouterContext context, Hash peer)
peer
- non-nullpublic Hash getPeer()
public boolean getIsExpanded()
public boolean getIsExpandedDB()
public boolean getIsActive()
boolean isEstablished()
boolean wasUnreachable()
boolean isSameCountry()
int getXORDistance()
public boolean getIsActive(long period)
period
- must be one of the periods in the RateStat constructors below
(5*60*1000 or 60*60*1000)public long getFirstHeardAbout()
void setFirstHeardAbout(long when)
public long getLastHeardAbout()
public void setLastHeardAbout(long when)
public long getLastSendSuccessful()
public void setLastSendSuccessful(long when)
public long getLastSendFailed()
public void setLastSendFailed(long when)
public long getLastHeardFrom()
public void setLastHeardFrom(long when)
public TunnelHistory getTunnelHistory()
public void setTunnelHistory(TunnelHistory history)
public DBHistory getDBHistory()
public void setDBHistory(DBHistory hist)
public RateStat getDbResponseTime()
public RateStat getTunnelCreateResponseTime()
public RateStat getTunnelTestResponseTime()
public RateStat getDbIntroduction()
public int getSpeedBonus()
public void setSpeedBonus(int bonus)
public int getCapacityBonus()
public void setCapacityBonus(int bonus)
public int getIntegrationBonus()
public void setIntegrationBonus(int bonus)
public float getSpeedValue()
public float getCapacityValue()
public float getIntegrationValue()
public boolean getIsFailing()
public float getTunnelTestTimeAverage()
void setTunnelTestTimeAverage(float avg)
void updateTunnelTestTimeAverage(long ms)
public float getPeakThroughputKBps()
public void setPeakThroughputKBps(float kBps)
void dataPushed(int size)
void tunnelDataTransferred(long tunnelByteLifetime)
public float getPeakTunnelThroughputKBps()
public void setPeakTunnelThroughputKBps(float kBps)
void dataPushed1m(int size)
public float getPeakTunnel1mThroughputKBps()
public void setPeakTunnel1mThroughputKBps(float kBps)
public void expandProfile()
public void expandDBProfile()
public void coalesceStats()
void coalesceOnly()
void updateValues()
void setIsFailing(boolean val)
RouterContext getContext()