Qual è il termine corretto per descrivere un “operazione permanente”?

dba.stackexchange https://dba.stackexchange.com/questions/2313

  •  16-10-2019
  •  | 
  •  

Domanda

Sono una specie di l'amministratore di un OODBMS zero di amministrazione, ma soprattutto mi fare programmazione.

Ricordo di aver letto anni fa su alcuni database SQL che aveva un concetto di qualcosa di simile a una transazione permanente. Avrebbe potuto essere Sybase. In ogni caso, ciò che quella "cosa" è stato, era come una transazione che si avvia, e che persistono tra le connessioni, e withing quale è possibile eseguire operazioni "normali". E 'in pratica ti ha dato una "vista" della banca di dati che potrebbero divergere dal database principale, ma in esecuzione sullo stesso server, e quindi condividere la maggior parte delle risorse, invece di dover avere del "proprio" server. Spero che tu capisca cosa voglio dire ora.

In ogni caso, ciò che è quel tipo di cosa che si chiama, ed è ancora disponibile in banche dati moderni. In particolare, v'è alcuna della fantasia distribuito database NoSQL che può farlo?

Il motivo che chiedo, è perché ho potuto usare qualcosa di simile per eseguire la messa in scena della prossima versione del mio software sul database principale, mi risparmio la necessità di avere un sistema di messa in scena che è potente come quello principale , e la fatica / banda di sincronizzare le modifiche dal principale alla prova. Vorrei solo iniziare l ' "operazione permanente", provare il nuovo software per qualche giorno, forse lasciando che alcuni utenti ottengono un'anteprima, e buttare via le modifiche quando ho finito. Poi faccio la distribuzione reale, e iniziare una nuova "operazione permanente" per la prossima versione ...

NB: non riuscivo a mettere tag significativi perché è il mio primo post e non ho il diritto di inventare i tag, e non c'era nulla di simile "persistenti", o "permanente" o anche "long running" .. .

È stato utile?

Soluzione

Lo so sorta-di quello che vuoi dire, lo facciamo sul storage utilizzando NetApp FlexClones . Un FlexClone "guarda", proprio come una copia di un file system, ma i blocchi sottostanti sui dischi sono copy-on-write, quindi l'unico spazio che in realtà occupa è quella della modifica apportata.

Tuttavia, il clone è non un flusso di cambiamenti, come un redo log. Il modo in cui funziona NetApp è che ogni blocco che si vede a livello di filesystem è in realtà un solo puntatore a un blocco della memorizzazione "reale". La creazione di un FlexClone è semplicemente una questione di copiare l'elenco dei puntatori, quindi è un'operazione molto leggero. Quando si modifica un blocco su un FlexClone il puntatore viene spostato in un blocco di fresco, e l'originale viene copiato, poi si procede come di consueto. Questo ha due implicazioni interessanti:

  1. Dopo aver modificato un blocco, una volta, si può andare avanti cambiarla tutte le volte che ti piace - che occuperà non più spazio di archiviazione
  2. Una volta che la mucca iniziale è fatto, la velocità di accesso al FlexClone è identico a quello di un volume reale.

tipicamente mettere la primaria in hotbackup modalità (per Oracle , ma dal momento che è sulla conservazione questo funziona con qualsiasi database che dispone di una modalità equivalente), FlexClone l'archiviazione, montare il clone con NFS sul (molto più piccolo server di test), quindi creare un nuovo control, ripristinare il database da rifare archiviato i registri come necessario e aprirlo con resetlogs. Permettiamo una "riserva snap" del 10% di default (cioè è possibile modificare fino al 10% del clone), ma questo è completamente configurabile - si può rendere al 100% e fare una "split" che crea una copia indipendente troppo. Questa tecnologia (con un po 'di shell scripting intelligente) ha portato la creazione di ambienti di test giù da 3+ giorni per una questione di minuti al mio sito, io sono un grande fan.

Altri suggerimenti

Credo che siete alla ricerca di un Disconnected Dataset. Lo fa complicare la gestione delle transazioni, come non è possibile mantenere blocchi di database.

driver

JDBC consentono un set di dati per essere scollegato dal database.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top