From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Rubén da Silva <ruben(at)ozonomultimedia(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Almacenar Foto, Audio y Video |
Date: | 2006-02-24 23:22:39 |
Message-ID: | 20060224232239.GF9060@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Rubén da Silva escribió:
> Fuera de la BD, guardando solo el nombre y la ruta del fichero a
> guardar, rompe por completo la integridad transaccional ya que no se
> gestionarían a base de SELECT y DELETE (UPDATE no se usará casi nada)
>
> ¿Que hacer? ¿Gestionar estos ficheros externos con triggers?
Lo que yo haria seria implementar esta opcion. Pero en lugar de
gestionar los archivos con triggers, tendria una tabla de "eventos" (por
ej. "borrado de la imagen XYZYYZ") que se vaya llenando con los
triggers. A su vez, esta tabla genera algun NOTIFY en un trigger AFTER
INSERT. Un daemon estaria haciendo LISTEN de eso, y actuaria en
consecuencia para borrar los archivos que se hayan registrado. Luego de
borrar el archivo, el daemon borra o marca como "completado" el registro
en la tabla de eventos.
Si hay un problema y el sistema se cae, el daemon al reiniciar revisa la
tabla de eventos desde cero y verifica todos los archivos que pudieron
haber quedado sin borrar.
El problema es que tener una tabla con muchos BYTEAs podria ser
problematico para el respaldado, puesto que tendrias que volcar todos
los archivos cada vez que hagas pg_dump. Si usas otra herramienta como
rsync (que puedes usar si tienes los archivos directamente en el
filesystem), el respaldo puede ser mucho mas eficiente.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Martínez | 2006-02-25 02:54:01 | Re: pregunta importacion con copy |
Previous Message | Leonel Nunez | 2006-02-24 23:17:43 | Re: Almacenar Foto, Audio y Video |