Postgresql que se muere

Franco Catrin L. fcatrin en tuxpan.com
Jue Jul 15 15:15:24 CLT 2010


El jue, 15-07-2010 a las 13:02 -0400, Aldrin Martoq escribió:
> On Jul 15, 2010, at 10:03 AM, Franco Catrin L. wrote:
> > El mié, 14-07-2010 a las 17:16 -0400, Aldrin Martoq escribió:
> >> On Jul 14, 2010, at 3:14 PM, Franco Catrin L. wrote:
> >>> Eso es lo que se ve por fuera, pero el día en que inventen un SELECT que
> >>> ocupe cero bytes está lejos aún.
> >>> Lectura recomendada:
> >>> http://www.joelonsoftware.com/articles/LeakyAbstractions.html
> >> Yo difiero de este pensamiento. La capa extra (en este caso, la base de datos) debe ser lo suficientemente robusta para no gotear errores inesperados, pues es quien tiene toda la información de saber qué paso realmente.
> > Mi mirada al documento es respecto a cómo las abstracciones pueden jugar
> > en contra cuando no sabes qué está pasando realmente por debajo, algo
> > que queda claro al leer los comentarios en este thread.
> 
> > Un buen ejemplo que da el autor es cuando recorres una estructura de
> > datos y perfectamente el programador puede recorrerla de una forma que
> > el rendimiento se degrade.
> > Las "abstracciones que gotean" no son un error, son un hecho.  
> 
> No, eso se llama usar la herramienta adecuada. Si estas usando un software para lo que no está hecho, obvio que te vas a topar con cosas para las cuales no estaba preparado.

No entiendo la relación?  Leíste el artículo completo?

> Si volvemos al tema original, el error de postgresql es algo que no espero de una base de datos (bueno, en realidad puede fallar pero el mensaje te deja de manos cruzadas). Y eso independiente de cómo este hecho por debajo.

Por qué no? Es una situación de excepción, al igual que cuando el
cliente te avisa que no se puede conectar a la base de datos.

Si te fijas, el error dice que no pudo obtener la memoria que necesitaba
para realizar la operación, algo que siempre puede suceder.  En este
caso es claro que no se justifica y el motor se confundió al estimar el
tamaño, pero en el normal de los casos sí debería retornar una excepción
cuando no puede hacer lo qué le estás pidiendo.

ERROR:  invalid memory alloc request size 1818585462

Puesto de otra forma, qué hubieras esperado que te informara el servidor
si no hay suficiente memoria para realizar la operación?  Datos
inventados?

Saludos
-- 
Franco Catrin L. http://www.tuxpan.com/fcatrin
TUXPAN Software S.A.



Más información sobre la lista de distribución Linux