Rodrigo Fuentealba escribió:

> Ahora, para esto tengo dos posibilidades: OID's y byte arrays. En
> experiencias como ésta... por tonta que sea la idea de meter un
> documento en una base de datos para compartirlo entre varias
> aplicaciones (la experiencia me dice que en el sistema de archivos la
> cosa no siempre funciona bien porque no existe un fine tunning como el
> que se requiere), ¿cuál será mejor, y por qué? sé cómo manipular ambos
> tipos de datos, pero desconozco los detalles de las diferencias como
> para discriminar, ¿qué me aconsejarían ustedes?

Yo te recomendaria usar bytea.

Los "large objects" (LO) tienen la desventaja de que no tienen control
de acceso y tienen una API que es totalmente diferente de lo que uno
acostumbra a usar en SQL (lo_open, lo_read etc).  Cuando quieres hacer
alguna cosa en "relacional" quedas muy amarrado de manos.

Los bytea tienen la desventaja de que no puedes operar sobre el objeto
porcionadamente; por ej. no puedes hacer seek y reemplazar un pedazo.
Pero creo que cuando almacenas documentos (PDF, Word, etc), rara vez
(lease nunca) haces eso; mas bien lo que haces es crear un objeto
totalmente nuevo.  La otra desventaja principal es que tienes que
escapar los bytes que vayas a insertar y des-escapar cuando los
extraigas(*); pero a cambio recibes el beneficio de poder operarlo
normalmente con INSERT, SELECT, etc, y construir un mecanismo de
"auditoria" puede ser mas sencillo.

Por otro lado, en Postgres el uso de bytea esta bastante optimizado por
el mecanismo conocido como TOAST.  Te recomiendo usar
ALTER TABLE tabla ALTER COLUMN columna SET STORAGE EXTERNAL
en la columna bytea, de manera que el sistema no trate de comprimir los
datos almacenados (generalmente la compresibilidad de esos documentos no
es mucha, y es mas rapido el acceso si no tiene que estar
comprimiendo/descomprimiendo).

(*) la alternativa a escapar/des-escapar es usar una API como
PQexecParams, pero si vas a usar PHP creo que eso no esta disponible.
En lenguajes razonables puedes hacerlo y es mucho mas eficiente porque
los datos binarios pasan directo a la base de datos y no se tiene que
gastar memoria en el proceso de escape.


Con respecto a la alternativa de almancenar los datos en el sistema de
archivos y guardar solo una referencia en la BD, te recomiendo que no lo
hagas a menos que el volumen de datos sea muy grande (hablo de decenas
de GB).  Es muy dificil hacerlo correctamente, sobre todo si nunca lo
has hecho, y no hacerlo correctamente lleva a documentos sin referencia
y referencias a documentos inexistentes, que son muy incomodos de
manejar.

-- 
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"Changing the world ... one keyboard at a time!"
                         (www.DVzine.org)
From [EMAIL PROTECTED]  Wed Mar  7 14:14:04 2007
From: [EMAIL PROTECTED] (Enrique Herrera Noya)
Date: Wed Mar  7 14:15:13 2007
Subject: algunos problemas con postfix
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

El 7/03/07, Andres Pereira <[EMAIL PROTECTED]> escribió:
> 2007/3/7, Enrique Herrera Noya <[EMAIL PROTECTED]>:
> > 1. en forma aleatoria no llegan algunos mensajes.
> > la configuracion es postfix + spamassassin+mysql+postgrey+sasl+clamav
> >
> > revice todos los log y no veo nada relevante
> > alguna sugerencia?
>
> Puede que los mensajes que no llegan se debe a que son descartados por
> ser spam  o virus, revisa la configuración del amavisd (por los
> encabezados que muestras abajo estás usando esa interfaz).
>
revisare, pero son email no solo de gamil, hotmail, los que se "pierden",
tmabien de empresas...



> > 2. se pretende configurar un nuevo servidor desde cero, con una distro
> > para servidores
> > (esta con ubuntu :-S ), como recupero los email que estan en el
> > servidor antiguo?
> > llegar y tar , scp, hacia el equipo nuevo?
>
> Hay que tener cuidado con los permisos también.
ok, teniendo ese cuidado se hace
o man dd ;-)

>
> > 3. dig al dominio me arrojo
> > correo1.yyyy.cl 600   10 IP1
> > correo2.yyyy.cl 600   10 IP2
> > correo3.yyyy.cl 600   10 IP3
> >
> > donde en correo2 esta ldap que lo usan como libreta de direcciones.
> > y correo3 solo esta de respaldo cuando se cae  correo1
>
>
> Si correo2 lo usan como libreta, para qué tienes definido el MX?
>
perdon en correo2  no esta ldap, esta en otro..

> > no es que deberian estar las prioridades diferentes?
>
> No necesariamente si es que deseas tener un pseudo-esquema de balanceo de 
> carga.

aaaaa,
voy entendiendo la configuracion
osea puede que los email esten en correo2 y correo3

por lo que deberia ver como configurar pop3 e imap para que rescate
los email de los tres servidores ?


>
> > 4. esta es la cabecera de un email que si llego,
> > donde encuentro un doc que me permita entender por que tantos Receivered
>
> No veo nada raro...el mensaje pasa por varios servidores internos de
> google, luego sale por un smtp externo de google, llega a tu servidor
> (puerto 25) y ahi lo revisa el amavisd (localhost:10024) y finalmente
> inyecta el mensaje al localhost:25 para su entrega...
ok, con tu explicacion y releer la cabecera me quedo claro
graciax



>
> --
> Andrés Pereira
>
>


-- 
http://www.chilelinks.cl/
http://www.decurauma.cl/wendyx  Wendyx 1.0

Responder a