Požadavek #1031
otevřený
Logování (pro data retention) - přidat ID uživatele
Přidáno uživatelem Tomáš Dulík před více než 8 roky(ů).
Aktualizováno před více než 8 roky(ů).
Kategorie:
Doplňkové služby
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;
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.
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.
Také k dispozici: Atom
PDF