Požadavek #1031
otevřenýLogování (pro data retention) - přidat ID uživatele
0%
Popis
Při diskusi o implementaci data retention ve Freenetisu padl dotaz, jak máme vyřešenu situaci, kdy uživateli X smažeme IP adresu (např. při smazání zařízení) a po čase ji přidělíme uživateli Y. Pak ale předchozí provoz z té smazané adresy bude vypadat jako provoz uživatele Y.
Jednoduché řešení by bylo do logu provozu ke každému řádku přidat ID uživatele, jemuž IP adresa v dané chvíli patří.
Ale: MySQL server loggeru by obecně měl jet na jiném fyzickém stroji než DB Freenetisu, navíc kvůli výkonu není možné při ukládání řádků logu pokaždé dotazovat DB Freenetisu o to, komu daná IP adresa patří.
To bychom vyřešili tak, že 1x denně (nebo 1x za hodinu) natáhneme do DB loggeru z DB Freenetisu pomocnou temporaray tabulku "IP_adresa - ID uživatele", která by kvůli výkonu byla v RAM, tj.:
CREATE TEMPORARY TABLE neco.temp_table_memory (....) ENGINE=MEMORY;
Aktualizováno uživatelem Ondřej Fibich před více než 8 roky(ů)
Pokud budeme implementovat až pro 1.2, pak můžeme použít FreenetIS API pro získání asociativního pole IP->ID uživatele
a tím udělat čistší řešení.
Pak je tu jen jedna poznámka, uživatelé jsou mazatelní, možná by bylo lepší použít ID člena.
Aktualizováno uživatelem Michal Kliment před více než 8 roky(ů)
Ahojte,
toto všechno už mám vymyšlené, akorát jsem to neměl čas to sem zapsat ;-)
Měl by vzniknout samostatný a na FreenetISu de facto skoro úplně
nezávislý balík freenetis-traffic (případně freenetis-logger) pro
logování provozu.
FreenetIS by si pak data o provozu tahal přes jeho API až na požádání,
ve FreenetiSu samotném by o provozu nebylo uložené nic.
Jednou denně by se něj akorát z FreenetISu synchronizovala aktuálně
databáze členů a jejich IP adres. Tady o u této synchronizaci přemýšlím
o nějaké samostatné mezivrstvě, protože sync členů a IP adres se řeší ve
více balících (například v Qosu).
M.