Re: [OFFTOPIC] - Espacio en disco de tablas con imágenes.

From: Eduardo Morras <emorrasg(at)yahoo(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [OFFTOPIC] - Espacio en disco de tablas con imágenes.
Date: 2016-02-16 09:06:08
Message-ID: 20160216100608.8f9baf3be32ab45c4668461c@yahoo.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, 15 Feb 2016 18:06:09 -0300
Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:

> Eduardo Morras escribió:
> > On Fri, 12 Feb 2016 09:43:52 -0300
> > Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote:
> >
> > > En realidad esas no son las preguntas que tenemos pendientes
> > > ahora. Esas que propones ya se han discutido, y algoritmos como
> > > lz4 y Snappy otros se han mencionado varias veces. El problema
> > > pendiente es cómo permitir nuevos algoritmos de compresión en el
> > > sistema. Mira por ejemplo este hilo:
> > >
> > > http://www.postgresql.org/message-id/flat/20130614230142(dot)GC19641(at)awork2(dot)anarazel(dot)de
> > >
> > > y quizás este:
> > > https://www.postgresql.org/message-id/CAPpHfdsdTA5uZeq6MNXL5ZRuNx%2BSig4ykWzWEAfkC6ZKMDy6%3DQ%40mail.gmail.com
> >
> > Comprendido, el problema es que no hay sitio para codificar que
> > algoritmo de compresion se usa a nivel de toast.
>
> Si, pero también:
>
> 1. no hay consenso respecto del tema patentes. Los más conservadores
> no quieren meterse en líos por posibles patentes que puedan existir.

La mayor parte o bien nunca se han patentado (huffman, bwt), o bien las patentes han expirado o nunca se han aplicado(arithmetic coding, dmc, ppm, hash en lz77, deflate/zlib/gzip, rle). Es cierto que hay hay algoritmos en un claro oscuro (CM/ContextMixing, ROLZ, derivaciones de ppm/dmc), pero no necesarios para implementar uno.

Ten en cuenta que estoy metiendo en el mismo saco, algoritmos de compresion y modelos de datos.

> 2. ¿qué sucede si instalas un módulo X que permite compresión con
> algoritmo XYZ, actualizas datos y después bajas la BD y la levantas
> sin ese módulo?

Si bajas la BD y la levantas sin ese modulo, sigues pudiendo acceder a los datos, pero no a la informacion, independientemente de que algoritmo de compresion hayas usado, ya que es el modulo XYZ el que sabe interpretar dichos datos. Sigues pudiendo hacer backups, borrar tuplas, consultas genericas, (select count(*) from table1) etc.. pero no hacer una consulta sobre una informacion especifica (select avg(c1) from table1)

Los algoritmos de compresion 'pesan' muy poco en el ejecutable final y se pueden incluir en el core. No hace falta implementar muchos en core (1 o 2), pero si hacer que modulos que manejen datos con una estructura especial puedan implementar su propio algoritmo. Por ejemplo, PostGis puede implementar algoritmos especificos para comprimir sus datos. O un modulo de audio comprima sin perdida aplicando un algoritmo especifico para audio.

Sobre el problema de implementacion, se puede pasar a pglz datos ya comprimidos con otro compresor, configurando pglz sin compresion o con la peor compresion posible para que se rinda al procesar los 100 primeros bytes. Esto es similar a insertar en la bd datos precomprimidos como imagenes o documentos pdf. Como tamaño maximo, se perderian los bits que marcan los metadatos del actual algoritmo, ya que la informacion de si esta comprimido o no y con que algoritmo estaria dentro del stream de datos comprimidos, pero perder unos bits en 8KB no es mucho.

Como dice el RFC1925, hay que añadir otro nivel de indireccion.

Un saludo

--- ---
Eduardo Morras <emorrasg(at)yahoo(dot)es>

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ruben Fitó 2016-02-16 13:02:29 Replicacion asincrona de base de datos en vez de cluster
Previous Message ๏̯͡๏ Guido Barosio 2016-02-16 02:28:58 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Evaluando PostgreSQL para solución de mision crítica