Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2012-07-06 22:25:35.0 alle 2012-07-06 22:25:35.0
    Database da milioni di utenti
    Se volessi fare un database che possa raggiungere potenzialmente milioni di utenti, che possono fare il login e modificare i loro dati e per ora basta, che giri su un hosting gratuito o poco più senza problemi di lentezza, cosa mi conviene? SQLite? Esiste già qualcosa di pronto così non devo dissanguarmi su HTML.it?
    • Avatar
      ☺
      Scritto da
      ::1
      il 2012-07-06 22:50:26.0 alle 2012-07-06 22:50:26.0
      Trollate totali: 12321
      Re: Database da milioni di utenti
      Scritto da:
      > Se volessi fare un database che possa raggiungere potenzialmente milioni di utenti, che possono fare il login e modificare i loro dati e per ora basta, che giri su un hosting gratuito o poco più senza problemi di lentezza, cosa mi conviene? SQLite? Esiste già qualcosa di pronto così non devo dissanguarmi su HTML.it?

      Puntare più in basso e affrontare al momento giusto l'incontrollabile afflusso di utenti.
      Fasciarti la testa non ti eviterà di batterla dopo.
      Young professional woman and busy mom.
      • Avatar
        Scritto da
        Non Autenticato
        il 2012-07-06 22:55:07.0 alle 2012-07-06 22:55:07.0
        Re: Database da milioni di utenti
        > > Se volessi fare un database che possa raggiungere potenzialmente milioni di utenti, che possono fare il login e modificare i loro dati e per ora basta, che giri su un hosting gratuito o poco più senza problemi di lentezza, cosa mi conviene? SQLite? Esiste già qualcosa di pronto così non devo dissanguarmi su HTML.it?
        >
        > Puntare più in basso e affrontare al momento giusto l'incontrollabile afflusso di utenti.
        > Fasciarti la testa non ti eviterà di batterla dopo.

        Sei diventato la Sibilla Cumana? A bocca aperta
        • Avatar
          ☺
          Scritto da
          ::1
          il 2012-07-06 23:01:34.0 alle 2012-07-06 23:01:34.0
          Trollate totali: 12321
          Re: Database da milioni di utenti
          Scritto da:
          > > > Se volessi fare un database che possa raggiungere potenzialmente milioni di utenti, che possono fare il login e modificare i loro dati e per ora basta, che giri su un hosting gratuito o poco più senza problemi di lentezza, cosa mi conviene? SQLite? Esiste già qualcosa di pronto così non devo dissanguarmi su HTML.it?
          > >
          > > Puntare più in basso e affrontare al momento giusto l'incontrollabile afflusso di utenti.
          > > Fasciarti la testa non ti eviterà di batterla dopo.
          >
          > Sei diventato la Sibilla Cumana? A bocca aperta

          Semplicemente un sistema "per raggiungere potenzialmente milioni di utenti" non nasce da zero, non viene progettato da zero, ma è il frutto dello sviluppo di qualcosa di esistente.
          Pensare di avere da subito la soluzione perfetta è un utopia, e serve solo a distrarsi dal problema reale, ad esempio attrarre milioni di utenti.
          Fino ad allora una qualunque soluzione va bene.
          Mi pare di ricordare che sarrusofero avesse detto (ma potrei sbagliare) che sqlite perde prestazioni in un battibaleno all'aumentare dei dati.
          Osserva grandi sistemi open source come approcciano ai problemi e usa il linguaggio che ti permette (a te o a chi svilupperà) di cambiare e rifattorizzare tutto il più velocemente possibile per venire incontro alle esigenze che verranno fuori.
          Young professional woman and busy mom.
          • Avatar
            Scritto da
            Non Autenticato
            il 2012-07-06 23:22:20.0 alle 2012-07-06 23:22:20.0
            Re: Database da milioni di utenti
            > > > > Se volessi fare un database che possa raggiungere potenzialmente milioni di utenti, che possono fare il login e modificare i loro dati e per ora basta, che giri su un hosting gratuito o poco più senza problemi di lentezza, cosa mi conviene? SQLite? Esiste già qualcosa di pronto così non devo dissanguarmi su HTML.it?
            > > >
            > > > Puntare più in basso e affrontare al momento giusto l'incontrollabile afflusso di utenti.
            > > > Fasciarti la testa non ti eviterà di batterla dopo.
            > >
            > > Sei diventato la Sibilla Cumana? A bocca aperta
            >
            > Semplicemente un sistema "per raggiungere potenzialmente milioni di utenti" non nasce da zero, non viene progettato da zero, ma è il frutto dello sviluppo di qualcosa di esistente.
            > Pensare di avere da subito la soluzione perfetta è un utopia, e serve solo a distrarsi dal problema reale, ad esempio attrarre milioni di utenti.
            > Fino ad allora una qualunque soluzione va bene.
            > Mi pare di ricordare che sarrusofero avesse detto (ma potrei sbagliare) che sqlite perde prestazioni in un battibaleno all'aumentare dei dati.
            > Osserva grandi sistemi open source come approcciano ai problemi e usa il linguaggio che ti permette (a te o a chi svilupperà) di cambiare e rifattorizzare tutto il più velocemente possibile per venire incontro alle esigenze che verranno fuori.

            Ma io voglio milioni di utenti subito! Piagnina

            La mia idea originaria era di far corrispondere ad ogni utente un file di etsto con i suoi dati, e di porre il file in una cartella che ha come nome i tre o quattro caratteri iniziali del nome utente. Ad esempio suoranciata starebbe nella cartella suo/. Considerando 26 lettere più 10 numeri, potrebbero esserci potenzialmente 363 = 46656 cartelle, distinguendo fra maiuscole e minuscole 623 = 238328. Nei fatti ce ne sarebbero di meno.

            Ogni cartella conterrebbe un massimo di - poniamo - 10.000 file record. La verifica dell'esistenza di un utente avverrebbe per mezzo di due glob successivi, uno che verifica l'esistenza della cartella e l'altra per il file nella cartella. La funzione glob() in PHP m'è sempre parsa piuttosto veloce.

            Verificata l'esistenza del nome utente, cioè individuato il file record, la verifica della password avverrebbe leggendo il nome o il contenuto del file. Anche questo mi sembra piuttosto veloce.

            Problemi potrebbero ipoteticamente verificarsi con delle race conditions. Oppure certamente con limiti di memoria assegnata a un singolo processo. 10 milioni di utenti che compiono un accesso all'anno vorrebbe dire 27397,26 al giorno, 1141,55 all'ora, grossomodo uno ogni 3 secondi. Però gli utenti accederebbero solo quando devono modificare dei dati, si spera quasi mai (ad esempio sono anni che ho gli stessi indirizzi di posta elettronica).

            Un problema più grave è che la mia velocità come sviluppatore consentirebbe di avere il programma pronto per la fine del millennio. Per questo chiedevo se esiste qualcosa di pronto.
            • Avatar
              ☺
              Scritto da
              ::1
              il 2012-07-06 23:43:20.0 alle 2012-07-06 23:43:20.0
              Trollate totali: 12321
              Re: Database da milioni di utenti
              > Ma io voglio milioni di utenti subito! Piagnina

              Ci vogliono i pippi.

              > La mia idea originaria era di far corrispondere ad ogni utente un file di etsto con i suoi dati, e di porre il file in una cartella che ha come nome i tre o quattro caratteri iniziali del nome utente. Ad esempio suoranciata starebbe nella cartella suo/. Considerando 26 lettere più 10 numeri, potrebbero esserci potenzialmente 363 = 46656 cartelle, distinguendo fra maiuscole e minuscole 623 = 238328. Nei fatti ce ne sarebbero di meno.

              Vuoi usare il file system come se fosse un database gerarchico.

              > Ogni cartella conterrebbe un massimo di - poniamo - 10.000 file record. La verifica dell'esistenza di un utente avverrebbe per mezzo di due glob successivi, uno che verifica l'esistenza della cartella e l'altra per il file nella cartella. La funzione glob() in PHP m'è sempre parsa piuttosto veloce.
              > Verificata l'esistenza del nome utente, cioè individuato il file record, la verifica della password avverrebbe leggendo il nome o il contenuto del file. Anche questo mi sembra piuttosto veloce.

              Su linux hai un'aiuto perché il kernel ti da gratis una mega cache del disco, ma letture sparse sono difficili da cachare e ottimizzare.
              Per testare se qualcosa è veramente veloce o meno non andare a istinto, tira fuori dei numeri.
              Io uso di solito ab (apache benchmark) e httperf.
              Protip: il file system è più lento di un db.

              > Problemi potrebbero ipoteticamente verificarsi con delle race conditions. Oppure certamente con limiti di memoria assegnata a un singolo processo. 10 milioni di utenti che compiono un accesso all'anno vorrebbe dire 27397,26 al giorno, 1141,55 all'ora, grossomodo uno ogni 3 secondi. Però gli utenti accederebbero solo quando devono modificare dei dati, si spera quasi mai (ad esempio sono anni che ho gli stessi indirizzi di posta elettronica).

              Che sito è uno a cui fai un accesso l'anno e poi te lo dimentichi?

              > Un problema più grave è che la mia velocità come sviluppatore consentirebbe di avere il programma pronto per la fine del millennio. Per questo chiedevo se esiste qualcosa di pronto.

              Sì, ci sono cms, web application, soluzioni per il login, basate su ldap o database relazionale, dipende da cosa ci devi attaccare al login.
              Young professional woman and busy mom.
              • Avatar
                Scritto da
                Non Autenticato
                il 2012-07-07 00:02:12.0 alle 2012-07-07 00:02:12.0
                Re: Database da milioni di utenti
                > > Ma io voglio milioni di utenti subito! Piagnina
                >
                > Ci vogliono i pippi.

                A me serve una cosa che si possa iniziare avendo come sede uno scatolone.

                > > La mia idea originaria era di far corrispondere ad ogni utente un file di etsto con i suoi dati, e di porre il file in una cartella che ha come nome i tre o quattro caratteri iniziali del nome utente. Ad esempio suoranciata starebbe nella cartella suo/. Considerando 26 lettere più 10 numeri, potrebbero esserci potenzialmente 363 = 46656 cartelle, distinguendo fra maiuscole e minuscole 623 = 238328. Nei fatti ce ne sarebbero di meno.
                >
                > Vuoi usare il file system come se fosse un database gerarchico.

                L'idea era quella. Un file per record in alternativa a un enorme filettone con dentro tutto, come di solito i flat text database. In questo modo per accedere a un record blocco in scrittura, se necessario, un solo file mentre il resto del database rimane accessibile, invece di dover lockare tutto.
                In più i singoli record restano leggibili e modificabili a basso livello, anche a mano.

                > > Ogni cartella conterrebbe un massimo di - poniamo - 10.000 file record. La verifica dell'esistenza di un utente avverrebbe per mezzo di due glob successivi, uno che verifica l'esistenza della cartella e l'altra per il file nella cartella. La funzione glob() in PHP m'è sempre parsa piuttosto veloce.
                > > Verificata l'esistenza del nome utente, cioè individuato il file record, la verifica della password avverrebbe leggendo il nome o il contenuto del file. Anche questo mi sembra piuttosto veloce.
                >
                > Su linux hai un'aiuto perché il kernel ti da gratis una mega cache del disco, ma letture sparse sono difficili da cachare e ottimizzare.
                > Per testare se qualcosa è veramente veloce o meno non andare a istinto, tira fuori dei numeri.
                > Io uso di solito ab (apache benchmark) e httperf.
                > Protip: il file system è più lento di un db.

                Come mai? Newbie, inesperto A bocca storta

                > > Problemi potrebbero ipoteticamente verificarsi con delle race conditions. Oppure certamente con limiti di memoria assegnata a un singolo processo. 10 milioni di utenti che compiono un accesso all'anno vorrebbe dire 27397,26 al giorno, 1141,55 all'ora, grossomodo uno ogni 3 secondi. Però gli utenti accederebbero solo quando devono modificare dei dati, si spera quasi mai (ad esempio sono anni che ho gli stessi indirizzi di posta elettronica).
                >
                > Che sito è uno a cui fai un accesso l'anno e poi te lo dimentichi?

                Sarebbe una cosa del tipo "Ho un'idea per ${X}, se vuoi ricevere informazioni quando sarà concretizzata in un prodotto/servizio iscriviti". L'iscrizione è ovviamente gratis, per questo a me non deve costare un soldo.

                > > Un problema più grave è che la mia velocità come sviluppatore consentirebbe di avere il programma pronto per la fine del millennio. Per questo chiedevo se esiste qualcosa di pronto.
                >
                > Sì, ci sono cms, web application, soluzioni per il login, basate su ldap o database relazionale, dipende da cosa ci devi attaccare al login.
                • Avatar
                  ☺
                  Scritto da
                  ::1
                  il 2012-07-07 00:08:01.0 alle 2012-07-07 00:08:01.0
                  Trollate totali: 12321
                  Re: Database da milioni di utenti
                  > Come mai? Newbie, inesperto A bocca storta

                  stat, lstat e fstat, layer di astrazione, cache per file invece che per area.
                  Per fare un paragone, un database se ha una tabella molto usata può cachare intere regioni, linux al più cacha i singoli files, ma solo dopo il primo uso.
                  Comunque per farla breve, usa mysql e php, quando avrai necessità di scalare sarà il momento di porti il problema.
                  Young professional woman and busy mom.
                  • Avatar
                    Scritto da
                    Non Autenticato
                    il 2012-07-07 00:11:03.0 alle 2012-07-07 00:11:03.0
                    Re: Database da milioni di utenti
                    > > Come mai? Newbie, inesperto A bocca storta
                    >
                    > stat, lstat e fstat, layer di astrazione, cache per file invece che per area.
                    > Per fare un paragone, un database se ha una tabella molto usata può cachare intere regioni, linux al più cacha i singoli files, ma solo dopo il primo uso.
                    > Comunque per farla breve, usa mysql e php, quando avrai necessità di scalare sarà il momento di porti il problema.

                    A bocca storta Mi sento come se il vento mi avesse appena portato via lo scatolone.
<softv>

Pagina generata in 147 millisecondi

Utenti attivi: 25 nell'ultimo minuto, 63 negli ultimi cinque minuti, 135 negli ultimi 15 minuti