Hey folks i am newbie to progress database.Actually i am learning the basics of progress database through various documentation and forums.AFAIK,The following question has not posted by anyone.
for example assume i have a buffer -B 3000 and block size is 4k.So my memory size would be approximately 12mb.If I have a large update which would exceed the memory size.In that case,how thw transaction is performed?
Thanks in Advance
Mugunth
Are you missing some zeros? Why would you possibly try to run with a -B that small?
Data blocks are read into memory from disk as your application accesses (well, the server does on behalf of yoru application) various parts of the database. If you update something, one or more data blocsk will be updated. These will be written back to disk eventually. As blocks are accessed, if they are already in memory, there is no need to get them from the disk and we just access the data in them. After all the buffers are occupied, when a block not already in memory is needed from disk, one of the ones already in memory will be discarded and the new block read into its buffer. If that block was updated, it will be written first and then replaced. With this scheme you can have a buffer pool of 10 buffers and update a billion data blocks. Or more. Of course, with only 10 buffers you will wait a while for completion of the task.