Come bloccare e non utilizzare un database?

3

Ho un progetto che comporta la riscrittura di tutto il back-end di un'applicazione legacy. Utilizza XML per la persistenza ed è stato originariamente scritto come un singolo sistema utente.

Con un grande file XML a cui potevano accedere più utenti e quindi corrotto, stavo pensando di introdurre un database SQL in cui un utente potesse lavorare sulla sua risorsa e lasciare che il database si preoccupasse della concorrenza.

Con le scadenze brevi, mi chiedevo se potevamo mantenere la persistenza xml (così come tutta la logica aziendale) e introdurre il blocco in qualche altro modo. È possibile?

    
posta JD01 06.02.2012 - 00:01
fonte

2 risposte

6

Se ascolti alcune di queste risposte, stai scambiando un diavolo per l'altro.

Il modo in cui la maggior parte delle persone consiglia, il blocco dei file serializza semplicemente le scritture nel file e non affronta in alcun modo il logico danneggiamento della struttura del file XML. Creerebbe solo un ultimo nella situazione di vittorie in cui le scritture precedenti non vengono prese affatto in considerazione.

Esistono motori di transazione che possono essere aggiunti a livello logico (applicazione) ma a meno che la logica sia estremamente complessa e poco adatta a ciò che un RDBMS reale già fornisce, sarà ancora più una curva di apprendimento e anche più di una manutenzione problema.

Mordifica il proiettile e fallo nel modo giusto, il modo rapido e sporco ti fa entrare nel pasticcio in cui ti trovi apparentemente.

    
risposta data 06.02.2012 - 00:24
fonte
4

Assolutamente. Tutte le piattaforme hanno una sorta di "blocco file". Su Unix sono disponibili il blocco flock e fcntl. Su Windows esistono strutture simili.

Il link ha un buon sommario e indica le implementazioni, oltre ai problemi che potresti incontrare.

    
risposta data 06.02.2012 - 00:05
fonte

Leggi altre domande sui tag