8 Contributors: |
8 Contributors: |
9 --> |
9 --> |
10 <!DOCTYPE concept |
10 <!DOCTYPE concept |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
12 <concept id="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706" xml:lang="en"><title>Caching</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
12 <concept id="GUID-2FAB8281-569A-52BE-8BC8-A2D378068706" xml:lang="en"><title>Caching</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
13 <p>In Symbian OS versions earlier than 9.4, index entries were stored in a |
13 <p>In Symbian OS v9.3 and earlier, index entries were stored in a single index |
14 single index file in a permanent file store and the entire file was loaded |
14 file in a permanent file store and the entire file was loaded into RAM on |
15 into RAM on start up. In Symbian OS version 9.5 index entries are stored in |
15 start up. In Symbian^3 index entries are stored in an SQL database and only |
16 an SQL database and only the most recently used index entries are cached in |
16 the most recently used index entries are cached in RAM. </p> |
17 RAM. </p> |
|
18 <p>The following figure shows how a client request is completed using the |
17 <p>The following figure shows how a client request is completed using the |
19 cache functionality in the Message Server. </p> |
18 cache functionality in the Message Server. </p> |
20 <fig id="GUID-43D2AE30-9221-500A-B934-5D3636168273"> |
19 <fig id="GUID-43D2AE30-9221-500A-B934-5D3636168273"> |
21 <title> Caching architecture </title> |
20 <title> Caching architecture </title> |
22 <image href="GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e471529_href.png" placement="inline"/> |
21 <image href="GUID-53A2CA11-2ABF-5ED7-A26C-7BE9FD9A1D22_d0e492575_href.png" placement="inline"/> |
23 </fig> |
22 </fig> |
24 <section><title>Creating and maintaining free space in memory</title> <p>Memory |
23 <section id="GUID-D3F3D019-736E-4527-8099-9BE8883CF37C"><title>Creating and |
25 allocation to the cache is done incrementally, to reduce the Message Server |
24 maintaining free space in memory</title> <p>Memory allocation to the cache |
26 start up time. When the Message Server starts, only a percentage of the maximum |
25 is done incrementally, to reduce the Message Server start up time. When the |
27 cache size (<codeph>MsvMaximumCacheSize</codeph>) is allocated to cache. The |
26 Message Server starts, only a percentage of the maximum cache size (<codeph>MsvMaximumCacheSize</codeph>) |
28 percentage is specified by the <codeph>MsvInitialCacheCreation</codeph> parameter. |
27 is allocated to cache. The percentage is specified by the <codeph>MsvInitialCacheCreation</codeph> parameter. |
29 The next iteration of memory allocation is not initiated until the memory |
28 The next iteration of memory allocation is not initiated until the memory |
30 threshold (set using the <codeph>MsvCacheThreshold</codeph> parameter) is |
29 threshold (set using the <codeph>MsvCacheThreshold</codeph> parameter) is |
31 reached. The subsequent memory allocation is always done by a low priority |
30 reached. The subsequent memory allocation is always done by a low priority |
32 active object. </p> <p><b>Example</b> </p> <p>The memory allocation strategy |
31 active object. </p> <p><b>Example</b> </p> <p>The memory allocation strategy |
33 is illustrated in the following figures, based on the default values (shown |
32 is illustrated in the following figures, based on the default values (shown |
34 in the preceding table). </p> <p>When Message Server starts, the cache is |
33 in the preceding table). </p> <p>When Message Server starts, the cache is |
35 created with an initial size of 410KB (40 percent of 1024KB). If 70 percent |
34 created with an initial size of 410KB (40 percent of 1024KB). If 70 percent |
36 of the free space in the cache gets used the server allocates an additional |
35 of the free space in the cache gets used the server allocates an additional |
37 205KB (20 percent of 1024). </p> <fig id="GUID-CA4A08C8-C4E8-575F-8F03-F3D1F6579E5F"> |
36 205KB (20 percent of 1024). </p> <fig id="GUID-CA4A08C8-C4E8-575F-8F03-F3D1F6579E5F"> |
38 <image href="GUID-B459E37A-BECE-5087-9827-C93310890674_d0e471561_href.png" placement="inline"/> |
37 <image href="GUID-B459E37A-BECE-5087-9827-C93310890674_d0e492607_href.png" placement="inline"/> |
39 </fig> <p>Message Server can make two further 205KB allocations which it does |
38 </fig> <p>Message Server can make two further 205KB allocations which it does |
40 as use reaches 70 percent of the memory already allocated. </p> <fig id="GUID-21A40614-046B-56DD-9DDD-34B2F9681B5C"> |
39 as use reaches 70 percent of the memory already allocated. </p> <fig id="GUID-21A40614-046B-56DD-9DDD-34B2F9681B5C"> |
41 <image href="GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e471569_href.png" placement="inline"/> |
40 <image href="GUID-107F7BC4-F776-512D-AD6F-1674B7ED19B5_d0e492615_href.png" placement="inline"/> |
42 </fig> <p>If more than 70 percent of the first two allocated memory chunks |
41 </fig> <p>If more than 70 percent of the first two allocated memory chunks |
43 is used, an additional 20 percent of memory is added to the free space. </p> <fig id="GUID-EBF4FF85-D6D6-518C-9391-C3AFF8821F83"> |
42 is used, an additional 20 percent of memory is added to the free space. </p> <fig id="GUID-EBF4FF85-D6D6-518C-9391-C3AFF8821F83"> |
44 <image href="GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e471577_href.png" placement="inline"/> |
43 <image href="GUID-5E380880-9DBB-51D7-8942-829C6FD788C2_d0e492623_href.png" placement="inline"/> |
45 </fig> </section> |
44 </fig> </section> |
46 </conbody></concept> |
45 </conbody></concept> |