Italian SQQLITE - chi lo sapeva

ivanomonti

Expert
Licensed User
Longtime User
SQLite è senza server
La maggior parte dei motori di database SQL sono implementati come un processo server separato. I programmi che desiderano accedere al database comunicano con il server utilizzando una sorta di comunicazione tra processi (in genere TCP / IP) per inviare richieste al server e ricevere risultati. SQLite non funziona in questo modo. Con SQLite, il processo che desidera accedere al database legge e scrive direttamente dai file del database sul disco. Non esiste un processo server intermedio.

Ci sono vantaggi e svantaggi di essere senza server. Il vantaggio principale è che non esiste un processo server separato da installare, configurare, configurare, inizializzare, gestire e risolvere i problemi. Questo è uno dei motivi per cui SQLite è un motore di database a " configurazione zero ". I programmi che utilizzano SQLite non richiedono supporto amministrativo per la configurazione del motore di database prima di essere eseguiti. Qualsiasi programma in grado di accedere al disco è in grado di utilizzare un database SQLite.

D'altra parte, un motore di database che utilizza un server può fornire una migliore protezione dai bug nell'applicazione client - i puntatori vaganti in un client non possono corrompere la memoria sul server. E poiché un server è un singolo processo persistente, è in grado di controllare l'accesso al database con maggiore precisione, consentendo un blocco più preciso e una migliore concorrenza.

La maggior parte dei motori di database SQL sono basati su client / server. Di quelli senza server, SQLite è l'unico noto a questo autore che consente a più applicazioni di accedere allo stesso database contemporaneamente.

2. Classic Serverless vs. Neo-Serverless
(Questa sezione è stata aggiunta il 02-04-2018)

Recentemente, la gente ha iniziato a usare la parola "serverless" per indicare qualcosa di sottilmente diverso dal suo significato previsto in questo documento. Ecco due possibili definizioni di "serverless":

  1. Serverless classico: il motore di database viene eseguito nello stesso processo, thread e spazio indirizzo dell'applicazione. Non vi è alcun passaggio di messaggi o attività di rete.
  2. Neo-Serverless: il motore di database viene eseguito in uno spazio dei nomi separato dall'applicazione, probabilmente su una macchina separata, ma il database viene fornito come servizio chiavi in mano dal provider di hosting, non richiede gestione o amministrazione da parte dei proprietari dell'applicazione, ed è così facile da usare che gli sviluppatori possono pensare al database come privo di server anche se utilizza davvero un server sotto le coperte.
SQLite è un esempio di un classico motore di database senza server. Con SQLite, non ci sono altri processi, thread, macchine o altri meccanismi (oltre al SO del computer host e al filesystem) per aiutare a fornire servizi di database o implementazione. Non c'è davvero nessun server.

Microsoft Azure Cosmo DB e Amazon S3 sono esempi di database neo-serverless. Questi database sono implementati da processi server eseguiti separatamente nel cloud. Ma i server sono gestiti e amministrati dall'ISP, non dallo sviluppatore dell'applicazione. Gli sviluppatori di applicazioni utilizzano semplicemente il servizio. Gli sviluppatori non devono eseguire il provisioning, la configurazione o la gestione delle istanze del server di database, poiché tutto questo lavoro viene gestito automaticamente dal fornitore del servizio. Esistono infatti server di database, che sono appena nascosti agli sviluppatori.

È importante comprendere queste due diverse definizioni per "senza server". Quando un database afferma di essere "senza server", accertati di capire se significano "serverless classico" o "neo-serverless".

fonte https://www.sqlite.org/serverless.html
 

amorosik

Expert
Licensed User
SQLite è l'unico noto a questo autore che consente a più applicazioni di accedere allo stesso database contemporaneamente.

Anche Firebird ha l'installazione classica con server, e l'installazione minimal con solamente libreria funzioni che consente l'accesso al db fisico
Ma nel secondo caso si parla sempre di comunicazione tra UNA applicazione ed UN db, non si parla di multiutenza
Sei sicuro che SqlLite consenta l'accesso in multiutenza SENZA un server di mezzo tra client e database?
 
Top