bitflicker64 opened a new pull request, #487:
URL: https://github.com/apache/hugegraph-doc/pull/487

   The RocksDB backend had no page of its own: `config-option.md` lists a 
subset of the `rocksdb.*` keys and
   `config-guide.md` mentions two of them, so nothing documented the data 
directory layout, the option
   groups, how `optimize_mode` and `bulkload_mode` behave, the memory 
accounting, SST ingestion, the state
   of raft mode for this backend or the pinned RocksDB version. This adds the 
page in English and Chinese,
   built from the sources on hugegraph master (commit 36811483a).
   
   | page | what was wrong | what changed | source (file:line on master) |
   |------|----------------|--------------|------------------------------|
   | config/config-backend-rocksdb.md (en, cn) | Page did not exist | New page, 
frontmatter and layout follow `config-https.md`, weight 5 places it after 
`config-option` | n/a |
   | config/config-backend-rocksdb.md | Nothing documented what the backend is 
or which backends 1.7.0 accepts | Overview: embedded LSM store inside the 
server process, allowed backends are memory, rocksdb, hbase, hstore, no shared 
storage so use hstore for distributed setups | 
hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/backend/store/BackendProviderFactory.java:37-48;
 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBFeatures.java:25-27
 |
   | config/config-backend-rocksdb.md | RocksDB version was documented nowhere 
| States rocksdbjni is pinned to 8.10.2 | 
hugegraph-server/hugegraph-rocksdb/pom.xml:37-41 |
   | config/config-backend-rocksdb.md | Backend selection was only implicit in 
the guide | `backend=rocksdb`, `serializer=binary`, `store`, plus 
`init-store.sh` before the first start | 
hugegraph-server/hugegraph-dist/src/assembly/static/conf/graphs/hugegraph.properties:22-32;
 
hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/backend/serializer/SerializerFactory.java:34-43
 |
   | config/config-backend-rocksdb.md | Provider registration and the 
`rocksdbsst` name were undocumented | Registration comes from the packaged 
`backend.properties` (`hugegraph.backends`, default rocksdb/hbase/hstore, 
`-Drocksdb-only` for a rocksdb-only build); `rocksdbsst` is registered but 
rejected by the allowed backend list | 
hugegraph-server/hugegraph-dist/src/main/java/org/apache/hugegraph/dist/RegisterUtil.java:57-117;
 hugegraph-server/hugegraph-dist/src/main/resources/backend.properties:18; 
hugegraph-server/hugegraph-dist/pom.xml:38,294-304; 
hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/backend/store/BackendProviderFactory.java:48,74-77
 |
   | config/config-backend-rocksdb.md | Data directory layout was undocumented 
| data_path and wal_path defaults, the `m`/`g`/`s` store subdirectories, one 
column family per table named `<database>+<table>`, old column families always 
reopened | 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStore.java:301-305,384-393;
 
hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/backend/store/BackendStoreProvider.java:28-30;
 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTable.java:64;
 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java:388-391
 |
   | config/config-backend-rocksdb.md | Multi-graph and snapshot paths were 
undocumented | Graphs cannot share a data path, cloned configs get a 
`_<newGraph>` suffix, deleting a graph deletes both dirs, snapshot path shape 
and resume behavior, parallel open of up to 8 instances with 600s/30s timeouts 
| 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStoreProvider.java:43-64;
 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStore.java:97-104,209-253,686-757
 |
   | config/config-backend-rocksdb.md | Only 47 of the 70 `rocksdb.*` keys were 
documented anywhere, and three defaults were wrong | All 70 keys with defaults, 
ranges and allowed values, in eight tables that keep the declaration order of 
the Options class | 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBOptions.java:56-699
 |
   | config/config-backend-rocksdb.md | How the options reach RocksDB was 
undocumented | optimize_mode presets applied before the explicit options, 
bulkload_mode effects, block cache 0 means no cache, capped prefix extractor, 
`uint64add` merge operator, create-if-missing and the two always-on flags | 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java:446-694
 |
   | config/config-backend-rocksdb.md | The bloom filter group looked 
unconditional | Notes that the filter and index caching options are only read 
when `bloom_filter_bits_per_key >= 0`, and that `optimize_filters_for_hits` 
applies regardless | 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java:560,667-691
 |
   | config/config-backend-rocksdb.md | No memory guidance existed | What `GET 
/metrics/backend` counts as memory, block cache is per column family, write 
buffers are per column family with `db_write_buffer_size` as the per store cap, 
row cache is per store | 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBMetrics.java:159-167;
 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java:494-502,577-578,659-665;
 
hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/metrics/MetricsAPI.java:85,115
 |
   | config/config-backend-rocksdb.md | `rocksdb.sst_path` had a one line 
description and no behavior | Ingestion walks `<sst_path>/<column family>/`, 
takes non-empty `*.sst` files and moves them into the column family | 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java:351-366;
 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBIngester.java:34-52
 |
   | config/config-backend-rocksdb.md | Raft mode for rocksdb was undocumented 
| The raft wrapper accepts only backends without shared storage, sessions write 
with WAL and sync off, init-store forces `raft.mode=false`, the shipped 
template marks the raft options deprecated, and the peer endpoints now live 
under `graphspaces/{graphspace}/graphs/{graph}/raft/` | 
hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/backend/store/BackendProviderFactory.java:63-70;
 
hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/backend/store/raft/RaftBackendStoreProvider.java:83-87;
 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java:715-723;
 
hugegraph-server/hugegraph-dist/src/main/java/org/apache/hugegraph/cmd/InitStore.java:283-284;
 
hugegraph-server/hugegraph-dist/src/assembly/static/conf/graphs/hugegraph.properties:59-60;
 
hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/raft/RaftAPI.j
 ava:57 |
   | config/config-backend-rocksdb.md | Backend feature limits were 
undocumented | Supported scans and paging, no store side index, write batch 
transactions, snapshots, no shared storage, olap tables, TTL filtered by the 
server, unsupported conditions and property updates | 
hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBFeatures.java:25-145
 |
   | config/config-backend-rocksdb.md | The riscv64 requirement was 
undocumented | `libatomic.so.1` is preloaded by `bin/util.sh` for the server, 
init-store and dump-store scripts, with the exact error message | 
hugegraph-server/hugegraph-dist/src/assembly/static/bin/util.sh:27-63; 
hugegraph-server/hugegraph-dist/src/assembly/static/bin/hugegraph-server.sh:48 |
   
   Follow-up outside this PR: the page is not yet listed in 
`data/docs_nav.json` or in the section index of
   `config/_index.md`, both of which are shared files that several backend 
pages need to touch at once.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to