/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 = "proto2"; package bookkeeper; option java_package = "org.apache.bookkeeper.proto"; option optimize_for = SPEED; /** * Metadata format for storing ledger information */ message LedgerMetadataFormat { required int32 quorumSize = 1; required int32 ensembleSize = 2; required int64 length = 3; optional int64 lastEntryId = 4; enum State { OPEN = 1; IN_RECOVERY = 2; CLOSED = 3; } required State state = 5 [default = OPEN]; message Segment { repeated string ensembleMember = 1; required int64 firstEntryId = 2; } repeated Segment segment = 6; enum DigestType { CRC32 = 1; HMAC = 2; CRC32C = 3; DUMMY = 4; } optional DigestType digestType = 7; optional bytes password = 8; optional int32 ackQuorumSize = 9; optional int64 ctime = 10; message cMetadataMapEntry { optional string key = 1; optional bytes value = 2; } repeated cMetadataMapEntry customMetadata = 11; optional int64 cToken = 12; } message LedgerRereplicationLayoutFormat { required string type = 1; required int32 version = 2; } message UnderreplicatedLedgerFormat { repeated string replica = 1; optional int64 ctime = 2; } /** * Cookie format for storing cookie information */ message CookieFormat { required string bookieHost = 1; required string journalDir = 2; required string ledgerDirs = 3; optional string instanceId = 4; } /** * Debug information for locks */ message LockDataFormat { optional string bookieId = 1; } /** * Debug information for auditor votes */ message AuditorVoteFormat { optional string bookieId = 1; } /** * information of checkAllLedgers execution */ message CheckAllLedgersFormat { optional int64 checkAllLedgersCTime = 1; } /** * information of PlacementPolicyCheck execution */ message PlacementPolicyCheckFormat { optional int64 placementPolicyCheckCTime = 1; } /** * information of ReplicasCheck execution */ message ReplicasCheckFormat { optional int64 replicasCheckCTime = 1; } /** * information about services exposed by a Bookie. */ message BookieServiceInfoFormat { /** * Information about an endpoint. */ message Endpoint { required string id = 1; required int32 port = 2; required string host = 3; required string protocol = 4; repeated string auth = 5; repeated string extensions = 6; } repeated Endpoint endpoints = 6; map properties = 7; }