Large Update in Progress Database

Posted by Aravindkumar on 16-Aug-2013 06:22

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

All Replies

Posted by Thomas Mercer-Hursh on 16-Aug-2013 09:35

Are you missing some zeros?  Why would you possibly try to run with a -B that small?

Posted by gus on 16-Aug-2013 12:19

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.

This thread is closed