Sito web Arcade Database

Il database che raccoglie tutte le informazioni sui giochi, video, screenshot e tanto altro ancora

Moderatore: Moderatore ADB

Avatar utente
AntoPISA
Affezionato
Affezionato
Messaggi: 260
Iscritto il: 12/05/2010, 23:44
Città: Pisa
Località: Pisa
Grazie Inviati: 4 volte
Grazie Ricevuti: 4 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da AntoPISA »

GIà che stai facendo tutti questi lavori al sito (che apprezzo moltissimo) mi manderesti l'elenco delle macchine prive di immagini (escluso le SL)? Avrei intenzione di colmare le llacune, onde evitare che una ricerca effettuata su ADB mostri niente come risultato.
Inoltre vorrei sapere se in futuro tali ricerche più complesse saranno estese alle liste software.
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4845
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 272 volte

Re: Sito web Arcade Database

Messaggio da Gothrek »

@motoschifo @AntoPISA

che coppia ragazzi!!!
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3271
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 31 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da motoschifo »

AntoPISA ha scritto: 13/01/2023, 16:43 GIà che stai facendo tutti questi lavori al sito (che apprezzo moltissimo) mi manderesti l'elenco delle macchine prive di immagini (escluso le SL)? Avrei intenzione di colmare le llacune, onde evitare che una ricerca effettuata su ADB mostri niente come risultato.
Inoltre vorrei sapere se in futuro tali ricerche più complesse saranno estese alle liste software.
Puoi cercarle usando i filtri avanzati (Extra / Immagini) e scegliere quale delle immagini considerare tra tutte quelle supportate:
Senza immagine del gioco
Senza immagine del titolo
Ovviamente puoi aggiungere tutti i filtri che vuoi, l'importante è togliere quelli che potrebbero dare fastidio (tipo ultima release e solo mamecab).

Prima di un eventuale aggiornamento dovrò rivedere ogni pagina del sito, è cambiata la struttura interna quindi anche la ricerca software list dovrà usare quel tipo di condizioni.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
AntoPISA
Affezionato
Affezionato
Messaggi: 260
Iscritto il: 12/05/2010, 23:44
Città: Pisa
Località: Pisa
Grazie Inviati: 4 volte
Grazie Ricevuti: 4 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da AntoPISA »

Grazie per i link alle ricerche (che probabilmente tempo fa mi avevi già dato), appena ho un po' di tempo controllo.
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3271
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 31 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da motoschifo »

Sono sempre più vicino al risultato, nello specifico ho potuto pensare ad una gestione migliore usando dei blocchi per inserire le condizioni in AND (quindi condizioni tutte valide tra di loro) e in OR (almeno una valida).
Per esempio qualcosa del genere:

Screenshot from 2023-01-15 09-46-55.png
Screenshot from 2023-01-15 09-49-39.png

Non sono ancora ad un punto finale perchè questo tipo di gestione "rompe" completamente gli schemi di oggi, ossia sono costretto a non usare più i parametri che usavo prima e così dovrò in qualche modo gestire ugualmente la compatibilità con il passato e la gestione lato browser.
In pratica gestire link del tipo /mame-search?game_year=1980&genre=100

In realtà non potranno essere composti in quel modo perchè non riuscirei a gestire tutte le casistiche, e la rottura sta proprio qui.
Per spiegarla a chi non è tecnico, diciamo che quando viene servita una pagina web esiste la lista dei parametri in ingresso (es. 'game_year' con valore '1980' e 'genre' con valore '100') ed oggi da quella lista genero una ricerca sul database. Il problema sta proprio nel fatto che la lista nel mio caso potrebbe avere più valori uguali e per ciascun valore potrebbe avere una diversa operazione sul dato (uguale, maggiore, ecc).
Fino a questo momento ho gestito la cosa cambiando il nome, nella maniera standard in cui fanno tutti i siti, ovvero gestire fino a 10 nomi diversi per ciascun parametro (game_year_maggiore, game_year_maggiore_uguale, game_year_diverso, genre_diverso, ecc.)
Questo però porta alla moltiplicazione di tutti i filtri (150 oggi, 200 domani) per le 10 operazioni, ovvero 2000 variabili diverse. Troppe da gestire senza incontrare problemi.
La strada che sto percorrendo ora è che la lista dei parametri viene processata da una routine che la trasforma nei nuovi, passati poi al client (quindi la pagina è vuota) che a sua volta richiama il server con i parametri corretti per poter effettuare la ricerca (contenuto dinamico).
Così facendo avrei una pagina di ricerca molto pulita e leggera a prescindere dal numero di filtri (poche migliaia di byte rispetto al quasi milione di byte di oggi), un preprocessore che si occupa di trattare i dati e trasformarli in parametri corretti (solo la prima volta che la pagina viene aperta) ed una richiesta dati che potrebbe mettere in cache la composizione finale.
In altre parole, la richiesta delle pagine 2 e 3 non andrebbe a riprocessare tutti i parametri (lavoro inutile se sono uguali a prima) e avrei una risposta molto più rapida (come succede oggi che ho milioni di richieste).

Sono entrato nel tecnico ma si rende necessario per capire e spiegare le varie scelte che sto effettuando.

La grafica non mi piace ancora comunque, sto cercando di gestire il multivalore in maniera più chiara.
Se questo tipo di rappresentazione funziona bene, potrei gestire per qualsiasi filtri supportato un elenco di operazioni e valori multipli senza alcuno sforzo aggiuntivo rispetto alla gestione singola, e tutto ciò consentirebbe in pratica di farsi le proprie ricerche con la massima libertà possibile.
Che poi è lo scopo primario di questa riscrittura, quello secondario è ridurre il carico sul server che già oggi fa fatica a rispondere a tutti.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
AntoPISA
Affezionato
Affezionato
Messaggi: 260
Iscritto il: 12/05/2010, 23:44
Città: Pisa
Località: Pisa
Grazie Inviati: 4 volte
Grazie Ricevuti: 4 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da AntoPISA »

Sto effettuando delle ricerche (semplici) su ADB e la risposta del sito è lentissima. E' normale Michele?
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3271
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 31 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da motoschifo »

Gli accessi sono aumentati, il server è sempre pieno di richieste e ci sono momenti in cui non risponde proprio.
La revisione che sto facendo dovrebbe alleggerire anche il carico complessivo, nel frattempo non ho soluzioni immediate quindi l'unica è riprovare.
Se vedo che non si stabilizza posso interrompere gli scraper ma preferirei non arrivare a tanto.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3271
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 31 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da motoschifo »

Oggi ho visto che il server si è "seduto" per le tante richieste, unite anche alle elaborazioni pesanti che sto cercando di migliorare riscrivendo tutto il sito. Ma questo arriverà più avanti.

Ho quindi fatto qualche indagine per capirne la causa ed ho visto che il recupero info da programmi esterni (scraping) non è gestito bene.
In poche ore di attività ho visto 300 mila richieste di giochi diversi (a volte lo stesso gioco dallo stesso ip, forse un errore di programmazione di qualcuno o un programma lanciato più volte).
Io ho scritto dappertutto che è consigliato, quando possibile, unire le richieste e magari ottenere dati su più giochi insieme e limitare il numero di connessioni totali allo stretto necessario, ma vedo che in pratica nessuno lo fa.
Così ho deciso in futuro di chiudere dei pezzi e limitare l'accesso ad un massimo giornaliero per indirizzo ip.

Oggi sto solo raccogliendo dati, ma il prossimo aggiornamento introdurrà questo tetto massimo di richieste per giornata.
Potrei impostarlo inizialmente a 30 mila e ridurlo poi man mano fino a 5 mila.
Ad esempio un set completo del Mame, ammesso che uno voglia averlo tutto (e già questo è discutibile, dato che si dovrebbe cercare sempre di andare per upgrade progressivi), "costa" fino a 50 mila richieste. Accodandole per gruppi di 400 giochi alla volta si ottiene un valore prossimo al centinaio, che è molto più gestibile e mi viene da dire anche più veloce per chi lo utilizza.
Quindi, anzichè scandagliare tutto ogni volta, bastarebbe gestire la data di ultima richiesta, farne al massimo 1 al giorno (quindi cache sul client) e unire tutte le richieste in uscita in poche chiamate cumulative.

Non ho deciso i dettagli, l'idea è questa e nei prossimi giorni dovrò lavorare al database per manutenzione ordinaria quindi il tutto rallenterà un pochino più del solito.
In ottica futura sto comunque rendendo le pagine e le elaborazioni molto più leggere (o meglio più "intelligenti") per avere meno carico possibile sul server e sul database. In pratica, con l'hardware attuale, si dovrebbe vedere un bel salto in qualità e velocità anche all'aumentare degli utenti. Ma di questo ne riparliamo a natale... spero...
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4845
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 272 volte

Re: Sito web Arcade Database

Messaggio da Gothrek »

motoschifo ha scritto: 04/02/2023, 20:58 Oggi ho visto che il server si è "seduto" per le tante richieste, unite anche alle elaborazioni pesanti che sto cercando di migliorare riscrivendo tutto il sito. Ma questo arriverà più avanti.

Ho quindi fatto qualche indagine per capirne la causa ed ho visto che il recupero info da programmi esterni (scraping) non è gestito bene.
In poche ore di attività ho visto 300 mila richieste di giochi diversi (a volte lo stesso gioco dallo stesso ip, forse un errore di programmazione di qualcuno o un programma lanciato più volte).
Io ho scritto dappertutto che è consigliato, quando possibile, unire le richieste e magari ottenere dati su più giochi insieme e limitare il numero di connessioni totali allo stretto necessario, ma vedo che in pratica nessuno lo fa.
Così ho deciso in futuro di chiudere dei pezzi e limitare l'accesso ad un massimo giornaliero per indirizzo ip.

Oggi sto solo raccogliendo dati, ma il prossimo aggiornamento introdurrà questo tetto massimo di richieste per giornata.
Potrei impostarlo inizialmente a 30 mila e ridurlo poi man mano fino a 5 mila.
Ad esempio un set completo del Mame, ammesso che uno voglia averlo tutto (e già questo è discutibile, dato che si dovrebbe cercare sempre di andare per upgrade progressivi), "costa" fino a 50 mila richieste. Accodandole per gruppi di 400 giochi alla volta si ottiene un valore prossimo al centinaio, che è molto più gestibile e mi viene da dire anche più veloce per chi lo utilizza.
Quindi, anzichè scandagliare tutto ogni volta, bastarebbe gestire la data di ultima richiesta, farne al massimo 1 al giorno (quindi cache sul client) e unire tutte le richieste in uscita in poche chiamate cumulative.

Non ho deciso i dettagli, l'idea è questa e nei prossimi giorni dovrò lavorare al database per manutenzione ordinaria quindi il tutto rallenterà un pochino più del solito.
In ottica futura sto comunque rendendo le pagine e le elaborazioni molto più leggere (o meglio più "intelligenti") per avere meno carico possibile sul server e sul database. In pratica, con l'hardware attuale, si dovrebbe vedere un bel salto in qualità e velocità anche all'aumentare degli utenti. Ma di questo ne riparliamo a natale... spero...
noooooooooooooooo

resto sempre piu' convinto che la soluzione sia diversificare, un unregistred castrato , un registred e un donatore, trattare in egualmodo il tipo che scrapa da una distro da un utente dei AI sarebbe un peccato.

tutte le distro fanno richieste 1 a 1 (anche il gotscraper aime), ma mettere insieme 400 titoli e gestire il result non è cosi lineare, interruzioni a metà e quant'altro. ma quello che ad esempio faccio col gotscrpaer e NON andare online da te se hai già le info in locale perchè scaricate 1 volta, quindi questo dovrebbe evitare che chi ha già un set completo (per dire), all'uscita di una nuova versione i titoli da cercare saranno davvero pochi.

tra l'altro ho aggiunto oramai da un pò i cloni, per cui se un gioco è il clone di un'altro e i media sono gli stessi, duplica quelli locali piu' che scaricarli

my 2 cents
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3271
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 31 volte
Contatta:

Re: Sito web Arcade Database

Messaggio da motoschifo »

Non ho modo di capire chi è utente "serio" e chi no, perchè per registrarsi al sito basta una mail e comunque è tutto libero.
L'unica discriminante che posso usare è il numero di richieste per indirizzo IP: se sono troppe, devi separare in più giorni il tuo lavoro e dare spazio agli altri.
Eventualmente poi si potrà pensare di limitare solo in caso di troppe richieste totali, quindi se il server è scarico anche 200 mila richieste non danno fastidio, oppure di accodare ciò che va oltre con attese forzate (es. max 1 ogni tot secondi).

Normalmente abbiamo poco più di 1 milione di richieste (api) al giorno. Sicuramente in futuro saranno aumenteranno e non voglio arrivare alla saturazione completa.
Fare dalle 20 alle 40 mila chiamate (per utente) solo per avere un titolo o un'immagine aggiornata mi sembra un po' eccessivo, considerando che questa cosa impedisce poi agli altri utenti di visitare il sito o li rallenta, facendo rallentare tutto il sistema tra l'altro.

Vedrò i numeri che otterrò nei prossimi giorni, non è un sistema infallibile ma sicuramente permette di liberare il sito e consentire la navigazione.

I software di scraping li fanno i programmatori, se uno programma male non vedo perchè debbano rimetterci tutti gli altri.
Poi non è che da domani chiudo i rubinetti, sarà un passaggio graduale come sempre e chi vuole aggiornare o chi ha bisogno di aiuto può sempre scrivermi per venirne a capo senza impazzire.
Magari scopro che facendo un'api diversa e specifica risparmio tempo macchina, oppure posso predisporre già dei file pronti che non necessitano di usare la cpu (una sorta di scraping già fatto e pronto da scaricare). Insomma i modi per migliorare ci sono, però quello di oggi non è il sistema corretto per la mole di dati che abbiamo e quindi va cambiato <-pardon->
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Rispondi

Torna a “Progetto Arcade Data Base”