All Downloads are FREE. Search and download functionalities are using the official Maven repository.

raphscope.groot-client.0.24.3.source-code.graph_def.proto Maven / Gradle / Ivy

// Copyright 2020 Alibaba Group Holding Limited. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

syntax = "proto3";
package gs.rpc.graph;

import "google/protobuf/any.proto";
import public "schema_common.proto";

option java_package = "com.alibaba.graphscope.proto";
option java_multiple_files = true;

// Various graph type
enum GraphTypePb {
    UNKNOWN_TYPE = 0;
    IMMUTABLE_EDGECUT = 1;
    DYNAMIC_PROPERTY = 2;
    DYNAMIC_PROJECTED = 3;
    ARROW_PROPERTY = 4;
    ARROW_PROJECTED = 5;
    PERSISTENT_STORE = 6;
    ARROW_FLATTENED = 7;
}

enum VertexMapTypePb {
    UNKNOWN_VM_TYPE = 0;
    GLOBAL_VERTEX_MAP = 1;
    LOCAL_VERTEX_MAP = 2;
}

// Attributes that only meaningful to and will be set by groot storage
message GrootInfoPb {
    int32 last_label_id = 1;
    int32 last_property_id = 2;
    int64 last_table_id = 3;
}

// Attributes that only meaningful to and will be set by vineyard storage
message VineyardInfoPb {
    DataTypePb oid_type = 1;
    DataTypePb vid_type = 2;
    DataTypePb vdata_type = 3;
    DataTypePb edata_type = 4;

    // This is for sharing graph between vineyard storage and groot storage
    string schema_path = 5;
    // Whether to automatically generate unique edge id for all edges.
    bool generate_eid = 6;
    // object id of the graph in vineyard
    int64 vineyard_id = 7;
    // For client to reconstrut graph schema
    string property_schema_json = 8;
    // Global or local vertex map
    VertexMapTypePb vertex_map_type = 9;
    // Fragment ids
    repeated int64 fragments = 10;

    // retain_oid
    bool retain_oid = 11;
}

// Attributes that only meaningful to and will be set by dynamic storage
message MutableGraphInfoPb {
   DataTypePb vdata_type = 1;
   DataTypePb edata_type = 2;
   string property_schema_json = 3;
}

// Stores all meta of a graph
message GraphDefPb {
    int64 version = 1;
    string key = 2;
    GraphTypePb graph_type = 3;
    bool directed = 4;
    repeated TypeDefPb type_defs = 5;
    repeated EdgeKindPb edge_kinds = 6;
    map property_name_to_id = 7;
    // current extension supported:
    //   - GrootInfoPb
    //   - VineyardInfoPb
    //   - MutableGraphInfoPb
    google.protobuf.Any extension = 8;
    bool is_multigraph = 9;

    // compact edges
    bool compact_edges = 10;

    // use perfect hash
    bool use_perfect_hash = 11;
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy