Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .serena/memories/architecture_and_modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
### 1. Client Layer
- Gremlin/Cypher queries, REST APIs, Swagger UI

### 2. Server Layer (hugegraph-server, 13 submodules)
### 2. Server Layer (hugegraph-server, 8 submodules)
- **REST API** (hugegraph-api): GraphAPI, SchemaAPI, GremlinAPI, CypherAPI, AuthAPI, GraphSpaceAPI (distributed only), ManagerAPI (distributed only)
- **Graph Engine** (hugegraph-core): Schema (with TTL update), traversal, task scheduling, GraphSpace multi-tenancy
- **Backend Interface**: Pluggable via `BackendStore`

### 3. Storage Layer
- RocksDB (default/embedded), HStore (distributed/production)
- Legacy (≤1.5.0, deprecated, excluded from context): MySQL, PostgreSQL, Cassandra, ScyllaDB, HBase, Palo
- HBase (deprecated; planned for removal in 2.0)

## Module Structure (7 top-level modules)

### hugegraph-server (13 submodules)
`hugegraph-core`, `hugegraph-api` (includes `opencypher/`, `space/`), `hugegraph-dist`, `hugegraph-test`, `hugegraph-example`, plus backends: `hugegraph-rocksdb`, `hugegraph-hstore`, `hugegraph-hbase`, `hugegraph-mysql`, `hugegraph-postgresql`, `hugegraph-cassandra`, `hugegraph-scylladb`, `hugegraph-palo`
### hugegraph-server (8 submodules)
`hugegraph-core`, `hugegraph-api` (includes `opencypher/`, `space/`), `hugegraph-dist`, `hugegraph-test`, `hugegraph-example`, plus backends: `hugegraph-rocksdb`, `hugegraph-hstore`, `hugegraph-hbase`

### hugegraph-pd (8 submodules)
Placement Driver: `hg-pd-core`, `hg-pd-service`, `hg-pd-client`, `hg-pd-common`, `hg-pd-grpc`, `hg-pd-cli`, `hg-pd-dist`, `hg-pd-test`
Expand Down
3 changes: 1 addition & 2 deletions .serena/memories/implementation_patterns_and_guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
- Backends implement `BackendStore` interface from `hugegraph-core`
- Each backend = separate Maven module under `hugegraph-server/`
- Configured via `hugegraph.properties` → `backend` property
- **Active backends (focus here)**: RocksDB (default/embedded), HStore (distributed)
- **Legacy backends** (deprecated, excluded from Serena context): MySQL, PostgreSQL, Cassandra, ScyllaDB, HBase, Palo
- **Supported backends**: RocksDB (default/embedded), HStore (distributed), HBase (deprecated; planned for removal in 2.0)

## GraphSpace Multi-Tenancy
- Core: `hugegraph-core/.../space/` (GraphSpace, SchemaTemplate, Service, register/)
Expand Down
3 changes: 1 addition & 2 deletions .serena/memories/project_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ Apache HugeGraph is a fast-speed, highly-scalable graph database supporting 10+
- **Graph Framework**: Apache TinkerPop 3.5.1
- **RPC**: gRPC + Protocol Buffers
- **API Docs**: Swagger (io.swagger.core.v3)
- **Storage**: RocksDB (default/embedded), HStore (distributed/production)
- **Legacy backends** (≤1.5.0): MySQL, PostgreSQL, Cassandra, ScyllaDB, HBase, Palo
- **Storage**: RocksDB (default/embedded), HStore (distributed/production), HBase (deprecated; planned for removal in 2.0)

## Version
- Current: 1.7.0 (`${revision}` property, Maven flatten plugin)
Expand Down
2 changes: 1 addition & 1 deletion .serena/memories/task_completion_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ mvn clean compile -Dmaven.javadoc.skip=true # Compile warnings
```

## 2. Testing
- Choose backend: `memory` (fast), `rocksdb` (realistic), `hbase` (distributed)
- Choose backend: `memory` (fast), `rocksdb` (realistic), `hbase` (deprecated compatibility)
- Single test: `-Dtest=ClassName` works with all profiles
- Bug fix → existing tests; New feature → write tests; Refactor → affected module tests

Expand Down
9 changes: 2 additions & 7 deletions .serena/project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,12 @@ ignore_all_files_in_gitignore: true
# Same syntax as gitignore, so you can use * and **.
# Note: global ignored_paths from serena_config.yml are also applied additively.
ignored_paths:
# --- Deprecated backends (focus on RocksDB/HStore only) ---
- "hugegraph-server/hugegraph-cassandra/**"
- "hugegraph-server/hugegraph-scylladb/**"
- "hugegraph-server/hugegraph-mysql/**"
- "hugegraph-server/hugegraph-postgresql/**"
- "hugegraph-server/hugegraph-palo/**"
# --- HBase is deprecated and planned for removal in 2.0 ---
Comment thread
LegendPei marked this conversation as resolved.
- "hugegraph-server/hugegraph-hbase/**"
# --- gRPC generated Java (235k lines, never hand-edited, regenerated by mvn compile) ---
- "hugegraph-pd/hg-pd-grpc/src/main/java/**"
- "hugegraph-store/hg-store-grpc/src/main/java/**"
# --- License/legal files (585 txt files, only touched when adding dependencies) ---
# --- License/legal files (maintained through the release/dependency workflow) ---
- "install-dist/release-docs/licenses/**"
- "install-dist/scripts/dependency/known-dependencies.txt"
# --- Rarely modified tests/examples ---
Expand Down
71 changes: 29 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ achieved through the powerful [Gremlin](https://tinkerpop.apache.org/gremlin.htm

- **Schema Metadata Management**: VertexLabel, EdgeLabel, PropertyKey, and IndexLabel
- **Multi-type Indexes**: Exact query, range query, and complex conditions combination query
- **Plug-in Backend Store Framework**: Mainly supports `RocksDB`/`HStore` + `HBase`; other backends available in [legacy versions](https://hugegraph.apache.org/docs/download/download/) ≤ `1.5.0` (MySQL/PostgreSQL/Cassandra...)
- **Plug-in Backend Store Framework**: RocksDB powers standalone deployments and HStore powers distributed clusters. See the [backend evolution guide](hugegraph-server/README.md#backend-evolution-and-compatibility) for compatibility details.
- **Big Data Integration**: Seamless integration with `Flink`/`Spark`/`HDFS`
- **Complete Graph Ecosystem**: In/out-memory Graph Computing + Graph Visualization & Tools + Graph Learning & AI
- **Dual Query Language Support**: [Gremlin](https://tinkerpop.apache.org/gremlin.html) (via [Apache TinkerPop 3](https://tinkerpop.apache.org/)) and [Cypher](https://en.wikipedia.org/wiki/Cypher_(query_language)) (OpenCypher)
Expand Down Expand Up @@ -75,35 +75,37 @@ HugeGraph supports both **standalone** and **distributed** deployments:
│ └────────┬────────┘ │
└─────────────────────┼───────────────────────────────┘
┌────────────────────────────────┼────────────────────────────────┐
┌────────────▼────────────┐ ┌──────────────▼──────────────┐ ┌─────────────────────┐
Standalone Mode Distributed Mode │ Legacy Backends
│ ┌───────────────────┐ │ │ ┌─────────────────────────┐ │ │ (≤v1.5)
│ │ RocksDB │ │ │ │ HugeGraph-PDMySQL │ PostgreSQL
│ │ (embedded) (Raft, 3-5 nodes) │ │ │ Cassandra
│ └───────────────────┘ │ │ │ :8620/:8686 │ │ │ HBase (≤v1.7)
└────────────┬────────────┘ └──────────────────────┘
│ Use Case:
│ Development/Testing │ │ ┌────────────▼────────────┐ │
│ Single Node │ │ │ HugeGraph-Store │ │
│ │ │ │ (Raft + RocksDB) │ │
│ Data Scale: < 1TB │ │ │ (3+ nodes) :8520 │ │
└─────────────────────────┘ │ └─────────────────────────┘ │
│ Use Case:
│ Production/HA/Cluster
│ Data Scale: < 1000 TB
└───────────────────────────────┘
┌──────────────────────────────────┐
┌──────────────▼──────────────┐ ┌──────────────▼──────────────┐
Standalone Mode Distributed Mode
│ ┌───────────────────────┐ │ │ ┌───────────────────────
│ │ RocksDB │ │ │ HugeGraph-PD │
│ │ (embedded) │ │ │ │ (Raft, 3-5 nodes) │
│ └───────────────────────┘ │ │ │ :8620/:8686
│ └──────────────────────┘
│ Use Case:
│ Development/Testing │ ┌──────────────────────┐ │
│ Single Node │ │ HStore │ │
│ │ (Raft, 3+ nodes) │ │
│ Data Scale: < 1TB │ │ :8520 │ │
└───────────────────────────── │ └───────────────────────┘ │
│ Use Case: │
│ Production/HA/Cluster │
│ Data Scale: < 1000 TB │
─────────────────────────────┘
```

See the [backend evolution guide](hugegraph-server/README.md#backend-evolution-and-compatibility) for lifecycle and historical compatibility guidance.

### Deployment Mode Comparison

| Mode | Components | Use Case | Data Scale | High Availability |
|------|------------|----------|------------|-------------------|
| **Standalone** | Server + RocksDB | Development, Testing, Single Node | < 1TB | Basic |
| **Distributed** | Server + PD (3-5 nodes) + Store (3+ nodes) | Production, HA, Horizontal Scaling | < 1000 TB | Yes |
| **Distributed** | Server + PD + HStore | Production, HA, Horizontal Scaling | < 1000 TB | Yes |

### Module Overview

Expand All @@ -119,12 +121,7 @@ HugeGraph supports both **standalone** and **distributed** deployments:

```mermaid
flowchart TB
subgraph Clients["Client Layer"]
GC[Gremlin Console]
REST[REST Client]
CYPHER[Cypher Client]
SDK[SDK/Tools]
end
CLIENTS["Client Layer<br/>Gremlin Console · REST Client · Cypher Client · SDK/Tools"]

subgraph Server["HugeGraph Server :8080"]
API[REST API<br/>Jersey 3]
Expand All @@ -143,23 +140,13 @@ flowchart TB
end

subgraph Distributed["Distributed Mode"]
PD[HugeGraph-PD<br/>Raft Cluster<br/>:8620/:8686]
STORE[HugeGraph-Store<br/>Raft + RocksDB<br/>:8520]
PD <--> STORE
end

subgraph Legacy["Legacy Backends (≤v1.5)"]
MYSQL[(MySQL)]
PG[(PostgreSQL)]
CASS[(Cassandra)]
HBASE[(HBase, ≤v1.7)]
PD_HSTORE[PD + HStore<br/>Raft Cluster]
end
end

Clients --> Server
CLIENTS --> Server
CORE --> ROCKS
CORE --> PD
CORE -.-> Legacy
CORE --> PD_HSTORE

style Server fill:#e1f5ff
style Distributed fill:#fff4e1
Expand Down
4 changes: 3 additions & 1 deletion docker/hbase/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

This guide covers running HugeGraph with HBase backend.

> **Deprecation notice:** The HBase backend is deprecated and is planned for removal in HugeGraph 2.0. Existing deployments should plan a migration to a maintained backend.

> All commands below run from the repository root (this project folder).

Use this once at the start of your terminal session:
Expand Down Expand Up @@ -158,7 +160,7 @@ After either path is up, run the shared tests below.

- Base URL: `http://localhost:8080`
- Graph target name: `hugegraph`
- Storage backend: persistent (HBase/Cassandra/RocksDB)
- Storage backend: persistent (HBase/RocksDB/HStore)

---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
hugegraph-api-${revision}.jar
hugegraph-cassandra-${revision}.jar
hugegraph-common-${revision}.jar
hugegraph-core-${revision}.jar
hugegraph-dist-${revision}.jar
hugegraph-hbase-${revision}.jar
hugegraph-hstore-${revision}.jar
hugegraph-mysql-${revision}.jar
hugegraph-palo-${revision}.jar
hugegraph-postgresql-${revision}.jar
hugegraph-rocksdb-${revision}.jar
hugegraph-rpc-${revision}.jar
hugegraph-scylladb-${revision}.jar
hugegraph-struct-${revision}.jar
15 changes: 5 additions & 10 deletions hugegraph-server/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ HugeGraph Server is the graph engine layer of Apache HugeGraph, consisting of:
- **REST API Layer** (hugegraph-api): RESTful APIs for graph operations, Gremlin/Cypher queries, schema management, and authentication
- **Graph Engine Layer** (hugegraph-core): TinkerPop 3 implementation, schema management, traversal optimization, task scheduling
- **Backend Interface**: Abstraction layer for pluggable storage backends
- **Storage Backend Implementations**: RocksDB (default), HStore (distributed), and legacy backends (MySQL, PostgreSQL, Cassandra, ScyllaDB, HBase, Palo)
- **Storage Backend Implementations**: RocksDB (default), HStore (distributed), HBase (deprecated; planned for removal in 2.0), and Memory (test-only)

Technology: Java 11+, Maven 3.5+, Apache TinkerPop 3.5.1, Jersey 3.0 (REST), gRPC (distributed communication)

Expand Down Expand Up @@ -49,8 +49,8 @@ mvn checkstyle:check
**Backend profiles** (combine with test profiles):
- `memory`: In-memory backend (default for tests)
- `rocksdb`: RocksDB backend
- `hbase`: HBase backend
- `mysql`, `postgresql`, `cassandra`, `scylladb`, `palo`: Other backends
- `hbase`: HBase backend (deprecated; planned for removal in 2.0)
- `hstore`: HStore backend

```bash
# Unit tests (from hugegraph-server/)
Expand Down Expand Up @@ -78,20 +78,15 @@ All tests are in `hugegraph-test/` which depends on all other modules. Tests are

## Module Structure

Multi-module Maven project with 13 submodules:
Multi-module Maven project with 8 submodules:

```
hugegraph-server/
├── hugegraph-core # Graph engine, TinkerPop impl, schema, backend interface
├── hugegraph-api # REST API, Gremlin/Cypher endpoints, authentication
├── hugegraph-rocksdb # RocksDB backend (default, embedded)
├── hugegraph-hstore # HStore backend (distributed, production)
├── hugegraph-mysql # MySQL backend (legacy)
├── hugegraph-postgresql # PostgreSQL backend (legacy)
├── hugegraph-cassandra # Cassandra backend (legacy)
├── hugegraph-scylladb # ScyllaDB backend (legacy)
├── hugegraph-hbase # HBase backend (legacy)
├── hugegraph-palo # Palo backend (legacy)
├── hugegraph-hbase # HBase backend (deprecated; planned for removal in 2.0)
├── hugegraph-dist # Distribution packaging, scripts, configs
├── hugegraph-test # All test suites
└── hugegraph-example # Example code
Expand Down
Loading
Loading