Wow! On Tue, Aug 4, 2020, 8:45 AM Linas Vepstas <[email protected]> wrote:
> > > On Thu, Jul 30, 2020 at 11:20 AM Ben Goertzel <[email protected]> wrote: > >> >> -- send a Pattern Matcher query to BackingStore >> -- sent the Atom-chunk resulting from the query to Atomspace >> >> > So, > > Someone needed to prove me wrong, and who better to do that but me. I took > the weekend to implement a file-based backing store, using RocksDB (which > itself is a variant on LevelDB). It's here: > https://github.com/opencog/atomspace-rocks > > -- It works, all of the old persistent store unit tests pass (there are 8 > of them) > -- its faster than the SQL by factors of 2x to 5x depending on dataset. > With tuning, maybe one could do better. (I have no plans to tune, right now) > > I'm certain I know of a simple/easy way to "send a Pattern Matcher query > to BackingStore and send the Atom-chunk resulting from the query to > Atomspace" and will implement this afternoon (famous last words...) BTW, > you can *already* do this with the cogserver-based network client (i.e. > without sql, just the network only) here: > https://github.com/opencog/atomspace-cog/blob/master/examples/remote-query.scm > > By combining these two backends, I think you can get file-backed storage > that is also network-enabled. Or rather, you have two key building blocks > for exploring both distributed and also decentralized designs. > > Some background info, from the README: > > AtomSpace RocksDB Backend > ========================= > > Save and restore AtomSpace contents to a RocksDB database. The RocksDB > database is a single-user, local-host-only file-backed database. That > means that only one AtomSpace can connect to it at any given moment. > > In ASCII-art: > > ``` > +-------------+ > | AtomSpace | > | | > +---- API-----+ > | | > | RocksDB | > | files | > +-------------+ > ``` > RocksDB (see https://rocksdb.org/) is an "embeddable persistent key-value > store for fast storage." The goal of layering the AtomSpace on top of it > is to provide fast persistent storage for the AtomSpace. There are > several advantages to doing this: > > * RocksDB is file-based, and so it is straight-forward to make backup > copies of datasets, as well as to share these copies with others. > * RocksDB runs locally, and so the overhead of pushing bytes through > the network is eliminated. The remaining inefficiencies/bottlenecks > have to do with converting between the AtomSpace's natural in-RAM > format, and the position-independent format that all databases need. > (Here, we say "position-independent" in that the DB format does not > contain any C/C++ pointers; all references are managed with local > unique ID's.) > * RocksDB is a "real" database, and so enables the storage of datasets > that might not otherwise fit into RAM. This back-end does not try > to guess what your working set is; it is up to you to load, work with > and save those Atoms that are important for you. The [examples](examples) > demonstrate exactly how that can be done. > > This backend, together with the CogServer-based > [network AtomSpace](https://github.com/opencog/atomspace-cog) > backend provides a building-block out of which more complex > distributed and/or decentralized AtomSpaces can be built. > > Status > ------ > This is **Version 0.8.0**. All unit tests pass. All known issues > have been fixed. This could effectively be version 1.0; waiting on > user feedback. > > -- Linas > > -- > Verbogeny is one of the pleasurettes of a creatific thinkerizer. > --Peter da Silva > > -- > You received this message because you are subscribed to the Google Groups > "opencog" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/opencog/CAHrUA37Agw0cg5gJX1fDffvSAjcW1kq4LdMOSuyknaEC_41F1g%40mail.gmail.com > <https://groups.google.com/d/msgid/opencog/CAHrUA37Agw0cg5gJX1fDffvSAjcW1kq4LdMOSuyknaEC_41F1g%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CACYTDBcnROxkUgppev8cW2LuAbzqvjWXxrrWZvCgvQv3g9Q3eg%40mail.gmail.com.
