> > Well, the movie example is one case where evicting unaccessed page may not be the right thing to do. But what about a workload that perform a random one-shot search? > > The search was done and the RA'd blocks are of no use anymore. So it seems one solution would hurt another. > > Well not really: RA is always wrong for random reads. The whole purpose of RA is assumption of sequential access patterns. > James - I must agree that 'random' was not the proper choice of word here. What I meant was this - search-app reads enough data to trick the lazy/deferred-RA logic. RA thinks, oh well, this is now a sequential pattern and will RA. But all this search-app did was that it kept reading till it found what it was looking for. Once it was done, it went back to sleep waiting for the next query. Now all that RA data could be of total waste if the read-hit on the RA data-set was 'zero percent'. Some would argue that how would we(the kernel) know that the next query may not be close the earlier data-set? Well, we don't and we may not want to. That is why the application better know how to use XXX_advise calls. If they are not using it then well it's their problem. The app knows about the statistics/etc about the queries. What was used and what wasn't. > James Chetan Loke ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥