[Pr�via] [Pr�xima] [Pr�via por assunto] [Pr�xima por assunto]
[�ndice cronol�gico]
[�ndice de assunto]
Re: Metodo SYNC
- Subject: Re: Metodo SYNC
- From: Francisco Reverbel <reverbel at ime.usp.br>
- Date: Fri, 23 Apr 1999 18:12:48 -0300
> > > 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