[Python] Io lo so che coem sistemista faccio schifo

Manlio Perillo manlio.perillo a gmail.com
Ven 20 Mar 2015 12:35:40 CET


2015-03-20 11:58 GMT+01:00 Roberto De Ioris <roberto a unbit.it>:

> [...]

> >>
> > Ho trovato il thread su golang-nuts.
> >
> > Cosa intendi che senza fork non funziona mmap?
> >
> >
>
>
> mi riferisco a mmap(..., MAP_SHARED, ...) che e' la base di tantissime
> tecnologie (tra cui postgresql). Il succo e' che se mi vendi un linguaggio
> come 'di sistema' e poi non ci posso riscrivere il mio postgres ci rimango
> un po' male :)
>
>
L'idea è che postgresql usa un processo per ogni connessione, mentre in Go
useresti una goroutine.

Un uso di fork molto utile/comodo, IMHO, è quello che ne fa redis quando
effettua il dump del database su file.
Usando fork non ha bisogno di sincronizzare l'accesso al database,
potenzialmente rallendando o bloccando eventuali lettori/scrittori.

Anche la demonizzazione, non la vedo come una mancanza grave.
Con systemd, ad esempio, sembra non sia più necessaria.

Sarebbe comodo se fosse possibile con clone di Linux, dire al kernel di non
mappare nel processo figlio una certa regione di memoria,
ed usare questa regione per memorizzare tutte le variabili usate per la
sincronizzazione.  Ma anche se fosse possibile, probabilmente gli
sviluppatori di Go non la userebbero perchè aumenta la complessità.

Alla fine, comunque, credo che a Go manchi un nuovo tipo di "sistema"
operativo, oppure per gli sviluppatori "sistema" significa Plan9
(su questo punto ho letto di molte critiche).


Ciao  Manlio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150320/2423e5e6/attachment-0001.html>


Maggiori informazioni sulla lista Python