Concurrency nei file php

di il
5 risposte

Concurrency nei file php

Salve ragazzi! Da quando ho studiato php (circa 6 mesi fa in quinta superiore) e da quando ho incontrato un problema simile con il c++ e i suoi threads, mi sono sempre chiesto se è possibile che un utente modifichi un dato in un database nel mentre che un altro utente lo legge da un altra pagina. Con solo 2 utenti magari è quasi impossibile, ma con centinaia di migliaia di utenti come nei social network mi sembra quasi impossibile che non succeda continuamente. Ora, io ho un problema dello stesso calibro: devo creare uno script php con *molti* threads, e ognuno deve modificare e leggere i databases. È stato molto complicato farle la concurrency con il c++ (senza database di mezzo però), tanto che ho dovuto comprare un libro per trovare le risposte ai miei problemi perché internet non andava bene. Spero che con il PHP e i database vada meglio... Ho provato a cercare su internet, e credo di aver trovato qualche soluzione sulle "transizioni", ma ho letto anche che ci sono metodi più efficaci, solo che non li trovo. Avete idee/consigli? Anche il nome di una tipologia di algoritmo/tecnologia che posso usare e poi vado a cercarmelo da solo su google.
P.s. effettivamente non ho idea se questo và nella sezione PHP o... Boh, uso mariadb, neanche mysql... Se ho sbagliato vi prego spostate il post nella sezione corretta. Grazie di tutto

5 Risposte

  • Re: Concurrency nei file php

    La stada che stsi seguendo e' quella giusta
    1) ase non si sa qualcosa, SI COMPRA UN LIBRO
    2) I casini con la concorrenza non si sempligicano miracolosamente: si semplificano un po' SOLO PERCHE' il modo di usare un certo oggetto (il DBMS) non e' libero, ma DEVE seguire delle regole

    L'accesso concorrente ad un record di una tabella e' NORMALE AMMINISTRAZIONE, ed il DBMS mette a disposizione servizi specifici: appunto, le TRANSAZIONI (c'e' ne sono di diversi tipi)

    Ma la transazione serve se di deve scrivere, non se di deve leggere

    Benvenuto nel miracoloso mondo dei DBMS.

    Studia 'teoria relazionale dri dati'
  • Re: Concurrency nei file php

    Aggiungo solo che alcuni DBMS gestiscono già le singole query come se fossero delle transazioni, per cui in quei DBMS creare esplicitamente una transazione è necessario solo se devi eseguire più query in qualche modo collegate tra loro.
  • Re: Concurrency nei file php

    migliorabile ha scritto:


    Ma la transazione serve se di deve scrivere, non se di deve leggere
    Quindi se ho una serie di cicli while in loop quasi infinito che continuano a creare transizioni per scrivere il file la pagina php/un altro script normale php non ha bisogno di usare una transizione per leggere? E se nel mentre che prova a leggere quella tabella uno dei loop la modifica?
  • Re: Concurrency nei file php

    Presumo che migliorabile si riferisse al caso in cui hai solo letture. Se hai sia letture che scritture, dipende da molti fattori, ma in generale è meglio che anche le letture siano transazionali, proprio per evitare quel che dici tu. Per dettagli: http://dbdmg.polito.it/wordpress/wp-content/uploads/2010/12/6-ConcurrencyControl-x6.pdf
  • Re: Concurrency nei file php

    Gazie ragazzi! Un'ultima cosa (spero):
    Ho cercato e mariadb + php hanno un sistema di gestione transizioni tramite funzioni attivato di default. Ma questo funziona tra tutti i file php (script, cicli vari, pagine web), non solo su un file vero?
    ... Potrebbe essere una domanda un pò scontata, ma ho trovato tante cose sulla programmazione che pensavo fossero scontate e invece non lo erano.
Devi accedere o registrarti per scrivere nel forum
5 risposte