<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to improvements</title><link href="https://sourceforge.net/p/roomy/improvements/" rel="alternate"/><link href="https://sourceforge.net/p/roomy/improvements/feed.atom" rel="self"/><id>https://sourceforge.net/p/roomy/improvements/</id><updated>2009-04-16T14:20:17Z</updated><subtitle>Recent changes to improvements</subtitle><entry><title>Improve accounting of used disk space</title><link href="https://sourceforge.net/p/roomy/improvements/19/" rel="alternate"/><published>2009-04-16T14:20:17Z</published><updated>2009-04-16T14:20:17Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.netc91448afe814247176aad676184a6461791668d3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Currently, each node keeps track of how much data it *generates*, and merges local updates when that amount passes some threshold. What we really want is for each node to keep track of how much data is actually stored locally. This is somewhat complicated due to the use of remote writes. Probably, the best way to do this is to write a wrapper function for all methods that write or delete data on disk (e.g. Roomy_fwrite, Roomy_unlink, etc.). These wrappers can then keep track of used disk space.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Option to eliminate hidden syncs</title><link href="https://sourceforge.net/p/roomy/improvements/18/" rel="alternate"/><published>2009-04-14T23:03:11Z</published><updated>2009-04-14T23:03:11Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.netdbb4ddccde71282976b8af2b398f01756484e1c2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Currently, a Roomy data structure is synced in two ways: 1) when a user call sync on it; 2) when disk space limits are reached and updates need to be synced to free space. So, for example, if user is mapping over an array and sending delayed updates to the same array, some updates may occur in the middle of the map (causing problems in some applications). Users can prevent this by having a secondary array to hold the updates temporarily, but this doubles the cost. If hidden syncs are eliminated, this secondary array can be avoided (but an error will occur when disk space is exhausted).&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>RoomyArray&lt;-&gt;RoomyList Conversions</title><link href="https://sourceforge.net/p/roomy/improvements/17/" rel="alternate"/><published>2009-04-13T23:13:47Z</published><updated>2009-04-13T23:13:47Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.net7fde2a40e07d2446e7e9aedebc996b0d931e2e98</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Make methods to convert a RoomyList to a RoomyArray, and a RoomyArray to a RoomyList. The second can already be done by mapping over the array and adding to a list. The first can not currently be done by users.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Multi-threaded operations</title><link href="https://sourceforge.net/p/roomy/improvements/16/" rel="alternate"/><published>2009-04-10T01:33:31Z</published><updated>2009-04-10T01:33:31Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.neta84703b6e7e12e4a4541266f2c47e4e045a18a64</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Spawning additional "compute threads", to complete map functions (etc.) more quickly. Useful for CPU-bound computations.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>RAM-only verion</title><link href="https://sourceforge.net/p/roomy/improvements/15/" rel="alternate"/><published>2009-04-10T01:32:34Z</published><updated>2009-04-10T01:32:34Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.net233665cff72c48ca31d5d85dd544a29c6a38d01f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Make a RAM-only version or Roomy. Possibly include distributed RAM. Helpful for testing. Can significantly improve performance, especially for small Roomy data structures that don't require disk.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Smaller representation of arrray indices</title><link href="https://sourceforge.net/p/roomy/improvements/14/" rel="alternate"/><published>2009-04-10T01:30:53Z</published><updated>2009-04-10T01:30:53Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.netaa5cb6bed63b4aacf4e05b0fd6a12a6de09eac10</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Don't save all Roomy*Array indices as 8-byte ints. We can just use enough bits to represent the largest index of the array.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Compression</title><link href="https://sourceforge.net/p/roomy/improvements/13/" rel="alternate"/><published>2009-04-10T01:29:38Z</published><updated>2009-04-10T01:29:38Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.net37f30331cf7dfb6b03387965e1e616d4a5c23145</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Compress/decompress disk-based data structures and related updates on the fly. Requires determining if CPU or I/O is the bottleneck, and only using compression in the latter case.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Seek vs. scan for updates</title><link href="https://sourceforge.net/p/roomy/improvements/12/" rel="alternate"/><published>2009-04-10T01:28:27Z</published><updated>2009-04-10T01:28:27Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.net83ce493442170fa79b380a1e1a9b2df1c7d56e12</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;If there are few updates to an array, do them by direct modifications instead of complete scans. Requires determining the tipping point between the performance of the two methods (based on disk latency/bandwidth, number of updates, and size of updates).&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Lazy creation of arrays</title><link href="https://sourceforge.net/p/roomy/improvements/11/" rel="alternate"/><published>2009-04-10T01:26:21Z</published><updated>2009-04-10T01:26:21Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.netf32142d909f74f0660e79768cec9e9ca00906ece</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;No need to write zeroed chunks immediately upon creation. This would allow large savings for sparse arrays, and for arrays that are significantly "over-allocated".&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Better distribution of RoomyList elements</title><link href="https://sourceforge.net/p/roomy/improvements/10/" rel="alternate"/><published>2009-04-10T01:25:45Z</published><updated>2009-04-10T01:25:45Z</updated><author><name>Daniel Kunkle</name><uri>https://sourceforge.net/u/dkunkle/</uri></author><id>https://sourceforge.net396385d9df6abbffe2057537bfc5e20f8dada7c3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Improvement in evenly distributing RoomyList elements among compute nodes (basically needs to use a hash function for elements instead of a simple modulo-based method).&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>