2 điểm bởi GN⁺ 2026-03-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Cơ sở dữ liệu đồ thị hiệu năng cao được phát triển bằng Rust, hoạt động ở cả chế độ nhúng lẫn máy chủ trong khi vẫn duy trì mức sử dụng bộ nhớ thấp
  • Hỗ trợ cả mô hình Labeled Property Graph (LPG)RDF triple, cho phép ứng dụng rộng rãi từ mạng xã hội đến semantic web
  • Hỗ trợ nhiều ngôn ngữ truy vấn như GQL, Cypher, Gremlin, GraphQL, SPARQL, SQL/PGQ, giúp nhà phát triển có nhiều lựa chọn hơn
  • Cung cấp bộ tính năng đầy đủ gồm tìm kiếm vector dựa trên HNSW, giao dịch ACID, cô lập snapshot MVCC, binding đa ngôn ngữ
  • Tích hợp với các framework AI như LangChain, LlamaIndex, MCP, hỗ trợ kết hợp dữ liệu đồ thị với các ứng dụng AI

Tổng quan về Grafeo

  • Grafeo là một cơ sở dữ liệu đồ thị hiệu năng cao được phát triển bằng Rust, hoạt động ở cả chế độ nhúng và máy chủ trong khi vẫn duy trì mức sử dụng bộ nhớ thấp
  • Đạt hiệu năng cao nhất trong LDBC Social Network Benchmark, đồng thời hỗ trợ thực thi vector hóa, adaptive chunking, các phép toán tối ưu bằng SIMD
  • Hỗ trợ cả hai mô hình dữ liệu Labeled Property Graph (LPG)RDF triple, phù hợp với nhiều lĩnh vực từ mạng xã hội đến semantic web
  • Cung cấp bộ tính năng đầy đủ bao gồm giao dịch ACID, cô lập snapshot dựa trên MVCC, binding đa ngôn ngữ, hệ sinh thái tích hợp AI

Các đặc điểm chính

  • Kiến trúc hiệu năng cao

    • Được viết bằng core engine dựa trên Rust, không phụ thuộc vào C, và có thể tùy chọn dùng jemalloc/mimalloc cùng thư viện TLS C
    • Bao gồm push-based execution engine, xử lý song song theo đơn vị morsel, columnar storage, nén theo kiểu dữ liệu, trình tối ưu truy vấn dựa trên chi phí
    • Hỗ trợ thực thi truy vấn hiệu quả bằng cách tận dụng Zone map để bỏ qua dữ liệu
  • Hỗ trợ nhiều ngôn ngữ truy vấn

    • Hỗ trợ đầy đủ GQL, Cypher, Gremlin, GraphQL, SPARQL, SQL/PGQ
    • Có thể chọn ngôn ngữ phù hợp tùy theo tính chất dự án và mức độ thành thạo của nhà phát triển
    • GQL là chuẩn ISO cho pattern matching khai báo, Cypher là cú pháp pattern ASCII-art tương thích Neo4j, Gremlin là phong cách traversal dựa trên Apache TinkerPop
    • GraphQL hỗ trợ cả LPG và RDF, SPARQL là ngôn ngữ truy vấn RDF tiêu chuẩn W3C, còn SQL/PGQ hỗ trợ cú pháp SQL:2023 GRAPH_TABLE
  • Mô hình dữ liệu

    • Mô hình LPG sử dụng cấu trúc node và edge có nhãn cùng thuộc tính, đồng thời hỗ trợ thuộc tính với nhiều kiểu dữ liệu khác nhau
    • Mô hình RDF sử dụng cấu trúc triple subject-predicate-object, và có thể truy vấn hiệu quả thông qua chỉ mục SPO/POS/OSP
    • RDF tuân thủ tiêu chuẩn W3C, phù hợp cho semantic web, ontology và linked data
  • Tính năng tìm kiếm vector

    • Cung cấp tìm kiếm tương đồng dựa trên HNSW, hỗ trợ scalar, binary, và product quantization
    • Có thể kết hợp duyệt đồ thị với tìm kiếm tương đồng ngữ nghĩa
  • Nhúng và chạy độc lập

    • Có thể nhúng trực tiếp vào ứng dụng mà không cần phụ thuộc bên ngoài, hoặc chạy như một máy chủ độc lập với REST API và web UI
    • Có thể mở rộng từ thiết bị edge đến các cụm production quy mô lớn
  • Giao dịch và an toàn bộ nhớ

    • Bảo đảm giao dịch ACID đầy đủ với cô lập snapshot dựa trên MVCC
    • Hỗ trợ xử lý đồng thời ổn định nhờ an toàn bộ nhớ của Rust và thiết kế fearless concurrency
  • Binding đa ngôn ngữ

    • Hỗ trợ Python(PyO3), Node.js/TypeScript(napi-rs), Go(CGO), C(FFI), C#(.NET 8 P/Invoke), Dart(dart:ffi), WebAssembly(wasm-bindgen)
    • Có thể tận dụng cùng một Grafeo engine trong nhiều môi trường ngôn ngữ khác nhau
  • Hệ sinh thái và tích hợp

    • Tích hợp với các framework AI như LangChain, LlamaIndex, MCP
    • Cung cấp widget notebook tương tác, trực quan hóa đồ thị WebAssembly trên trình duyệt, máy chủ độc lập kèm web UI, công cụ benchmarking

Cài đặt và bắt đầu

  • Lệnh cài đặt

    • Python: uv add grafeo
    • Node.js: npm install @grafeo-db/js
    • Go: go get github.com/GrafeoDB/grafeo/crates/bindings/go
    • Rust: cargo add grafeo
    • .NET: dotnet add package GrafeoDB
    • Dart: grafeo: ^0.5.21
    • WebAssembly: npm install @grafeo-db/wasm
  • Ví dụ bắt đầu nhanh

    • Trong ví dụ Python, sau khi tạo cơ sở dữ liệu in-memory, dùng cú pháp INSERTMATCH để thêm node và edge rồi truy vấn quan hệ
    • Trong ví dụ Rust, tạo cơ sở dữ liệu bằng GrafeoDB::new_in_memory() và thực thi cùng truy vấn thông qua session

Giấy phép

  • Grafeo được phát hành theo giấy phép Apache-2.0

1 bình luận

 
GN⁺ 2026-03-23
Ý kiến trên Hacker News
  • Tôi tò mò không biết Grafeo đã triển khai benchmark LDBC chưa
    Tôi muốn so sánh nó với các cơ sở dữ liệu đồ thị khác. Đặc biệt là tôi tò mò về hiệu năng truy vấn OLAP
    Bài liên quan: Neo4j alternatives in 2026

  • Gần đây chúng tôi đã công bố cú pháp cypher cho gfql
    Đây là bộ máy truy vấn cypher OSS chạy trên CPU/GPU đầu tiên có thể chạy trực tiếp trên dataframe
    Nó chủ yếu được dùng cùng các DB có thể mở rộng như Databricks hay Splunk cho bảo mật, phát hiện gian lận, phân tích sự kiện, pipeline embedding ML+AI, v.v.
    Không cần cài DB, chỉ với một GPU có thể xử lý hơn 1 tỷ edge mỗi giây, và cũng có thể áp dụng trực tiếp lên dữ liệu Apache Arrow hoặc Parquet
    Xem tài liệu benchmark GFQL
    Phần lõi vector hóa đã đáp ứng hơn một nửa TCK, và hiện chúng tôi đang bổ sung các phần phức tạp hơn
    Đã được nhiều tổ chức như NATO, ngân hàng, chính phủ Mỹ sử dụng trong production, và giờ đã được open source để các nhà phát triển khác hay LLM có thể trực tiếp tận dụng

  • Tôi tò mò không biết có ai biết về DB này (Grafeo) không
    Nhìn lịch sử commit thì nó trông gần như là một dự án do AI viết ra. Có một người commit 100 nghìn đến 200 nghìn dòng mỗi tuần
    Trong những trường hợp như vậy, chất lượng code thường yếu hoặc bị phức tạp hóa quá mức
    Tôi muốn biết liệu có ai đang thực sự dùng nó không, hay chỉ là một thử nghiệm portfolio bằng AI

    • Tôi chính là người tạo ra Grafeo. Tôi cũng không biết vì sao nó lại lan ra khắp nơi như vậy, nhưng tôi có thể trả lời câu hỏi
      Phiên bản ban đầu là bản tái cấu trúc từ một graph DB local tên là Graphos do tôi tự làm
      Engine, core, Python binding và test được viết thủ công, còn tài liệu và một phần cấu hình là do AI tạo ra
      Tôi đã rà soát các phần do AI tạo, nhưng nó vẫn chưa ở mức production
      Tôi bắt đầu nó vì không hài lòng với Neo4j và được truyền cảm hứng từ các cuộc trò chuyện với Hännes của DuckDB
      Vì mức dùng bộ nhớ của LadybugDB quá cao nên tôi đã tự thử làm, và hiện tại tôi đang dùng nó cho nhu cầu cá nhân một cách khá hài lòng
      Không có mục đích thương mại, tôi đã phát hành nó dưới dạng mã nguồn mở và hoan nghênh người đóng góp
    • Với một cấu trúc graph DB điển hình thì lượng code này là khá nhiều
      Graph engine đòi hỏi thiết kế tỉ mỉ, nên tôi lo về chất lượng thiết kế chi tiết
    • Dùng một DB do LLM viết nghe như cơn ác mộng. Ngay cả DB lớn cũng đã rất khó xử lý rồi
    • Trong 3 tháng gần đây, số graph DB do LLM tạo ra đã bùng nổ
      Ngay cả trên gdotv.com mà tôi vận hành, việc quyết định nên hỗ trợ cái nào cũng ngày càng khó hơn
    • Commit 100 nghìn dòng mỗi tuần là một dấu hiệu cảnh báo. Phần lớn có lẽ là code sinh tự động hoặc formatting, và độ tin cậy về thiết kế hay test có thể thấp
  • Có quá nhiều graph DB nên tôi thấy rối, vì vậy tôi đã tạo trang mới gdb-engines.com
    Nó phân loại và sắp xếp từng DB

    • Sẽ tốt hơn nếu trong bảng có phân biệt loại nhúng hay loại server
    • Tôi cũng tò mò không biết danh sách này có phải được tạo bằng LLM hay không
  • Tôi muốn biết liệu có graph DB nào thực sự đáng tin cậy ở quy mô production hay không
    Tôi muốn biết trong số sản phẩm open source hoặc của vendor, ngoại trừ các hệ thống đặc thù như TAO của Meta

    • Tôi không muốn trả lời trực diện, nhưng chọn graph DB thực sự là một vấn đề rất khó
      Tôi có nói về chủ đề này trong bài trình bày FOSDEM 2025 của mình
    • Xét theo open source thì JanusGraph, DGraph, Apache AGE, HugeGraph, MemGraph, ArcadeDB là phù hợp
    • Tôi đang dẫn dắt phát triển TypeDB. Nó không dùng Cypher, nhưng vẫn hoạt động tốt trong production quy mô lớn
      Phần lớn các OSS DB đều đi theo mô hình open-core ở một mức độ nào đó
    • Hệ thống đồ thị của Facebook không chỉ có TAO mà là cả một hệ sinh thái lớn hơn
      Bài liên quan: A brief history of graphs at Facebook
    • Tôi đã tích hợp hàng chục graph DB trên gdotv.com, và phần lớn đều ở mức production
      Đặc biệt có những công nghệ đã lâu đời nhưng vẫn được doanh nghiệp dùng ổn định như JanusGraph
  • Hiện có tới 25 graph DB đang cố ăn theo làn sóng AI/LLM
    Nếu viết bằng Rust thì sẽ được chú ý trên HN, nhưng LadybugDB đã quyết định không đi theo hướng đó
    Thay vào đó họ muốn tập trung vào cải tiến dần dần và một Cypher strong-typed duy nhất
    Thảo luận liên quan: LadybugDB Discussion #141

    • Tôi tò mò không biết LadybugDB có phải cũng là một trong 25 dự án đó không
    • Đây là quyết định tốt ở chỗ chính độ hoàn thiện của sản phẩm mới tạo ra khách hàng, chứ không phải ngôn ngữ
    • Tranh cãi về ngôn ngữ thì đã chán rồi, nhưng Rust thực sự có lợi thế trong phát triển DB ở khía cạnh đồng thời và ngăn ngừa hỏng dữ liệu
      Không nên đánh giá nó chỉ như một “cảm xúc”, mà phải dựa trên cơ sở kỹ thuật
  • Grafeo rõ ràng là một dự án được viết với sự hỗ trợ của AI
    Lượng code nhiều nhưng không giống một sản phẩm AI sinh ra đơn giản, và thiết kế cũng khá độc đáo
    Test JS trông như hoàn toàn do AI tạo ra, và chất lượng ở một số subrepo không đồng đều
    Về giấy phép Apache 2.0 và tính năng thì khá thú vị, nhưng có vẻ cần thêm nhiều maintainer hơn

  • Tôi tò mò sự khác biệt là gì khi so với Helix DB
    Và tôi cũng thắc mắc vì sao lại phải truy vấn DB bằng GraphQL

  • Cụm từ “đã test benchmark LDBC bằng graph-bench” nghe như thể đó là một benchmark độc lập
    Nếu đó là công cụ tự làm thì nên nói rõ, và có lẽ nên nhận phản hồi để có thể so sánh công bằng với các dự án khác

    • Có lẽ chính câu đó cũng là nội dung do AI tự động viết
      Đây là mẫu rất điển hình của các codebase do AI tạo ra gần đây hay xuất hiện trên HN
      Nếu commit hơn 100 nghìn dòng mỗi tuần thì khả năng con người thực sự hiểu kỹ nội dung code là không cao
  • Tôi đã thử dùng Grafeo và thư viện liên quan grafeo_langchain cùng với model Ollama chạy local
    Kết quả chỉ ở mức thành công một nửa
    Tôi vẫn thích và đang dùng graph DB Kuzu dựa trên Python

    • Tôi tò mò không biết bạn đã dùng Kuzu trên gdotv.com chưa
      Kuzu không còn được phát triển nữa nhưng vẫn ổn định nên tôi vẫn duy trì hỗ trợ
      Việc migrate sang LadybugDB (fork chính) cũng khá dễ, nên bạn có thể cân nhắc