| … | … | @@ -63,26 +63,44 @@ distributed and/or decentralized AtomSpaces can be built. |
| 63 | 63 | |
| 64 | 64 | Status |
| 65 | 65 | ------ |
| 66 | | This is ***Version 1.5.3***. All unit tests pass. It has been used in |
| 66 | This is ***Version 1.6.0***. All unit tests pass. It has been used in |
| 67 | 67 | at least one major project, to process tens of millions of Atoms. |
| 68 | 68 | |
| 69 | | This code is 2x or 3x faster than the |
| 70 | | [PostgresStorageNode](https://github.com/opencog/atomspace-pgres) |
| 71 | | on synthetic benchmarks, and has been observed to run 12x faster |
| 72 | | in a real-world application. At least half of this performance |
| 73 | | difference can be explained by the fact that the PostgresStorageNode |
| 74 | | is old and has a sub-optimal design. Someone should port the Rocks |
| 75 | | code here to create a new, better Postgres StorageNode. |
| 69 | The list of changes since January 2024 is long and fairly boring; |
| 70 | mostly bug fixes and patches forced by updates to the core AtomSpace. |
| 71 | The following changes are notable: |
| 72 | |
| 73 | * The `*-delete-*` message only deletes Atoms from the on-disk |
| 74 | AtomSpace DB. Deleting from the local (in-RAM) AtomSpace must now |
| 75 | be performed as a distinct step. |
| 76 | * Atoms that are used as keys or messages cannot be deleted. |
| 77 | * The Python API has been fixed so it actually works. It uses the new |
| 78 | message-passing system. |
| 79 | * The base `StorageNode` (provided by |
| 80 | [atomspace-storage](https://github.com/opencog/atomspace-storage)) |
| 81 | now uses a message-passing system to perform all actions. Typical |
| 82 | messages include `*-open-*`, `*-close-*`, `*-load-atom-*`, |
| 83 | `*-store-atom-*` and so on. The same base set is supported by all |
| 84 | `StorageNode`s (and `ProxyNode`s), not just atomspace-rocks. |
| 85 | See the wiki pages for |
| 86 | [StorageNode](https://wiki.opencog.org/w/StorageNode) and |
| 87 | [ObjectNode](https://wiki.opencog.org/w/ObjectNode). |
| 88 | |
| 76 | 89 | |
| 77 | 90 | Building and Installing |
| 78 | 91 | ----------------------- |
| 92 | RocksDB is a prerequisite. On Debian/Ubuntu, `apt install librocks-dev` |
| 93 | |
| 79 | 94 | The build and install of `atomspace-rocks` follows the same pattern as |
| 80 | | other AtomSpace projects. |
| 95 | other AtomSpace projects. Prerequisites include the AtomSpace itself |
| 96 | (from https://github.com/opencog/atomspace) and the generic StorageNode |
| 97 | API (from https://github.com/opencog/atomspace-storage). |
| 81 | 98 | |
| 82 | | RocksDB is a prerequisite. On Debian/Ubuntu, `apt install librocks-dev` |
| 83 | | Then build, install and test: |
| 99 | All Atomese projects, including this one, use the same build, install |
| 100 | and test pattern: |
| 84 | 101 | ``` |
| 85 | 102 | cd to project dir atomspace-rocks |
| 103 | git pull |
| 86 | 104 | mkdir build |
| 87 | 105 | cd build |
| 88 | 106 | cmake .. |