Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gremlin-Go: langkah pokok tidak boleh bersiri

Gremlin-Go: langkah pokok tidak boleh bersiri

王林
王林ke hadapan
2024-02-09 10:51:19989semak imbas

Gremlin-Go: langkah pokok tidak boleh bersiri

editor php Apple Gremlin-Go ialah jenis pangkalan data teragih baharu yang menggunakan teknologi langkah pokok yang tidak boleh disiri untuk menyediakan pengguna dengan penyelesaian penyimpanan dan pemprosesan data yang lebih cekap dan boleh dipercayai. Dengan menyimpan data dalam struktur pokok dan menggunakan langkah yang tidak boleh disiri untuk membaca dan menulis data, Gremlin-Go dapat mengekalkan ketekalan dan kebolehpercayaan data dalam persekitaran yang diedarkan. Konsep reka bentuk yang inovatif ini menjadikan Gremlin-Go sebagai salah satu pangkalan data teragih terkemuka pada masa ini, menyediakan sokongan data yang berkuasa untuk perusahaan dari semua saiz.

Kandungan soalan

Saya menjalankan pertanyaan untuk mengulangi semua tepi "masuk" di belakang label tertentu, kemudian saya akan melakukan pertanyaan serupa untuk tepi "keluar". Saya ingin menjadikan ini pokok kerana mungkin terdapat bucu dengan berbilang tepi untuk dilalui dan perlu mencerminkannya dalam klien saya, jadi saya tidak boleh menggunakan tolist() di sini.

Saya sedang menggunakan gremlin-go sdk, tetapi saya mendapat ralat penyahserikatan semasa memanggil langkah tree(). Berikut ialah coretan kod pelanggan saya:

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

Ini akan menghasilkan ralat penyahserialisasian pada jenis data 0x2b iaitu jenis data teras grafbinari "pokok"

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.

Dokumentasi rujukan gremlin-go nampaknya tidak menyebut apa-apa tentang sokongan bersiri tertentu. Menurut gremlin-go readme, ia menyokong semua jenis data grafbinari teras. Saya telah menguji pertanyaan saya dalam konsol gremlin untuk mengesahkan pertanyaan dan pelayan: g.v(<id>).emit().repeat(__.in(<label>)).tree().next()</label></id>.

Untuk beberapa konteks tambahan, saya sedang membangun secara tempatan terhadap gremlin-server:3.5.3 untuk bereksperimen dengan matlamat menyelesaikan pertanyaan dengan sokongan untuk aws neptune. Saya tahu ini tidak boleh ditukar ganti sepenuhnya dan akan mengikut rujukan neptune-gremlin. Versi terbaharu neptune menyatakan bahawa versi terkini gremlin yang disokong ialah 3.5.3.

Penyelesaian

Secara amnya, hanya Java (dan pelanggan berasaskan JVM yang lain) dapat menyahsiri struktur seperti subgraf atau pokok. Ini kerana ini adalah satu-satunya pelanggan Gremlin yang mempunyai pelaksanaan asli bagi struktur data yang tersedia pada masa ini (cth. klien JVM mempunyai TinkerGraph tersedia).

Ini adalah sesuatu yang sangat diketahui oleh komuniti TinkerPop, dan ia terdapat dalam senarai perkara yang patut dipertingkatkan.

Penyelesaian yang mungkin (tidak begitu bagus) ialah menggunakan titik akhir HTTP (menghantar pertanyaan sebagai teks) dan mengendalikan GraphSON yang dikembalikan (jika struktur data sedemikian mesti dikembalikan).

Atas ialah kandungan terperinci Gremlin-Go: langkah pokok tidak boleh bersiri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam