Hi all,

SQL Anywhere 12 WinHelp manual states

There are two activities that can take place when a database is started and cache warming is turned on: collection of database pages and cache reloading (warming).

Now, a customer brought me to an interesting question: Does this only happen when starting the database together with a new server instance or does it also happen when a database that had been stopped before is restarted on a database server that been running meanwhile? And if so, does it make a difference if the running server had operated any other database(s) or just was idling with the virtual utility database? Could warming of a newly started database on an existing server replace cached pages from databases that have been operated before?

TIA & Best Regards

Volker Stoeffler Database Services Global CoE

asked 20 Mar '13, 12:19

Volker%20Stoeffler's gravatar image

Volker Stoef...
106127
accept rate: 0%

edited 20 Mar '13, 12:20

1

Very interesting question, specially the last part!

(20 Mar '13, 12:24) Reimer Pods

I don't know (though the docs seem to imply it happens on database start, not on server start) - but allowing the according cache warming messages with "dbsrv12 -cv+" should tell you the truth anyway...

(20 Mar '13, 12:54) Volker Barth

Cache Warming and Cache Collection is always performed whenever a database is started independent of how long the server has been running, except for these conditions:

  • cache warming is not done when it is explicitly turned off by -cr-
  • cache collection is not done when it is explicitly turned off by -cc-
  • neither warming nor collection is done when the database is participating in mirroring/HA or is started as read-only or the database was started for the purpose of upgrading or dropping it
  • cache warming is also not done in the case that the database needs to go through recovery when it is started.

I think your last question is asking if the cache warming process would cause existing database pages (from previously loaded/running databases on the server) that were already in the cache to be replaced? If this is the question then the answer is no. Cache warming will automatically stop if there are no free cache pages.

Also note that cache warming will be stop if there is a significant amount of other IO (i.e. IO not associated with warming) occurring on the server. Therefore if a database is loaded on a server that has other database activity and that activity is requiring IO then it is likely that the newly loaded database will not be "completely" warmed (where "completely" means warmed to the same amount that it would be if the database was loaded on a newly started server).

HTH

permanent link

answered 20 Mar '13, 12:53

Mark%20Culp's gravatar image

Mark Culp
23.3k9132275
accept rate: 40%

edited 20 Mar '13, 12:55

Thank you very much Mark. This definitely answers my questions.

(20 Mar '13, 14:08) Volker Stoef...
Replies hidden

@Volker Stoeffler: Feel free to accept that answer then - you may cf. this How To...

(21 Mar '13, 06:49) Volker Barth
2

@Mark: I'd suggest to add parts of your detailed explanation to the cited doc page, particularly the (limited) effect on already running databases on the same server - and that fact cache warming is generally not done for HA systems).

(21 Mar '13, 06:52) Volker Barth
Replies hidden
2

I have already sent a note to the doc team to do this.

(21 Mar '13, 09:04) Mark Culp
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×414
×21
×12

question asked: 20 Mar '13, 12:19

question was seen: 4,706 times

last updated: 21 Mar '13, 09:04