opencog / atomspace

The OpenCog (hyper-)graph database and graph rewriting system
https://wiki.opencog.org/w/AtomSpace
Other
811 stars 225 forks source link

Remove UUID from Handle #223

Closed linas closed 8 years ago

linas commented 9 years ago

Currently, the class Handle records a UUID and an AtomPtr. This is (mostly) un-needed. Removing the UUID will simplify some of the AtomTable code; it will make the whole system faster, it will reduce RAM usage, it will make AtomPtr and Handle be more-or-less the same thing.

There is a branch that mostly accomplishes the above, see https://github.com/linas/atomspace/tree/de-uuid It passes unit tests. it can almost be merged -- just one little problem.

Only one problem: The backend is highly dependent on using UUID's for identifying atoms. Making the above change makes it impossible to fetch a single link-atom from the backend, and would instead cause it to cascade into a fetch of the link and all it's outgoing set. This is clearly unwanted, for performance reasons. Thus, finishing the above work requires rethinking and re-designing the backend interfaces.

linas commented 9 years ago

Ben proposes that the back-end would need to maintain a look-up table of UUID's... which makes sense. There may be implementation difficulties, because currently, the backend does not know what is in the AtomTable...

linas commented 8 years ago

Fixed in pull req #355