> I'm not sure this will change much. It will reduce the number of times > that the PIP needs to be referenced, which will save a little CPU.
Also it will lower concurrency on PIP pages. Of course, common level of concurrency will not became much lower, but anyway... > Careful write needs to be preserved in all cases, so the PIP will always > need to be written before the data pages and associated pointer pages. > But since all allocated data pages are lower in precedence than the PIP, > the PIP won't be forced out until a data page needs to be written, so it > is unlikely that the PIP will be written multiple times using either scheme. You are missed Classic architecture - without shared cache data pages often written in downgrade calls and it forces write of all higher precedence pages. > There may well be some benefit to allocating data pages contiguously > when the database page size is smaller than the OS page size which, > presumably, is usually the case. Consider also RAID block size. Often it is much more than our default\ preferable page size of 4-8 KB > I did do some experiments quite some time ago with prefetching (for > which system I frankly don't remember). The results were sufficiently > disappointing that I gave it up. The fundamental problem is that > fetching things that you don't need interferes with fetching things that > you do. Predicting exactly what you will need next is really quite > difficult. Guessing wrong is significantly worse than not guessing at > all. Probably. I told about prefetch by OS which is out of our control but almost always present. As for prefetch by Firebird engine itself - we have some ability to predict page access sequence: - natural scan (sweep and gbak backup as cases of natural scan) - blob read - less effective, but anyway - index scan when key range is relatively big we can prefetch pages from leaf level and then, using record numbers bitmap we can prefetch data pages - nbackup backup I have some of this implemented with some success and defeats but currently it is to early to say about results. But let's return back to the extents theme :) > What might be a better thing to explore is an extent based allocation > mechanism. It probably could be made to reduce both allocations and > references to the allocation pages, though it would probably be a > relatively large architectural change Here i probably lost you - are you agreed with proposed changes ? Or you support the idea but offer to base it on some different mechanism (such as replace PIP with something like Extents Allocation Bitmap)? > -- and one difficult to migrate to > without a full dump and reload. My patch with extents changes ODS but this is ok for FB3 until we not released beta version. Thanks for the opinion, Vlad ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel