RE: Runs y Logical Tapes

From: Manolo _ <mac_man2005(at)hotmail(dot)it>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Runs y Logical Tapes
Date: 2008-02-12 21:54:47
Message-ID: BAY112-W3347534CA52B112588ACCEE62B0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Pues mejor precise que esa lectura la quiero hacer durante la fase de creación de los runs, no durante el merging. El reciclaje de los tapes, como tu dices, se produce durante la fase de merging, no durante la fase de creación de los runs. Para que nos entendamos, todo eso parte de tuplesort,c

Lo que quiero lograr es hacer que durante cada paso de la fase de creación de los runs se produzcan dos runs a la vez en lugar que unico run producido por el algoritmo corriente: dejando de detalles, esos dos runs los creo de forma tal que los pueda acomodar temporalmente cada uno en dos tapes diferentes y luego juntarlos a bajo costo al fin de crear un unico run. Ese unico run es el que finalmente se guardará por cuando comience la fase de merging.

Te pido disculpa por no haber proporcionado mas detalles desde el principio.

Gracias por tu ayuda.
Un saludo!

----------------------------------------
> Date: Tue, 12 Feb 2008 18:24:45 -0300
> From: alvherre(at)commandprompt(dot)com
> To: mac_man2005(at)hotmail(dot)it
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] Runs y Logical Tapes
>
> Manolo _ escribió:
>>
>
>> Yendo un poquito mas alla con la implementación de esas mismas
>> estructuras pues tengo dudas sobre si puedo volver a leer el run que
>> acabo de contruir.
>> Queda claro que eso se puede facilmente obtener en cuando haya
>> terminado dicho run: tengo su ultima tupla a la mano y como postgres
>> me permite el "backward reading" (leer la tupla que precede a una
>> cirta tupla) pues puedo llegar al principio del run leyendo al revez
>> tupla tras otra. Obvio no es una manera muy eficiente para llegar al
>> principio del run.
>
> El problema es que una LogicalTapeSet se puede usar para mas de una
> LogicalTape -- esto es crucial porque las LogicalTape, una vez que las
> has leido, "liberan" el espacio de la LogicalTapeSet, de manera que una
> LogicalTape distinta puede usar ese mismo bloque.
>
> A eso me refiero con que "no se puede volver atras". En alguna parte de
> logtape.c se menciona que las lecturas son "destructivas".
>
>> La alternativa seria: en cuando comienze a construir un cierto run
>> (accomodandolo en su tape correspondiente) pues quiero memorizar la
>> direccion [en disco? en tape?] de la primera tupla de ese mismo run,
>> de manera tal que una vez ultimado ese run esa cosa me permita acceder
>> directamente al principio del run y leerlo justamente a partir de su
>> primera tupla. Eso si se puede hacer?
>
> No estoy seguro.
>
>> Por otro lado comentas que no es posible "rebobinar". Me gustaria
>> profundizar ese tema. No creo que te refieras a la imposibilidad de
>> leer la tupla anterior de una cirta tupla: eso es posible gracias a la
>> flag 'randomAcces'. Contrariamente a lo que pueda indicar ese nombre,
>> tal flag nada mas permite un "backward reading" ademas del "forward
>> reading" usado mas frequentemente por postgres.
>
> Aqui estas confundiendo TupleStore con LogTape ...
>
>> No se cuanto me pueda ayudar la estructura BufFile para poder
>> memorizar temporalmente esa direccion y volver a retomarla cuando
>> termine de escribir ese run.
>
> ... y aqui estas mezclando niveles de abstraccion diferentes. Una
> LogicalTape se implementa usando LogicalTapeSet. Una LogicalTapeSet se
> implementa usando BufFile. Sugiero mantener las capas logicamente
> independientes.
>
> --
> Alvaro Herrera http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Andres A. Mamani 2008-02-12 21:56:37 Re: Ayuda con tuning PostgreSQL 8.3
Previous Message Alvaro Herrera 2008-02-12 21:24:45 Re: Runs y Logical Tapes