InterDatanodeProtocol.proto 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. // This file contains protocol buffers that are used throughout HDFS -- i.e.
  19. // by the client, server, and data transfer protocols.
  20. option java_package = "org.apache.hadoop.hdfs.protocol.proto";
  21. option java_outer_classname = "InterDatanodeProtocolProtos";
  22. option java_generic_services = true;
  23. option java_generate_equals_and_hash = true;
  24. import "hdfs.proto";
  25. /**
  26. * Block with location information and new generation stamp
  27. * to be used for recovery.
  28. */
  29. message InitReplicaRecoveryRequestProto {
  30. required RecoveringBlockProto block = 1;
  31. }
  32. /**
  33. * Repica recovery information
  34. */
  35. message InitReplicaRecoveryResponseProto {
  36. required bool replicaFound = 1;
  37. // The following entries are not set if there was no replica found.
  38. optional ReplicaStateProto state = 2; // State of the replica
  39. optional BlockProto block = 3; // block information
  40. }
  41. /**
  42. * Update replica with new generation stamp and length
  43. */
  44. message UpdateReplicaUnderRecoveryRequestProto {
  45. required ExtendedBlockProto block = 1; // Block identifier
  46. required uint64 recoveryId = 2; // New genstamp of the replica
  47. required uint64 newLength = 3; // New length of the replica
  48. }
  49. /**
  50. * Response returns updated block information
  51. */
  52. message UpdateReplicaUnderRecoveryResponseProto {
  53. required string storageID = 1; // ID of the storage that stores replica
  54. }
  55. /**
  56. * Protocol used between datanodes for block recovery.
  57. *
  58. * See the request and response for details of rpc call.
  59. */
  60. service InterDatanodeProtocolService {
  61. /**
  62. * Initialize recovery of a replica
  63. */
  64. rpc initReplicaRecovery(InitReplicaRecoveryRequestProto)
  65. returns(InitReplicaRecoveryResponseProto);
  66. /**
  67. * Update a replica with new generation stamp and length
  68. */
  69. rpc updateReplicaUnderRecovery(UpdateReplicaUnderRecoveryRequestProto)
  70. returns(UpdateReplicaUnderRecoveryResponseProto);
  71. }