This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch tinkergraph-storage
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tinkergraph-storage by this 
push:
     new 351ccf13d3 Document that TinkerStorageGraph is in-memory without a 
storage engine
351ccf13d3 is described below

commit 351ccf13d34896524ef3c8e4bf26cde6e68467bc
Author: Stephen Mallette <[email protected]>
AuthorDate: Tue Sep 8 11:25:47 2026 -0400

    Document that TinkerStorageGraph is in-memory without a storage engine
    
    The reference framed the two implementations as a choice between memory and
    transactions, which left the impression that TinkerStorageGraph always 
writes to
    disk. State in the introduction and the configuration section that 
persistence
    is enabled by configuration rather than by implementation, and add a 
paragraph
    to the transactions section covering the unconfigured case, which produces 
no
    files and suits testing.
    
    Assisted-by: Claude Code:claude-opus-5
    Claude-Session: https://claude.ai/code/session_01KgH2VCpRw57sbFg5GoAiVV
---
 docs/src/reference/implementations-tinkergraph.asciidoc | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/docs/src/reference/implementations-tinkergraph.asciidoc 
b/docs/src/reference/implementations-tinkergraph.asciidoc
index f4828243e0..0fc5ed45df 100644
--- a/docs/src/reference/implementations-tinkergraph.asciidoc
+++ b/docs/src/reference/implementations-tinkergraph.asciidoc
@@ -45,7 +45,9 @@ have a lightweight transactional form that can be 
instantiated offering simple `
 `read committed` transaction isolation, with optional durable persistence to 
disk. As of 4.0.0, `TinkerGraph` is an
 interface with two implementations: `TinkerMemoryGraph`, the in-memory, 
non-transactional implementation that
 `TinkerGraph.open()` constructs, and `TinkerStorageGraph`, the transactional 
implementation formerly named
-`TinkerTransactionGraph`. TinkerGraph is deployed with TinkerPop and serves as 
the reference
+`TinkerTransactionGraph`. Transactions and durability are separate concerns. 
`TinkerStorageGraph` writes nothing to
+disk unless a storage engine is configured, and without one it is a purely 
in-memory graph that retains its
+transaction support. TinkerGraph is deployed with TinkerPop and serves as the 
reference
 implementation for other providers to study in order to understand the 
semantics of the various methods of the
 TinkerPop API. Its status as a reference implementation does not however imply 
that it is not suitable for production.
 TinkerGraph has many practical use cases in production applications and their 
development. Some examples of TinkerGraph
@@ -207,9 +209,10 @@ type as well as generate new identifiers with that 
specified type.
 TIP: Setting the `IdManager` to `ANY` also allows `String` type ID values to 
be used.                                              
 
 Durable persistence is provided by `TinkerStorageGraph` through its pluggable 
storage layer and is described in the
-<<tinkergraph-gremlin-persistence, persistence section>>. The in-memory 
`TinkerMemoryGraph` holds no data across JVM
-restarts. Moving data in and out of any TinkerGraph in an interchange format 
is handled on demand by the `io()` step
-rather than by graph configuration, as shown below.
+<<tinkergraph-gremlin-persistence, persistence section>>. It is enabled by 
configuration rather than by the choice of
+implementation. Neither `TinkerMemoryGraph` nor a `TinkerStorageGraph` without 
a configured storage engine holds data
+across JVM restarts. Moving data in and out of any TinkerGraph in an 
interchange format is handled on demand by the
+`io()` step rather than by graph configuration, as shown below.
 
 It is important to consider the data being imported to TinkerGraph with 
respect to `defaultVertexPropertyCardinality`
 setting.  For example, if a `.gryo` file is known to contain multi-property 
data, be sure to set the default
@@ -265,6 +268,11 @@ The default configuration of TinkerGraph remains 
non-transactional.
 NOTE: This feature was first made available in TinkerPop 3.7.0 as 
`TinkerTransactionGraph`. The class was renamed to
 `TinkerStorageGraph` in 4.0.0.
 
+`TinkerStorageGraph` requires no storage configuration to provide 
transactions. With no storage engine set it creates
+no files and writes nothing to disk, which suits testing and any other case 
that calls for transaction semantics
+without durable state. Configuring a storage engine adds durability to that 
same graph and is described in the
+<<tinkergraph-gremlin-persistence, persistence section>>.
+
 ==== Transaction Semantics
 
 `TinkerStorageGraph` only has support for `ThreadLocal` transactions, so 
embedded graph transactions may not be fully

Reply via email to