Gremlin-Go: 직렬화할 수 없는 트리 단계

王林
풀어 주다: 2024-02-09 10:51:19
앞으로
991명이 탐색했습니다.

Gremlin-Go: 직렬화할 수 없는 트리 단계

php小编苹果Gremlin-Go是一种新型的分布式数据库,它采用了树步骤不可序列化的技术,为用户提供了更高效、更可靠的数据存储和处理方案。通过将数据存储在树结构中,并使用不可序列化的步骤来实现数据的读写操作,Gremlin-Go能够在分布式环境下保持数据的一致性和可靠性。这种创新的设计理念使得Gremlin-Go成为了当前领先的分布式数据库之一,为各种规模的企业提供了强大的数据支持。

问题内容

我正在运行一个查询来遍历特定标签后面的所有“入”边,稍后我将对“出”边执行类似的查询。我想将其作为一棵树,因为可能有一个具有多个边的顶点要遍历,并且需要在我的客户端中反映这一点,所以我不能在这里仅使用 tolist()

我目前正在使用 gremlin-go sdk,但是在调用 tree() 步骤时出现反序列化错误。这是我的客户端代码的片段:

    res, err := g.v(id).
        emit().
        repeat(__.in(label)).
        tree().
        next() // other terminal steps produce same issue
로그인 후 복사

这会在数据类型 0x2b 上产生反序列化错误,该数据类型是 graphbinary 核心数据类型“tree”

2023/02/28 12:23:05 Error occurred during operation gremlinServerWSProtocol.readLoop(): 'E0408: unknown data type to deserialize 0x2b'
2023/02/28 12:23:05 Read loop error 'E0408: unknown data type to deserialize 0x2b', closing read loop.
2023/02/28 12:23:05 Connection error callback invoked, closing protocol.
로그인 후 복사

gremlin-go 参考文档似乎没有提及任何有关特定序列化支持的内容。根据 gremlin-go readme,它支持所有核心 graphbinary 数据类型。我已经在 gremlin 控制台中测试了我的查询以验证查询和服务器: g.v(<id>).emit().repeat(__.in(<label>)).tree().next()</label></id>

对于一些额外的上下文,我正在本地针对 gremlin-server:3.5.3 进行开发,以进行实验,目的是通过对 aws neptune 的支持来完成查询。我知道这些不能完全互换,并且将遵循 neptune-gremlin 参考。 neptune 的最新版本指定 gremlin 的最新支持版本为 3.5.3。

解决方法

一般来说,只有 Java(以及其他基于 JVM 的客户端)能够反序列化像子图或树这样的结构。这是因为这些是唯一具有当前可用数据结构的本机实现的 Gremlin 客户端(例如 JVM 客户端具有可用的 TinkerGraph)。

这是 TinkerPop 社区非常了解的一项,并且它在值得改进的事项列表中。

一种可能的解决方法(不是很好)是使用 HTTP 端点(以文本形式发送查询)并处理返回的 GraphSON(如果必须返回此类数据结构)。

위 내용은 Gremlin-Go: 직렬화할 수 없는 트리 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!