InterDatanodeProtocol.proto 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. package hadoop.hdfs;
  25. import "hdfs.proto";
  26. /**
  27. * Block with location information and new generation stamp
  28. * to be used for recovery.
  29. */
  30. message InitReplicaRecoveryRequestProto {
  31. required RecoveringBlockProto block = 1;
  32. }
  33. /**
  34. * Repica recovery information
  35. */
  36. message InitReplicaRecoveryResponseProto {
  37. required bool replicaFound = 1;
  38. // The following entries are not set if there was no replica found.
  39. optional ReplicaStateProto state = 2; // State of the replica
  40. optional BlockProto block = 3; // block information
  41. }
  42. /**
  43. * Update replica with new generation stamp and length
  44. */
  45. message UpdateReplicaUnderRecoveryRequestProto {
  46. required ExtendedBlockProto block = 1; // Block identifier
  47. required uint64 recoveryId = 2; // New genstamp of the replica
  48. required uint64 newLength = 3; // New length of the replica
  49. }
  50. /**
  51. * Response returns updated block information
  52. */
  53. message UpdateReplicaUnderRecoveryResponseProto {
  54. required string storageID = 1; // ID of the storage that stores replica
  55. }
  56. /**
  57. * Protocol used between datanodes for block recovery.
  58. *
  59. * See the request and response for details of rpc call.
  60. */
  61. service InterDatanodeProtocolService {
  62. /**
  63. * Initialize recovery of a replica
  64. */
  65. rpc initReplicaRecovery(InitReplicaRecoveryRequestProto)
  66. returns(InitReplicaRecoveryResponseProto);
  67. /**
  68. * Update a replica with new generation stamp and length
  69. */
  70. rpc updateReplicaUnderRecovery(UpdateReplicaUnderRecoveryRequestProto)
  71. returns(UpdateReplicaUnderRecoveryResponseProto);
  72. }