opencog-dev team mailing list archive
-
opencog-dev team
-
Mailing list archive
-
Message #00485
Re: Remove support for TLB without map
On Sat, Mar 21, 2009 at 3:13 AM, Linas Vepstas <linasvepstas@xxxxxxxxx> wrote:
>> (I've discover this is the source of some tests failing on buildbot
>> and for random people ...
>
> well, technically speaking, checking for a null pointer is
> the wrong thing to do. The tests should have checked for
> undefined handle.
The problem I have is that if I have a set Handles, and then during
the life of Handle, some become invalid through removals (and not just
the expected one, because removals can recursively remove others). I
could probably hack around to avoid this, but I think it'd be a bigger
problem, especially when things get multithreaded and distributed.
> Using the TLB does increase the RAM usage, some
> 8 or 16 bytes or more per atom, depending on whether
> you have a 32 or 64-bit CPU. I know that things like the
> commercial deployment of the PetBrain were sensitive
> to RAM usage (and didn't need the TLB). A year ago,
> the TLB.h file existed, but had not been actually
> implemented, which means that all opencog apps up
> to that point had not needed it.
>
> It's hard for me to imagine what kind of future deployments *won't*
> need the TLB; just be aware that its plausible that
> someone will ask for it.
Understand, the additional memory requirement was my main concern
behind making using a map the default.
I'll leave the preprocessor tags for not using a map in the code, but
add a comment saying that there are parts of the code that won't work
without it.
J
Follow ups
References