Sito web Arcade Database

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

Moderatore: Moderatore ADB

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 »

Sto spulciando le modalità di accesso al sito web, ed ho scoperto che ciclicamente (tutti i giorni) ci sono accessi continui alle pagine di dettaglio del Mame.
I parametri che vedo sono troppi particolari per essere fatti da una persona, sono temporizzati ogni 1-2 secondi e in alcuni giorni anche 20 volte di seguito.
Potrebbe trattarsi del crawler di Google o di uno spider, anche se probabilmente Google utilizza uno user agent diverso e nessuna connessione casalinga con ip dinamico.
Ad ogni modo meglio poter vedere il sito che averlo indicizzato, anche perchè se ricordo bene le indicizzazioni sono molto più discrete e smettono subito se vedono un tempo di accesso lungo.

Ho imposto un limite a 200 schede richieste al giorno, oltre il quale non si può far altro se non attendere il giorno dopo.
Gli scraper non hanno subito modifiche.

Raccolgo qualche statistica e vedo cosa succede, specialmente per capire se è questo che fa rallentare eccessivamente il sito oppure se il problema è altrove.
La pagina è una delle più complesse e "costose", non ha alcun senso per un programma caricare quella quando c'è a disposizione uno scraper fatto appositamente per quello scopo.
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 »

Intanto che preparavo il messaggio ho controllato e in meno di 1 ora dalla modifica abbiamo ben 25 mila accessi oltre la soglia, quindi non si tratta di certo di utenti.
Sul versante api, le chiamate ignorate (quindi romset con spazi, simboli, ecc.) sono circa 100 mila.
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 »

Ormai è passato un giorno e vedo che il sito è tornato funzionante.
Le pagine non servite per errori (nomi sbagliati in input) sono 350 mila circa, segno che qualche programma o qualche utente sbaglia a prendere i file.
Le pagine invece non servite per limiti di banda sono 1.300.000. Fino ad oggi il picco di carico è stato di 3 milioni di richieste totali (scraper e pagine) a cui andrebbero sommate questo milione e spiccioli che non considero visite ovviamente.
Probabilmente abbiamo capito il motivo del rallentamento degli ultimi mesi, cercherò di capire come rimuovere il limite sugli utenti e inasprire quello sui programmi che chiedono pagine.

Ovviamente l'elaborazione di queste richieste ha un costo, tutt'altro che trascurabile, ma se lo paragoniamo al dispendio di risorse per completare l'operazione è molto piccolo.

Tra una settimana ricontrollo.
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
non so coem funzionano gli scraper dei vari frontend, ma cosi all'apparenza sembrerebbe che una volta selezionato un sito, lo utilizzi per tutte le rom di tutti i sistemi, questo potrebbe essere la causa della mole di richieste "inutili"

lato gotscraper, a parte le modifiche che apporterò grazie alle tue indicazioni ad oggi, adb viene configurato come primo scraper su mame e sistemi vari arcade, per demandare a screenscraper l'onere e l'onore degli altri.

tra le varie speranze/fantasie legate alla registrazione, potrebbe esserci anche l'info del "residuo" (sistema permettendo), cosi da poter dar contezza all'utilizzatore. Tra l'altro una volta fatto scraping, salvo tutto in locale, pertanto se il file suo (o di tutti i suoi cloni) esiste già in locale, non chiamo proprio adb
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 »

Le chiamate api in genere non hanno molte regole, si possono usare i metodi get o post in base al tipo e alla mole di dati da leggere o scrivere, si può usare un token per l'autenticazione e per crearsi un profilo sul server, ecc.
Si può fare insomma tutto, ma per ora ADB supporta esclusivamente il MAME e non credo che la situazione possa migliorare nel prossimo futuro. Eventualmente aggiungerò tutta la parte ex-MESS, ma in quel caso potrebbe diventare problematico trovare il sistema esatto e magari servono ricerche più aperte.
Ad ogni modo se chiamo per avere un gioco non valido, ricevo un errore anzichè una risposta valida quindi non ci sono ban o divieti e posso subito dopo tentare con altre rom.

Le chiamate api non sono un problema, anzi sono un ottimo modo per snellire il processo perchè fanno parlare i due programmi (client e server) e non ci sono strati inutili come un render html che deve essere rappresentato su uno schermo per un utente (e che poi invece legge un programma). La pagina di dettaglio Mame è la più complessa e completa, ma proprio perchè si tratta di dati che deve leggere un utente.

In futuro dovrò per forza aggiungere nuove chiamate e magari più complesse/particolari, in modo da poter avere un sistema meglio tarato per il software. Ad esempio si potrebbe fare un login iniziale, preparare un setup custom (campi da ottenere in output) e fare poi tutte le chiamate senza dare ogni volta parametri in input a parte il romset.

Invece, cosa intendi per residuo?
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 »

Gothrek ha scritto: 13/03/2023, 21:15 lato gotscraper, a parte le modifiche che apporterò grazie alle tue indicazioni ad oggi, adb viene configurato come primo scraper su mame e sistemi vari arcade, per demandare a screenscraper l'onere e l'onore degli altri.
Tutti i programmi, dal più inutile al più perfetto, devono per forza di cose utilizzare cache e metodi per evitare chiamate verso internet o anche verso altri computer in lan.
Dato che le risorse locali sono enormi, anche su sistemi come i Raspberry, è uno spreco di risorse chiedere sempre ad altre macchine di fare le cose che hai fatto pochi minuti prima.
Il server ora ha un sistema di cache estremo per le api, che consumano risorse (cpu, hard disk, programmazione mia php) ma che si rende fondamentale perchè la gente "se ne frega".

Ovviamente non è una critica nei tuoi confronti, anzi sei uno dei pochi che ha chiesto info prima di distribuire a tutti script male ottimizzati, solo che spesso non ci si ferma a riflettere abbastanza su questi aspetti.
Se io che scrivo uno scraper ho poco tempo e lo faccio "male", rischio di danneggiare tutti gli utenti perchè il server sarà bersagliato inutilmente e quindi paradossalmente potrei distruggere il servizio per il quale scrivo lo script.
Sono sicuro che tutte le mie elucubrazioni sul capire chi/come/cosa fanno gli utenti, tenere traccia tramite log messi manualmente (tutt'altro che semplici e rapidi da controllare) e confronti come questo, siano l'eccezione e non la regola. Spesso per risolvere basta chiudere i rubinetti, mettere un canone al servizio e con i soldi che si ottengono aggiungi hardware.
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: 13/03/2023, 21:40
Gothrek ha scritto: 13/03/2023, 21:15 lato gotscraper, a parte le modifiche che apporterò grazie alle tue indicazioni ad oggi, adb viene configurato come primo scraper su mame e sistemi vari arcade, per demandare a screenscraper l'onere e l'onore degli altri.
Tutti i programmi, dal più inutile al più perfetto, devono per forza di cose utilizzare cache e metodi per evitare chiamate verso internet o anche verso altri computer in lan.
Dato che le risorse locali sono enormi, anche su sistemi come i Raspberry, è uno spreco di risorse chiedere sempre ad altre macchine di fare le cose che hai fatto pochi minuti prima.
Il server ora ha un sistema di cache estremo per le api, che consumano risorse (cpu, hard disk, programmazione mia php) ma che si rende fondamentale perchè la gente "se ne frega".

Ovviamente non è una critica nei tuoi confronti, anzi sei uno dei pochi che ha chiesto info prima di distribuire a tutti script male ottimizzati, solo che spesso non ci si ferma a riflettere abbastanza su questi aspetti.
Se io che scrivo uno scraper ho poco tempo e lo faccio "male", rischio di danneggiare tutti gli utenti perchè il server sarà bersagliato inutilmente e quindi paradossalmente potrei distruggere il servizio per il quale scrivo lo script.
Sono sicuro che tutte le mie elucubrazioni sul capire chi/come/cosa fanno gli utenti, tenere traccia tramite log messi manualmente (tutt'altro che semplici e rapidi da controllare) e confronti come questo, siano l'eccezione e non la regola. Spesso per risolvere basta chiudere i rubinetti, mettere un canone al servizio e con i soldi che si ottengono aggiungi hardware.
ogni info sulle api dello scraper sono sempre interessanti, cosi come le aggiunte che hai fatto nel corso del tempo, è interesse di tutti quando si crea qualcosa farlo funzionare al meglio.

sul mettere un canone al servizio per aggiungere hw, era sempre nell'elenco di tempo fa quando si parlava del tema.
un sistema che in parte tuteli tutti, dall'altra dia la possibilità di monitorare e di utilizzare i ricavi del servizio per migliroare il servizio stesso sono vie assolutamente condivisibili.
Avatar utente
idro
Newbie
Newbie
Messaggi: 74
Iscritto il: 23/08/2013, 16:31
Città: Roma
Località: Santa Marinella

Re: Sito web Arcade Database

Messaggio da idro »

Io da questo progetto non smetto mai di scoprire funzionalità.
Ho visto che nel tab "Altro" dei filtri aggiuntivi, c'è la possibilità di scegliere solo quei cloni che prevedono 4 giocatori (quindi cloni il cui parent/gioco originale era stato concepito per averne uno solo immagino).
Ho applicato questo filtro e ho visto da controlli a campione che in realtà questi cloni ne prevedono FINO a 4 di giocatori, ovvero giocatore singolo, 2 e 4 giocatori.
Ora non so se sono tutti così, ma se lo fosse posso umilmente consigliare di aggiungere quella parola nel filtro, altrimenti sembra che si tratti di cloni con SOLO 4 giocatori.

Poi dimmi tu che il progetto l'hai sviluppato e lo saprai meglio di me.

Altra osservazione: sarebbe interessante ampliare la scelta di filtri di questo tipo sui cloni, mi viene da pensare alla lingua.
Faccio un esempio: c'è un gioco fighissimo, un parent, con cui non posso fare a meno di giocare ma ahimé è scritto in giapponese. Sarebbe utile avere un clone in italiano oppure in inglese (se esistono ovviamente) o entrambi, così alcune cose le capisco di più.
PS: ovvio che ho preso le due lingue alternative al giapponese per noi italiani che usiamo ADB :DDD
Avatar utente
cybermat

Donatore
Cab-dipendente
Cab-dipendente
Messaggi: 627
Iscritto il: 16/07/2011, 18:59
Medaglie: 1
Città: Milano
Grazie Ricevuti: 35 volte

Re: Sito web Arcade Database

Messaggio da cybermat »

idro ha scritto: 21/03/2023, 10:07
Faccio un esempio: c'è un gioco fighissimo, un parent, con cui non posso fare a meno di giocare ma ahimé è scritto in giapponese.
Impari il GIapponese se non puoi farne a meno <-lol->

Questa cosa dei filtri ulteriori interessa anche a me.
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 »

idro ha scritto: 21/03/2023, 10:07 Ho visto che nel tab "Altro" dei filtri aggiuntivi, c'è la possibilità di scegliere solo quei cloni che prevedono 4 giocatori (quindi cloni il cui parent/gioco originale era stato concepito per averne uno solo immagino).
Ho applicato questo filtro e ho visto da controlli a campione che in realtà questi cloni ne prevedono FINO a 4 di giocatori, ovvero giocatore singolo, 2 e 4 giocatori.
Ora non so se sono tutti così, ma se lo fosse posso umilmente consigliare di aggiungere quella parola nel filtro, altrimenti sembra che si tratti di cloni con SOLO 4 giocatori.
Il filtro fa ciò che dice, ovvero controlla se il romset supporta 4 giocatori simultanei. Poi, se gestisce anche 1, 2, 8 non cambia le cose, ma dovrebbero essere garantiti i 4 in contemporanea.
Il file nplayers.ini, da cui sono presi questi dati, è da un po' che non viene aggiornato comunque in caso di errori potete contattare direttamente l'autore oppure scrivere a me che giro la segnalazione a lui.
Le ultime mail che gli ho scritto non hanno mai ricevuto risposta, spero che quel file non venga abbandonato.
https://nplayers.arcadebelgium.be/

La dicitura che trovi nella scheda indica una parte riassuntiva ed una più completa, entrambe comunque sono create a partire da tutte le combinazioni possibili del numero di giocatori. Il Mame non da queste informazioni, senza il file ini di altri non avresti nemmeno queste possibilità di filtro.
Es: "Fino a 4 giocatori (singolo, 2-4 contemporanei)" ha una prima parte che riassume genericamente che si può giocare fino a 4 persone, la seconda invece specifica singolo oppure da 2 a 4 giocatori insieme (quindi anche in 3, che viene contratto in 2-4). In questo caso non potrai giocarci in 2, 3 o 4 persone a rotazione (quando muore uno tocca all'altro).


idro ha scritto: 21/03/2023, 10:07 Altra osservazione: sarebbe interessante ampliare la scelta di filtri di questo tipo sui cloni, mi viene da pensare alla lingua.
Faccio un esempio: c'è un gioco fighissimo, un parent, con cui non posso fare a meno di giocare ma ahimé è scritto in giapponese. Sarebbe utile avere un clone in italiano oppure in inglese (se esistono ovviamente) o entrambi, così alcune cose le capisco di più.
Al momento non posso aggiungere più filtri alle pagine, è complesso gestirli senza appesantire ancora di più il sito.
Nella nuova versione, oltre ad un ampliamento "esagerato" di tutti i filtri, potremo anche gestire casi più speciali come quello che hai indicato. Certo non sarà semplice farlo ma se lo aggiungo almeno non penalizzo tutti ma solo chi usa quella ricerca.
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”