L
lullu08
Guest
Cacheex Waitime, galube die richtigen Freeks kennen das alle,
wartet eine vorgegebene Zeit, und fragt dann den eigenen Reader erst ab.
Jetzt würde ich diese Funktion gerne verbessern, das Cacheex wenn die Zeit 5x überschreitet, den eigenen Reader immer früher anfragt, damit die Gegenseite meine Puschzeiten vergleichen kann, ansonsten werden vieleicht beide Reader erst ab der gewissen Zeit anfangen zu arbeiten, wenn noch ein entfernter Hop mit schlechten Zeiten was sendet.
Meine Vortellung ist, das nach 5 Waitime ist over die Waitime vom Reader halbiert.
Als Beispiel: 1830:690 Waitime ist 690ms und soll nach 5x überschreiten 1x halbiert (auf 345) werden
Das ist glaube der Original Text:
Jemand eine Idee einen Counter zu implantieren und die Waittime auf 50% eine Anfrage zu testen?
wartet eine vorgegebene Zeit, und fragt dann den eigenen Reader erst ab.
Jetzt würde ich diese Funktion gerne verbessern, das Cacheex wenn die Zeit 5x überschreitet, den eigenen Reader immer früher anfragt, damit die Gegenseite meine Puschzeiten vergleichen kann, ansonsten werden vieleicht beide Reader erst ab der gewissen Zeit anfangen zu arbeiten, wenn noch ein entfernter Hop mit schlechten Zeiten was sendet.
Meine Vortellung ist, das nach 5 Waitime ist over die Waitime vom Reader halbiert.
Als Beispiel: 1830:690 Waitime ist 690ms und soll nach 5x überschreiten 1x halbiert (auf 345) werden
Das ist glaube der Original Text:
Code:
uint32_t get_cacheex_wait_time(ECM_REQUEST *er, struct s_client *cl)
{
int32_t i, dwtime = -1, awtime = -1;
for(i = 0; i < cfg.cacheex_wait_timetab.n; i++)
{
if(i == 0 && cfg.cacheex_wait_timetab.caid[i] <= 0)
{
dwtime = cfg.cacheex_wait_timetab.dwtime[i];
awtime = cfg.cacheex_wait_timetab.awtime[i];
continue; //check other, only valid for unset
}
if(cfg.cacheex_wait_timetab.caid[i] == er->caid || cfg.cacheex_wait_timetab.caid[i] == er->caid >> 8 || ((cfg.cacheex_wait_timetab.cmask[i] >= 0 && (er->caid & cfg.cacheex_wait_timetab.cmask[i]) == cfg.cacheex_wait_timetab.caid[i]) || cfg.cacheex_wait_timetab.caid[i] == -1))
{
if((cfg.cacheex_wait_timetab.prid[i] >= 0 && cfg.cacheex_wait_timetab.prid[i] == (int32_t)er->prid) || cfg.cacheex_wait_timetab.prid[i] == -1)
{
if((cfg.cacheex_wait_timetab.srvid[i] >= 0 && cfg.cacheex_wait_timetab.srvid[i] == er->srvid) || cfg.cacheex_wait_timetab.srvid[i] == -1)
{
dwtime = cfg.cacheex_wait_timetab.dwtime[i];
awtime = cfg.cacheex_wait_timetab.awtime[i];
break;
}
}
}
}
if(awtime > 0 && (dwtime <= 0 || awtime==dwtime) ) //if awtime==dwtime useless check hitcache
{
return awtime;
}
if(cl == NULL)
{
if(dwtime < 0)
{ dwtime = 0; }
return dwtime;
}
if(awtime > 0 || dwtime > 0)
{
//if found last in cache return dynwaittime else alwayswaittime
if(check_hitcache(er,cl))
{ return dwtime >= awtime ? dwtime : awtime; }
else
{ return awtime > 0 ? awtime : 0; }
}
return 0;
}
Jemand eine Idee einen Counter zu implantieren und die Waittime auf 50% eine Anfrage zu testen?