...
Code Block |
---|
AlterReplicaDirResponse => topics topics => [AlterReplicaDirResponseTopic] AlterReplicaDirResponseTopic => topic partitions topic => str partitions => [AlterReplicaDirResponsePartition] AlterReplicaDirResponsePartition => partition error_code partition => int32 error_code => int16 |
Create DescribeDirsRequest
Code Block |
---|
// log_dirs and topics are used to filter the results to include only the specified log_dir/topic. The result is the intersection of both filters. DescribeDirsRequest => log_dirs topics log_dirs => [str] // If this is empty, then all log directories will be queried topics => DescribeDirsRequestTopic // If this is empty, all topics will be queried DescribeDirsRequestTopic => topic partitions topic => str partitions => [int32] |
Create DescribeDirsResponse
Code Block |
---|
DescribeDirsResponse => log_dirs log_dirs => [DescribeDirsResponseDirMetadata] DescribeDirsResponseDirMetadata => error_code path topics error_code => int16 path => str topics => [DescribeDirsResponseTopic] DescribeDirsResponseTopic => topic partitions topic => str partitions => [DescribeDirsResponsePartition] DescribeDirsResponsePartition => partition size log_end_offsetlag is_temporary partition => int32 size => int64 log_end_offsetlag => int64 // Enable user to track movement progress by comparing LEO of the *.log and *.move If this is not a temporary replica, then lag = max(0, HW - LEO). Otherwise, lag = primary Replica's LEO - temporary Replica's LEO is_temporary => boolean // True if replica is *.move |
Broker Config
1) Add config intra.broker.throttled.rate
. This config specified the maximum rate in bytes-per-second that can be used to move replica between log directories. This config defaults to MAX_LONG. The intra.broker.throttled.rate is per-broker and the specified capacity is shared by all replica-movement-threads.
2) Add config num.replica.move.threads
. This config specified the number of threads in ReplicaMoveThreadPool
. The thread in this thread pool is responsible to moving replica between log directories. This config defaults to the number of log directories. Note that we typically expect 1-1 mapping between log directories and disks. Thus setting the config to number of log directories by default provides a reasonable way to keep the movement capacity in proportion with the number of disks.
...
Code Block |
---|
{ "version" : 1, "log_dirs" : [ { "is_live" : boolean, "path" : str, "partitions": [ { "topic" : str, "partition" : int32, "size" : int64, "log_end_offsetlag" : in64, "is_temporary" : boolean }, ... ] }, ... ] } |
...