Rev as memory-resident database

Frank D. Engel, Jr. fde101 at fjrhome.net
Wed Aug 25 13:22:32 EDT 2004


Most operating systems split that 4GB address space roughly in half.  
2GB is reserved for the operating system (not half of the physical 
memory, but half of the addresses which can be assigned to the memory), 
and a unique 2GB address space is provided for each process.  Some of 
that "unique" 2GB address space, toward the beginning and sometimes 
toward the end, is often (intentionally) unusable, in an effort to help 
track bugs in software (there is a reason for this, and it is 
legitimate; if you have (C/C++/Pascal/etc.) programming experience, 
consider NULL pointer dereferences...)   This takes away another 
hundred K or so, and more is taken away by Revolution, by any 
user-level runtime libraries & DLLs referenced by Revolution (both the 
engine and the IDE need to be in that memory space).  Add to this the 
stack code and layout information, any runtime data tracked by 
revolution, global & local variables and properties, your Transcript 
code, and so on...   You don't really have that much memory addressing 
space available for your data.

Note that some operating systems (including some specially configured 
versions of W2K/XP) will allow 3GB of addressing space per process, and 
reserve only 1GB for the operating system.

If your data is larger than 1-1.25GB, do not expect it to fit into a 
32-bit addressing space, even if you have 4GB of RAM and no other 
running programs.  If you have one of those specially configured 
Windows systems (or a similarly configured OS of some other kind -- 
does anyone know if Linux or BSD can be configured that way?), you 
might get 2-2.25GB, maybe a little more, but these numbers are rough 
approximations.  Leave yourself more room than you think you'll need.

Also, even on a 64-bit computer, if Rev is not built to run as a 64-bit 
program, you will still be limited to the 32-bit address space.  And if 
the stack file is too large for the filesystem constraints, you will 
not be able to save it to disk, even if you have a 64-bit address space 
to make use of... many filesystems place a limit on the size of any one 
single file.

So in short, 2-3GB is not necessarily realistic for a 32-bit system ;-)


On Aug 25, 2004, at 8:01 AM, Alex Shaw wrote:

> hi,
>
> I stumbled upon an old /. article just recently..
>
> http://slashdot.org/features/01/05/03/1434242.shtml
>
> .. "An OODBMS is thus a full scale object oriented development 
> environment as well as a database management system."
>
> That of course made me think of rev but I've also been thinking about 
> more about using rev as my standard database system.. on 32-bit 
> machines that's 4G (realistically probably 2-3G) of memory space.  For 
> the sort of systems i'm building that's quite a bit, and of course old 
> info can be archived etc
>
> With memory so cheap these days the idea of a rev combo 
> server/database seems quite feasible..
>
> Memory-resident should mean quick access .. i mean you do away with 
> all the complications and extra plumbing needed to plug into external 
> databases.
>
> Has anyone actually tested rev performance on a high memory machine?
>
> Having dreams at the moment of decking out a 64-bit linux machine with 
> some G-sticks :)
>
> regards
> alex
>
>
>
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>



___________________________________________________________
$0 Web Hosting with up to 120MB web space, 1000 MB Transfer
10 Personalized POP and Web E-mail Accounts, and much more.
Signup at www.doteasy.com



More information about the use-livecode mailing list