Fondamenti / PR4 · Confini dell'eliminazione

Che cosa eliminano, ciascuno per sé, la disconnessione, la cancellazione dell'account e l'eliminazione di un progetto

Uscire dalla connessione, cancellare l'account ed eliminare un progetto sono tre azioni diverse, con ambiti di eliminazione che non si comunicano tra loro. L'uscita chiude la sessione e ripulisce tre cose su questo dispositivo: il database ospite locale, i file media dell'ospite e la copia locale di questo dispositivo che scambia le modifiche con il tuo iCloud. Non elimina alcun record del tuo database privato iCloud e non elimina i file video originali sul dispositivo. Prima di chiederti “cosa è stato eliminato”, verifica quale delle tre azioni hai compiuto.

Lo stesso verbo «eliminare», arrivato a tre punti di ingresso diversi, attiva tre ambiti di dati diversi: il risultato di un percorso non si può applicare agli altri due.

Uscire dalla connessione: su questo dispositivo non resta nulla del team precedente, e i tuoi dati cloud non cambiano di una riga

L'ordine dell'uscita prima mette in pausa le scritture di dati correnti e le operazioni esterne, poi tratta le credenziali di connessione e solo dopo ripulisce il dispositivo. La pulizia arriva a tre punti: le righe archiviate nel database ospite locale vengono cancellate, i media ospite e le copertine della libreria di continuità vengono eliminati fisicamente (resta solo il record radice fisso dell'ospite), e la copia locale di questo dispositivo, quella che scambia le modifiche con il tuo iCloud, viene eliminata nell'istante in cui tocchi “Esci dalla connessione”, senza aspettare la riapertura dell'app. Il confine decisivo non cambia: nemmeno una riga del tuo database privato iCloud viene eliminata; riconnettendoti la recuperi.

Questo ordine non è “prima svuota i dati, poi vedi se l'uscita riesce”. La chiusura delle credenziali viene prima della pulizia; se un passaggio precedente dell'uscita fallisce, la pulizia non prosegue, la schermata di errore chiede solo di riprovare e lo stato della sessione non cambia. Prima di eliminare quella copia locale, l'app concede a iCloud una finestra brevissima per accertare che le ultime modifiche del dispositivo siano state trasmesse; è solo tempo dato alla sincronizzazione, non una condizione posta sull'uscita. Quindi “l'uscita non elimina nulla”, “l'uscita elimina i tuoi dati cloud” e “l'uscita svuota tutti i media di questo dispositivo” non descrivono il comportamento reale: sul dispositivo l'eliminazione è completa, ma i file video originali restano intatti; solo la cancellazione dell'account o la cancellazione del dispositivo a livello di sistema li porta via.

L'uscita ripulisce tre cose sul dispositivo: il database ospite locale, i file media dell'ospite e quella copia locale iCloud. Non elimina nessun dato del tuo database privato iCloud e non elimina i file video originali del dispositivo.

Cancellare l'account: prima congelare l'ambito, poi confrontare l'insieme, da ultimo chiudere la sessione

La cancellazione dell'account prende un altro percorso. Congela prima l'ambito di appartenenza dei media da trattare secondo l'identità Apple corrente, e l'appartenenza viene da quattro percorsi di relazione; poi pulisce il database ospite e scrive l'elenco di pulizia dei media, e con le stesse condizioni di appartenenza riprende l'insieme di destinazione. Se l'insieme ripreso non corrisponde a quello congelato in precedenza, l'operazione segnala un errore e fa un rollback, invece di continuare a eliminare un insieme di cui non si può confermare la completezza dell'ambito.

Solo dopo il confronto degli insiemi riuscito si passa all'eliminazione dei media e delle righe di database lato account, e per ultimo si chiude la sessione e si puliscono le impostazioni. Ciò che il codice elimina sono le registrazioni ottenute per quell'identità nell'ambiente locale dei dati dell'account, su questa macchina; questa evidenza non prova quando altri dispositivi o il cloud raggiungano lo stesso stato.

Cancellare l'account non equivale neppure a revocare l'autorizzazione di connessione con Apple. Il codice sorgente attuale non esegue alcuna revoca dell'autorizzazione, e la pagina delle impostazioni può soltanto rinviare l'utente alle impostazioni di sistema per compiere quel livello di operazione. Questa pagina non può quindi scrivere che «eliminare i dati dell'account» equivalga a «revocare con un solo passo tutte le autorizzazioni esterne».

Eliminare un progetto: tratta solo quel progetto e non tocca la sessione dell'account

L'eliminazione di un progetto è un gesto di livello progetto. Congela prima i percorsi dei media associati a quel progetto e poi entra nella fase di commit del database; solo dopo che il progetto e le sue relazioni a cascata sono stati eliminati in commit, l'elenco di pulizia dei media entra nello stato in cui può proseguire con la pulizia fisica dei file. L'ambito di questo gesto è il progetto target e le registrazioni e i media raggiungibili scendendo dal progetto: non provoca per questo la disconnessione dell'account e non modifica lo stato di connessione cloud.

Come per l'eliminazione dei record di ciak e degli altri livelli, anche qui la pulizia dei media non dipende dal cascade del database: passa da un elenco a fasi, che prima prepara l'elenco, poi lo marca come «commit del database in corso», dopo il commit lo segna come committato e solo alla fine esegue la pulizia fisica dei file. Se il database è già committato e la pulizia dei file fallisce dopo, il database non fa un rollback per ripristinare il progetto; l'elenco resta e all'avvio successivo può continuare a trattare la parte di pulizia già confermata come committata.

L'eliminazione di un progetto non è un'operazione da cestino. Oggi non esiste un «Eliminati di recente» né un percorso di annullamento. Questo descrive come viene eseguita l'eliminazione del progetto su questa macchina e non prova quando altri dispositivi o il cloud si allineino a essa.

Perché la pulizia dei media ha ancora bisogno di un elenco a tre fasi

I file media non spariscono automaticamente con il cascade del database, e per questo i percorsi di eliminazione usano un elenco di pulizia con le fasi, che separa «in preparazione», «commit del database in corso» e «database committato». Solo gli elenchi il cui commit del database è confermato possono essere trattati oltre, sui file, all'avvio successivo. Un elenco che è ancora in preparazione o in commit non viene scansionato come se l'eliminazione fosse già completata per il solo fatto che l'app è stata riaperta.

Di questo tipo di elenco, per i media non di bozza, può essercene in piedi una sola copia alla volta. Se ne esiste già una non chiusa, il nuovo compito viene rifiutato, invece di essere gestito in parallelo o messo in una delle code separate. Non si può quindi descrivere l'implementazione attuale come capace di eliminare più progetti nello stesso momento, né la ripresa all'avvio come «a ogni avvio pulisce automaticamente tutti i residui».

Che cosa questa pagina non può dimostrare

I tre percorsi possono descrivere l'ordine di trattamento dei dati del database locale e dei file media in ciascuna operazione, e possono descrivere dove si ferma un passo quando fallisce. Non possono provare a che ora il cloud e gli altri dispositivi raggiungano la consistenza finale, non possono scrivere l'eliminazione del progetto come un meccanismo di annullamento fra dispositivi e neppure scrivere la cancellazione dell'account come una revoca delle autorizzazioni di connessione esterne.

Per giudicare che cosa veda un altro dispositivo dopo un'operazione servono una sincronizzazione reale e una verifica lato dispositivo fatte a parte; questa pagina si ferma a «che cosa il codice su questa macchina ha davvero eliminato».

FAQ

L'uscita dalla connessione elimina i record cloud del database dell'account?

Non prende il percorso di eliminazione dei dati dell'account. L'uscita chiude la sessione e ripulisce tre cose su questo dispositivo — il database ospite locale, i file media dell'ospite e la copia locale sincronizzata con iCloud —, ma i record del tuo database privato iCloud non sono un obiettivo di eliminazione di questa azione; riconnettendoti li recuperi. Anche i tuoi file video originali non rientrano in questa pulizia.

Perché la cancellazione dell'account fa prima il confronto degli insiemi?

Perché congela prima un ambito ottenuto per appartenenza con l'identità corrente e poi lo riprende una seconda volta con le stesse condizioni; se i due insiemi non coincidono, fa rollback, così da non continuare a eliminare quando l'ambito di appartenenza non è confermabile.

Eliminare un progetto disconnette anche l'account?

No. È un gesto di livello progetto: tratta le relazioni di database e la pulizia dei media del progetto target e non cambia lo stato di connessione dell'account.

Dopo l'eliminazione, un progetto si può recuperare da «Eliminati di recente»?

Oggi non esistono cestino, «Eliminati di recente» o un percorso di annullamento. L'elenco di pulizia dei media serve a garantire l'ordine fra commit del database e pulizia fisica dei file, non è un meccanismo di recupero.


Axiom One LLC — SlateX. I numeri di questo articolo sono aggiornati al 2026-09-24.