<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to DiskCache_Implemented</title><link>https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/</link><description>Recent changes to DiskCache_Implemented</description><atom:link href="https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 20 Jun 2025 08:27:18 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/feed" rel="self" type="application/rss+xml"/><item><title>DiskCache_Implemented modified by silex6</title><link>https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -17,3 +17,6 @@
 Memory mapping has not been implemented. Initial implementation led to many OutOfMemoryError. The implementation was then changed to use a HashMap to keep copies of the page into memory - into Java runtime's heap space

 Copy-on-write and shadow copies feature is implemented by *file container* layer
+
+#See also 
+[Disk cache](Disk_cache) specification
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">silex6</dc:creator><pubDate>Fri, 20 Jun 2025 08:27:18 -0000</pubDate><guid>https://sourceforge.netd2a71a8faa5ee9b74edce50220b9209cb5fe4739</guid></item><item><title>DiskCache_Implemented modified by silex6</title><link>https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -2,7 +2,7 @@
 This database software stack implements disk caching. This feature allows to manipulate huge files, minimize the number of time consuming I/O operation and remove the need to keep complete file into memory. The disk caching API provide paged access to a database file via the *Cache* and *Page* interfaces.

 The disk cache package org.whitebear.cache is stable since 2021
-#Main classes
+#Main interfaces
 * Cache - provide cached access to a pages file
 * Page - provide access to a file page. Current page size in 8kb
 * BufferReaderWriter - allow to read / write page content
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">silex6</dc:creator><pubDate>Fri, 20 Jun 2025 07:54:27 -0000</pubDate><guid>https://sourceforge.netb67a1b4cfd83b29263f962c24a536f799c149db6</guid></item><item><title>DiskCache_Implemented modified by silex6</title><link>https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,5 +1,5 @@
 # Disk cache
-This database software stack implements disk caching. This allow to manipulate huge files, minimize the number of time consuming I/O operation and remove the need to keep complete file into memory. The disk caching API provide paged access to a database file via the *Cache* and *Page* interfaces.
+This database software stack implements disk caching. This feature allows to manipulate huge files, minimize the number of time consuming I/O operation and remove the need to keep complete file into memory. The disk caching API provide paged access to a database file via the *Cache* and *Page* interfaces.

 The disk cache package org.whitebear.cache is stable since 2021
 #Main classes
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">silex6</dc:creator><pubDate>Thu, 19 Jun 2025 11:42:30 -0000</pubDate><guid>https://sourceforge.net8e64bf6866cc40cdce6bebf37f153bdb4c1dd78c</guid></item><item><title>DiskCache_Implemented modified by silex6</title><link>https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,5 +1,5 @@
 # Disk cache
-This database software stack implements disk caching. This allow to manipulate huge files without the need to keep complete file into memory. The disk caching API provide paged access to a database file via the *Cache* and *Page* interfaces.
+This database software stack implements disk caching. This allow to manipulate huge files, minimize the number of time consuming I/O operation and remove the need to keep complete file into memory. The disk caching API provide paged access to a database file via the *Cache* and *Page* interfaces.

 The disk cache package org.whitebear.cache is stable since 2021
 #Main classes
@@ -10,8 +10,10 @@
 * LockList - allow to lock a set of pages in an single atomic operation

 #Current implementation
-Current disk cache implementation use java.io.RandomAccessFile to access the database file. The disk cache uses java.nio.ByteBuffer to retain in-memory copies of disk content.
+Current disk cache implementation use java.io.RandomAccessFile to access the database file. The disk cache uses java.nio.ByteBuffer to retain in-memory copies of disk content. All classes are thread-safe

-A background thread is responsible to remove unused pages from memory. It implements a 2nd chance algorithm
+*CacheCleanupThread* is a background thread responsible to remove unused pages from memory. It implements a 2nd chance algorithm

 Memory mapping has not been implemented. Initial implementation led to many OutOfMemoryError. The implementation was then changed to use a HashMap to keep copies of the page into memory - into Java runtime's heap space
+
+Copy-on-write and shadow copies feature is implemented by *file container* layer
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">silex6</dc:creator><pubDate>Thu, 19 Jun 2025 10:18:14 -0000</pubDate><guid>https://sourceforge.net63da7165c8ac5edb8950a72db32d8b8a9433cc29</guid></item><item><title>DiskCache_Implemented modified by silex6</title><link>https://sourceforge.net/p/whitebear/allura-wiki/DiskCache_Implemented/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="disk-cache"&gt;Disk cache&lt;/h1&gt;
&lt;p&gt;This database software stack implements disk caching. This allow to manipulate huge files without the need to keep complete file into memory. The disk caching API provide paged access to a database file via the &lt;em&gt;Cache&lt;/em&gt; and &lt;em&gt;Page&lt;/em&gt; interfaces.&lt;/p&gt;
&lt;p&gt;The disk cache package org.whitebear.cache is stable since 2021&lt;/p&gt;
&lt;h1 id="main-classes"&gt;Main classes&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Cache - provide cached access to a pages file&lt;/li&gt;
&lt;li&gt;Page - provide access to a file page. Current page size in 8kb&lt;/li&gt;
&lt;li&gt;BufferReaderWriter - allow to read / write page content&lt;/li&gt;
&lt;li&gt;WriteList - keep list of pages that need to be written back to the hard disk - actually to the operating system&lt;/li&gt;
&lt;li&gt;LockList - allow to lock a set of pages in an single atomic operation&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="current-implementation"&gt;Current implementation&lt;/h1&gt;
&lt;p&gt;Current disk cache implementation use java.io.RandomAccessFile to access the database file. The disk cache uses java.nio.ByteBuffer to retain in-memory copies of disk content.&lt;/p&gt;
&lt;p&gt;A background thread is responsible to remove unused pages from memory. It implements a 2nd chance algorithm&lt;/p&gt;
&lt;p&gt;Memory mapping has not been implemented. Initial implementation led to many OutOfMemoryError. The implementation was then changed to use a HashMap to keep copies of the page into memory - into Java runtime's heap space&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">silex6</dc:creator><pubDate>Thu, 19 Jun 2025 10:10:39 -0000</pubDate><guid>https://sourceforge.netd506726c242f2277486ced3dc411a899a2b2b5e9</guid></item></channel></rss>