Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Summary] integrate new modules PD and Store components into hugegraph (Breaking Change) #2265

Open
26 tasks done
VGalaxies opened this issue Aug 3, 2023 · 1 comment
Open
26 tasks done
Assignees
Labels
feature New feature hstore Hstore backend pd PD module store Store module
Milestone

Comments

@VGalaxies
Copy link
Contributor

VGalaxies commented Aug 3, 2023

Feature Description (功能描述)

Relative Issues #435 #828 #1218 #1398 #1517 #1581 #1609 #1760 #1925 #1968 #1979

Background

Currently, the architecture of the community version of HugeGraph is still in version 1.0. In the internal version 2.0 of HugeGraph, we have the following design goals:

  • Support trillion-scale data storage and tens of thousands of graph storages.
  • Support multi-active, high availability, dynamic scalability, and automated operation and maintenance.
  • Maximize read and write performance.

Based on these goals, we have designed a distributed architecture that supports graph data partitioning and multiple replicas, and separates storage from computation for flexible scaling.

In version 2.0, in addition to the hugegraph-server, we also introduce two additional components: hugegraph-pd and hugegraph-store

image

The responsibilities of these two components are as follows:

  • hugegraph-pd: pd stands for placement driver, which can be simply understood as a meta server responsible for service discovery, partition information storage, and node scheduling.
  • hugegraph-store: as a new built-in storage backend, it uses RocksDB as the distributed backend storage foundation.

We will gradually merge the internal version 2.0 of HugeGraph into the community version. Therefore, the first step is to integrate the hugegraph-pd and hugegraph-store modules into this repository.

Tasks

Introduce PD and Store on the pd-store branch.

Currently, all tasks should be carried out on the pd-store branch:

Project structure adjustments on the master branch.

After #2301, it should be possible to perform simple CRUD operations on HugeGraph on the pd-store branch. In the next phase, the pd-store branch will need to be merged into the master branch with an appropriate granularity.

We will reorganize commit messages and merge changes ahead of the pd-store branch into the master branch:

  • pd-grpc, pd-common, pd-client (~8k loc)
  • pd-core (~9k loc)
  • pd-service (~11k loc)
  • pd-dist, pd-test (~1k loc)

  • store-grpc, store-common, store-client (~13k loc)
  • store-rocksdb (~4k loc)
  • store-core (~14k loc)
  • store-node (~11k loc)
  • store-dist, store-test, store-cli (~3k loc)

  • server-hstore (~3k loc)
  • server-core (~12k loc)
flowchart TD
  A(hg-pd-grpc)
  B(hg-pd-common)
  C(hg-pd-client)
  D(hugegraph-core)
  E(hugegraph-hstore)
  F(hg-store-grpc)
  G(hg-store-common)
  H(hg-store-client)
  J(hg-pd-core)
  K(hg-pd-service)
  L(hg-pd-dist)
  M(hg-store-cli)
  N(hg-store-rocksdb)
  O(hg-store-core)
  P(hg-store-node)
  Q(hg-store-dist)
  B-->A
  C-->B
  D-.->C
  E-->D
  H-->F
  H-->G
  H-->C
  D-->G
  E-->H
  O-->D
  J-->B
  K-->J
  L-->K
  M-->H
  N-->G
  O-.->H
  O-->N
  P-->O
  Q-->P
Loading

Project Structure

# new project structure
                   - core/api/test/...
          - server - hbase/rocksdb/mysql/...
          -        - ...
hugegraph - pd - pd submodules
          -
          - store - store submodules
@VGalaxies VGalaxies added the feature New feature label Aug 3, 2023
@imbajin imbajin added this to the 1.5.0 milestone Aug 3, 2023
@imbajin imbajin moved this to 🏗 In progress in HugeGraph Tasks Aug 3, 2023
@imbajin imbajin linked a pull request Aug 3, 2023 that will close this issue
11 tasks
@imbajin imbajin linked a pull request Aug 3, 2023 that will close this issue
11 tasks
@imbajin imbajin modified the milestones: 2.0.0, 1.5.0 Aug 5, 2023
@imbajin imbajin changed the title [Feature] integrate pd and store components into hugegraph [Summary] integrate new modules PD and Store components into hugegraph (Breaking Change) Sep 18, 2023
@imbajin imbajin moved this from 🏗 In progress to 📋 Backlog in HugeGraph Tasks Sep 18, 2023
@imbajin imbajin pinned this issue Sep 18, 2023
@imbajin imbajin added pd PD module store Store module labels Sep 19, 2023
imbajin pushed a commit that referenced this issue Nov 8, 2023
#2338)

## Purpose of the PR

Subtask of #2265.

Adjust the project structure of this repository to include three sub-modules: hugegraph-server, hugegraph-pd, hugegraph-store at the root level.

## Main Changes

Roll back to the moment when #2266 was merged on `pd-store` and incorporate the latest changes in `master`.

For more detailed information, please refer to #2266 (comment).


---------

Co-authored-by: M <[email protected]>
VGalaxies added a commit to VGalaxies/incubator-hugegraph that referenced this issue Nov 10, 2023
apache#2338)

Subtask of apache#2265.

Adjust the project structure of this repository to include three sub-modules: hugegraph-server, hugegraph-pd, hugegraph-store at the root level.

Roll back to the moment when apache#2266 was merged on `pd-store` and incorporate the latest changes in `master`.

For more detailed information, please refer to apache#2266 (comment).

---------

Co-authored-by: M <[email protected]>
imbajin pushed a commit that referenced this issue Nov 10, 2023
#2338)

Subtask of #2265.

Adjust the project structure of this repository to include three sub-modules: hugegraph-server, hugegraph-pd, hugegraph-store at the root level.

Roll back to the moment when #2266 was merged on `pd-store` and incorporate the latest changes in `master`.

For more detailed information, please refer to #2266 (comment).

---------

Co-authored-by: M <[email protected]>
imbajin added a commit that referenced this issue Mar 11, 2024
…to hugegraph (#2460)

subtask of #2265

---

During the code review, I found the following issues:

1. Similar functionality appears multiple times, such as stub connection-related code, with redundancy between `PDClient.StubProxy` and `AbstractClientStubProxy`.
2. Package partitioning:
    1. `PDPulse`, `PDPulseImpl` should in `pulse`
    2. `PDWatch`, `PDWatchImpl` should in `watch`
3. Unused code, see below

---------

Co-authored-by: imbajin <[email protected]>
@Pengzna
Copy link
Contributor

Pengzna commented Mar 16, 2024

please add store related sub-task to this issue, thx~

imbajin added a commit that referenced this issue Apr 19, 2024
The corresponding tests will be merged after pd-service

subtask of #2265

---

During the code review, I found the following issues:

1. Similar functionality appears multiple times, such as stub connection-related code, with redundancy between `PDClient.StubProxy` and `AbstractClientStubProxy`.
2. Package partitioning:
    1. `PDPulse`, `PDPulseImpl` should in `pulse`
    2. `PDWatch`, `PDWatchImpl` should in `watch`
3. Unused code, see below

---------

Co-authored-by: imbajin <[email protected]>
imbajin added a commit that referenced this issue Apr 22, 2024
subtask of #2265

For detailed module analysis documentation, please refer to fs doc/link/wiki

TODO: Update the getPomVersion implement in the common-module

---------

Co-authored-by: imbajin <[email protected]>
imbajin added a commit that referenced this issue May 6, 2024
… tests, and REST tests for PD (#2532)

subtask of #2265

---------

Co-authored-by: imbajin <[email protected]>
imbajin added a commit that referenced this issue May 6, 2024
subtask of #2265

When introducing hstore, server-core needs corresponding modifications. Except for BytesBuffer.java in hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/backend/serializer/, other files should be consistent with the pd-store branch.

---------

Co-authored-by: imbajin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature hstore Hstore backend pd PD module store Store module
Projects
Status: Summary
Status: 📋 Backlog
Development

No branches or pull requests

4 participants