Re: Looking for some design inspiration



We at GemStone Systems have spent a great deal of time and effort to
develop a system much like the one you describe, in which we map plain
old Java objects (POJO) to pages that are then stored transparently in
a disk file. Our virtual machine (an extention of the Sun VM)
transparently handles the details of moving the objects from disk into
a shared memory cache that is accessable to multiple VMs on the same
machine, and then into the VM heap space.

We also implement a number of our own collection classes, but these are
usually to help avoid using too much heap in the virtual machine... for
example a ScalableHashMap in which the table size can be large
(millions) but only a portion of the table needs to be in the Java heap
at any instant in time.

You can find more details about Facets persistent Java and a free
download on our website at http://facetsodb.org.

Bob

exits funnel wrote:
Hello,

I apologize in advance if this is off-topic but it seems like the sort
of problem database implementors must have spent a great deal of time
thinking about.

I'm working on a project for which I've written what is essentially a
custom collection class - an instance of which is roughly analogous to a
relational table. The elements of the collection then are rows and the
collection is divided into logical pages of a fixed (at compile time)
number of rows. Each page is backed by a number of array instances none
of which span pages. Up to this point, the collections have existed
entirely in memory but now the requirement has been added to support
swapping to disk effectively limiting the amount of RAM allocated to the
sum of all collections at any given time. I've played around a bit with
reading/writing blocks of pages to/from disk and this bit seems not to
difficult a task but I'm in need of some inspiration for the management
machinery. I imagine a single system wide disk file and writing blocks
consisting of various pages from different instances of the collection
but I'm not sure how to track the blocks so that when I need to swap in
a given page, I can find it efficiently. I'm confident that left to my
own devices I can craft something which works, but I'm much less
confident that I can craft something which will perform satisfactorily.
Can anyone suggest some useful patterns? Or possibly some discussion of
the solution to a similar problem? I should mention that the
implementation language is java so java references would be ideal though
I'd also welcome any pointers to C/C++ references which address the
topic. Even general ramblings will be appreciated. Thanks in advance
for any thoughts.

-exits

.



Relevant Pages

  • Re: Solaris vs AIX
    ... Java is not about "easier and faster"; that would, at best, be a function ... You can write garbage in any language. ... the end you're better off using a supported disk than Corpsys ... Even top of the line FC drives arent't that costly. ...
    (comp.unix.solaris)
  • Re: Java outperforms C++?
    ... vs Java. ... If programmers spent all the time they spent on this arguing on ... During peak CPU usage time is not spent on deallocations - response is ... Modern optimizing compilers, profile-guided optimization, modern AI-enabled ...
    (microsoft.public.vc.language)
  • Re: CD-ROM does not read disks in Windows
    ... I'm intrigued that you spent "much time troubleshooting" ... I tried a disk ... >>I hope MS reads these numerous postings on the CD ...
    (microsoft.public.windowsxp.hardware)
  • Re: Slow Filesystem I/O
    ... >>under a different name using dd from GNV (in order to eliminate Java ... > One major difference is that on Windows you are writing to cache & then using ... > lazy write to get the contents onto disk. ... While with VMS a write operation - ...
    (comp.os.vms)
  • Re: J2SE Runtime Environment 5.0 updates.
    ... You should uninstall all versions of Java (rebooting after each uninstall) and install the latest version of Java which you can obtain here: ... run the disk cleanup wizard, reduce the allocations for the Recycle Bin, TIF and restore points. ...
    (microsoft.public.windowsxp.perform_maintain)