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/
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 |