[Pr�via] [Pr�xima] [Pr�via por assunto] [Pr�xima por assunto]
[�ndice cronol�gico] [�ndice de assunto]

Re: Metodo SYNC



 > >  > Entao o metodo sync so deve dar fsync no raf????
 > > 
 > > Sim, o metodo sync() da classe DBFile s� d� um fsync() no FileDescriptor
 > > do raf.
 > > 
 > >  > eu achei que o sync procurava por todas as paginas de um dbfile no
 > >  > bufferpool, e forcava a escrita em disco de cada uma delas....Afinal,
 > >  > o que exatamente o metodo sync faz????
 > > 
 > > N�o, a classe DBFile n�o sabe nada sobre buffers e nem conhece o buffer
 > > pool. O BufferManager � quem conhece e usa os DBFiles. Os m�todos flush
 > > e flushAll das classes BufferManager e Page chamam o m�todo sync da
 > > classe DBFile. (� para isso que temos o sync no DBFile. Lembre-se que
 > > todo acesso a disco � feito atrav�s da classe DBFile.)
 > > 
 > > Reverbel
 > 
 > Quando eu dou sync num arquivo,eu estou so escrevendo os dados
 > modificados ou eu estou escrevendo o arquivo inteiro????

Est� escrevendo os dados modificados que est�o nos buffers do linux e
ainda n�o foram copiados para disco.

O sync() do FileDescriptor chama a system call abaixo:

> FSYNC(2)            Linux Programmer's Manual            FSYNC(2)
> 
> 
> NAME
>        fsync  -  synchronize a file's complete in-core state with
>        that on disk
> 
> SYNOPSIS
>        #include <unistd.h>
> 
>        int fsync(int fd);
> 
> DESCRIPTION
>        fsync copies all in-core parts of a file to disk.

Esta man page n�o est� muito boa... Embora ela diga "all in-core parts",
eu acho que s� s�o copiadas as partes do arquivo que foram modificadas.

 > 
 > Para declarar um raf, eu faco:
 > 
 > RandomAcessFile thisfile = New RandomAcessFile(nomearq,modo)
 > 
 > e so isso q eu tenho q fazer ou tem algo mais?
 > 

Acho que � s� isso. Ah, o 'New' � com min�scula.

Reverbel