Skip to content

Commit 600b34f

Browse files
fix(learn): avoid learn use DEFAULT_POOL (#2126)
FLAGS_max_copy_rate_megabytes_per_disk will use `sleep_for` function to block THREAD_POOL_DEFAULT. It's cause replica server cannot deal `remote command`. This modify is same as FLAGS_max_send_rate_megabytes_per_disk, only use THREAD_POOL_BLOCK_SERVICE to sleep.
1 parent 034d79a commit 600b34f

59 files changed

Lines changed: 81 additions & 71 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/block_service/block_service.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,8 @@ namespace dsn {
4343
namespace dist {
4444
namespace block_service {
4545

46-
DEFINE_THREAD_POOL_CODE(THREAD_POOL_BLOCK_SERVICE)
47-
4846
class block_file;
49-
typedef dsn::ref_ptr<block_file> block_file_ptr;
47+
using block_file_ptr = dsn::ref_ptr<block_file>;
5048

5149
/**
5250
* @brief The ls_request struct, use to list all the files and directories under the dir_name

src/block_service/hdfs/hdfs_service.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,12 @@
4141
#include "utils/fmt_logging.h"
4242
#include "utils/safe_strerror_posix.h"
4343
#include "utils/strings.h"
44+
#include "utils/threadpool_code.h"
4445
#include "utils/utils.h"
4546

4647
DSN_DEFINE_uint64(replication,
4748
hdfs_read_batch_size_bytes,
48-
64 << 20,
49+
64U << 20U,
4950
"hdfs read batch size, the default value is 64MB");
5051
DSN_TAG_VARIABLE(hdfs_read_batch_size_bytes, FT_MUTABLE);
5152

@@ -57,7 +58,7 @@ DSN_TAG_VARIABLE(hdfs_write_limit_rate_mb_per_sec, FT_MUTABLE);
5758

5859
DSN_DEFINE_uint64(replication,
5960
hdfs_write_batch_size_bytes,
60-
64 << 20,
61+
64U << 20U,
6162
"hdfs write batch size, the default value is 64MB");
6263
DSN_TAG_VARIABLE(hdfs_write_batch_size_bytes, FT_MUTABLE);
6364

src/block_service/local/local_service.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
#include <rocksdb/env.h>
1919
#include <memory>
2020
#include <set>
21+
#include <string_view>
2122
#include <type_traits>
2223
#include <utility>
2324

24-
#include <string_view>
2525
#include "local_service.h"
2626
#include "nlohmann/json.hpp"
2727
#include "rocksdb/slice.h"
@@ -37,6 +37,7 @@
3737
#include "utils/fmt_logging.h"
3838
#include "utils/load_dump_object.h"
3939
#include "utils/strings.h"
40+
#include "utils/threadpool_code.h"
4041

4142
DSN_DECLARE_bool(enable_direct_io);
4243

src/nfs/nfs_code_definition.h

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,20 @@
2424
* THE SOFTWARE.
2525
*/
2626

27+
#include "task/task_code.h"
2728
#pragma once
2829

29-
namespace dsn {
30-
namespace service {
30+
namespace dsn::service {
3131
// define RPC task code for service 'nfs'
32-
DEFINE_TASK_CODE_RPC(RPC_NFS_COPY, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_DEFAULT)
33-
DEFINE_TASK_CODE_RPC(RPC_NFS_GET_FILE_SIZE, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_DEFAULT)
32+
DEFINE_TASK_CODE_RPC(RPC_NFS_COPY, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_BLOCK_SERVICE)
33+
DEFINE_TASK_CODE_RPC(RPC_NFS_GET_FILE_SIZE, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_BLOCK_SERVICE)
3434
// test timer task code
3535
DEFINE_TASK_CODE(LPC_NFS_REQUEST_TIMER, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_DEFAULT)
3636

37-
DEFINE_TASK_CODE_AIO(LPC_NFS_READ, TASK_PRIORITY_COMMON, THREAD_POOL_DEFAULT)
38-
DEFINE_TASK_CODE(LPC_NFS_FILE_CLOSE_TIMER, TASK_PRIORITY_COMMON, THREAD_POOL_DEFAULT)
37+
DEFINE_TASK_CODE_AIO(LPC_NFS_READ, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_BLOCK_SERVICE)
38+
DEFINE_TASK_CODE(LPC_NFS_FILE_CLOSE_TIMER, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_DEFAULT)
3939

40-
DEFINE_TASK_CODE_AIO(LPC_NFS_WRITE, TASK_PRIORITY_COMMON, THREAD_POOL_DEFAULT)
40+
DEFINE_TASK_CODE_AIO(LPC_NFS_WRITE, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_BLOCK_SERVICE)
4141

42-
DEFINE_TASK_CODE_AIO(LPC_NFS_COPY_FILE, TASK_PRIORITY_COMMON, THREAD_POOL_DEFAULT)
43-
} // namespace service
44-
} // namespace dsn
42+
DEFINE_TASK_CODE_AIO(LPC_NFS_COPY_FILE, TASK_PRIORITY_COMMON, ::dsn::THREAD_POOL_BLOCK_SERVICE)
43+
} // namespace dsn::service

src/nfs/test/config.ini

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ count = 1
3030
type = dsn.app.mimic
3131
arguments =
3232
ports = 20101
33-
pools = THREAD_POOL_DEFAULT
33+
pools = THREAD_POOL_BLOCK_SERVICE, THREAD_POOL_DEFAULT
3434
run = true
3535
count = 1
3636

@@ -40,3 +40,13 @@ tool = nativerun
4040
pause_on_start = false
4141
logging_start_level = LOG_LEVEL_DEBUG
4242
logging_factory_name = dsn::tools::simple_logger
43+
44+
[threadpool..default]
45+
worker_count = 2
46+
worker_priority = THREAD_xPRIORITY_LOWEST
47+
48+
[threadpool.THREAD_POOL_BLOCK_SERVICE]
49+
name = block_service
50+
partitioned = false
51+
worker_priority = THREAD_xPRIORITY_NORMAL
52+
worker_count = 3

src/replica/storage/simple_kv/test/case-000.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ arguments =
3636
ports = 34601
3737
run = true
3838
count = 1
39-
pools = THREAD_POOL_DEFAULT,THREAD_POOL_META_SERVER,THREAD_POOL_FD,THREAD_POOL_META_STATE
39+
pools = THREAD_POOL_DEFAULT,THREAD_POOL_META_SERVER,THREAD_POOL_FD,THREAD_POOL_META_STATE,THREAD_POOL_BLOCK_SERVICE
4040

4141
[apps.r]
4242
type = replica
@@ -46,7 +46,7 @@ arguments =
4646
ports = 34801
4747
run = true
4848
count = 3
49-
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG
49+
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG,THREAD_POOL_BLOCK_SERVICE
5050

5151
[apps.c]
5252
type = client

src/replica/storage/simple_kv/test/case-001.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ arguments =
4646
ports = 34801
4747
run = true
4848
count = 3
49-
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG
49+
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG,THREAD_POOL_BLOCK_SERVICE
5050

5151
[apps.c]
5252
type = client

src/replica/storage/simple_kv/test/case-002.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ arguments =
4646
ports = 34801
4747
run = true
4848
count = 3
49-
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG
49+
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG,THREAD_POOL_BLOCK_SERVICE
5050

5151
[apps.c]
5252
type = client

src/replica/storage/simple_kv/test/case-003.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ arguments =
4545
ports = 34801
4646
run = true
4747
count = 3
48-
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG
48+
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG,THREAD_POOL_BLOCK_SERVICE
4949

5050
[apps.c]
5151
type = client

src/replica/storage/simple_kv/test/case-004.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ arguments =
4545
ports = 34801
4646
run = true
4747
count = 3
48-
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG
48+
pools = THREAD_POOL_DEFAULT,THREAD_POOL_REPLICATION_LONG,THREAD_POOL_REPLICATION,THREAD_POOL_FD,THREAD_POOL_LOCAL_APP,THREAD_POOL_PLOG,THREAD_POOL_BLOCK_SERVICE
4949

5050
[apps.c]
5151
type = client

0 commit comments

Comments
 (0)