Skip to content

Commit 440010e

Browse files
committed
你的提交信息
1 parent 586cff9 commit 440010e

19 files changed

+4272
-1578
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
title: Kmesh BPF Map 批量删除
3+
authors:
4+
- "@bitcoffeeiux"
5+
reviewers:
6+
- "@robot"
7+
- TBD
8+
approvers:
9+
- "@robot"
10+
- TBD
11+
creation-date: 2024-01-15
12+
---
13+
14+
# Kmesh BPF Map 批量删除
15+
16+
## 摘要
17+
18+
本文档描述了 Kmesh 中 BPF Map 批量删除的设计方案,用于提高大规模数据删除的效率。
19+
20+
## 背景
21+
22+
在服务网格场景中,需要定期清理或批量删除大量 BPF Map 数据。批量删除机制可以显著提高删除效率,减少系统开销。
23+
24+
## 目标
25+
26+
1. 实现批量删除功能
27+
2. 提高删除性能
28+
3. 保证数据一致性
29+
4. 支持错误恢复
30+
31+
## 设计细节
32+
33+
### 架构设计
34+
35+
批量删除系统包含以下组件:
36+
37+
1. 删除管理器
38+
2. 事务控制器
39+
3. 错误处理器
40+
4. 性能监控器
41+
42+
### 数据结构
43+
44+
```c
45+
struct BatchDeleteConfig {
46+
__u32 batch_size; // 批量大小
47+
__u32 timeout; // 超时时间
48+
__u32 retry_count; // 重试次数
49+
__u32 flags; // 删除标志
50+
};
51+
52+
struct BatchDeleteStats {
53+
__u64 total_deletes; // 总删除数
54+
__u64 success_count; // 成功数量
55+
__u64 failure_count; // 失败数量
56+
__u64 retry_count; // 重试次数
57+
};
58+
59+
struct BatchDelete {
60+
__u32 map_id; // Map ID
61+
void *keys; // 键数组
62+
__u32 count; // 删除数量
63+
__u32 flags; // 删除标志
64+
};
65+
```
66+
67+
### 删除接口
68+
69+
```go
70+
type BatchDeleter interface {
71+
BatchDelete(deletes []BatchDelete, config *BatchDeleteConfig) error
72+
GetDeleteStats() (*BatchDeleteStats, error)
73+
CancelDelete(batchID string) error
74+
GetDeleteStatus(batchID string) (string, error)
75+
}
76+
```
77+
78+
## 使用示例
79+
80+
### 配置批量删除
81+
82+
```yaml
83+
batch_delete_config:
84+
batch_size: 1000
85+
timeout: 30s
86+
retry_count: 3
87+
flags:
88+
- ATOMIC
89+
- ASYNC
90+
```
91+
92+
### 执行删除
93+
94+
```bash
95+
# 执行批量删除
96+
kmesh map batch-delete --config=config.yaml --input=keys.json
97+
98+
# 查看删除状态
99+
kmesh map delete-status <batch-id>
100+
101+
# 取消删除
102+
kmesh map delete-cancel <batch-id>
103+
```
104+
105+
## 注意事项
106+
107+
1. 数据一致性
108+
2. 性能影响
109+
3. 错误处理
110+
111+
## 未来工作
112+
113+
1. 支持更多删除模式
114+
2. 优化性能
115+
3. 增强监控能力
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
title: Kmesh BPF Map 批量查询
3+
authors:
4+
- "@bitcoffeeiux"
5+
reviewers:
6+
- "@robot"
7+
- TBD
8+
approvers:
9+
- "@robot"
10+
- TBD
11+
creation-date: 2024-01-15
12+
---
13+
14+
# Kmesh BPF Map 批量查询
15+
16+
## 摘要
17+
18+
本文档描述了 Kmesh 中 BPF Map 批量查询的设计方案,用于提高大规模数据查询的效率。
19+
20+
## 背景
21+
22+
在服务网格场景中,经常需要同时查询大量 BPF Map 数据。批量查询机制可以显著提高查询效率,减少系统开销。
23+
24+
## 目标
25+
26+
1. 实现批量查询功能
27+
2. 提高查询性能
28+
3. 优化内存使用
29+
4. 支持并发查询
30+
31+
## 设计细节
32+
33+
### 架构设计
34+
35+
批量查询系统包含以下组件:
36+
37+
1. 查询管理器
38+
2. 缓存系统
39+
3. 并发控制器
40+
4. 性能监控器
41+
42+
### 数据结构
43+
44+
```c
45+
struct BatchLookupConfig {
46+
__u32 batch_size; // 批量大小
47+
__u32 timeout; // 超时时间
48+
__u32 max_concurrent; // 最大并发数
49+
__u32 flags; // 查询标志
50+
};
51+
52+
struct BatchLookupStats {
53+
__u64 total_lookups; // 总查询数
54+
__u64 cache_hits; // 缓存命中数
55+
__u64 cache_misses; // 缓存未命中数
56+
__u64 error_count; // 错误数量
57+
};
58+
59+
struct BatchLookup {
60+
__u32 map_id; // Map ID
61+
void *keys; // 键数组
62+
void *values; // 值数组缓冲区
63+
__u32 count; // 查询数量
64+
__u32 flags; // 查询标志
65+
};
66+
```
67+
68+
### 查询接口
69+
70+
```go
71+
type BatchLookupManager interface {
72+
BatchLookup(lookups []BatchLookup, config *BatchLookupConfig) error
73+
GetLookupStats() (*BatchLookupStats, error)
74+
CancelLookup(batchID string) error
75+
GetLookupStatus(batchID string) (string, error)
76+
}
77+
```
78+
79+
## 使用示例
80+
81+
### 配置批量查询
82+
83+
```yaml
84+
batch_lookup_config:
85+
batch_size: 1000
86+
timeout: 10s
87+
max_concurrent: 4
88+
flags:
89+
- USE_CACHE
90+
- ASYNC
91+
```
92+
93+
### 执行查询
94+
95+
```bash
96+
# 执行批量查询
97+
kmesh map batch-lookup --config=config.yaml --input=keys.json
98+
99+
# 查看查询状态
100+
kmesh map lookup-status <batch-id>
101+
102+
# 取消查询
103+
kmesh map lookup-cancel <batch-id>
104+
```
105+
106+
## 注意事项
107+
108+
1. 内存使用控制
109+
2. 缓存管理
110+
3. 性能监控
111+
112+
## 未来工作
113+
114+
1. 支持更多查询模式
115+
2. 优化缓存策略
116+
3. 增强监控能力
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
title: Kmesh BPF Map 批量更新
3+
authors:
4+
- "@bitcoffeeiux"
5+
reviewers:
6+
- "@robot"
7+
- TBD
8+
approvers:
9+
- "@robot"
10+
- TBD
11+
creation-date: 2024-01-15
12+
---
13+
14+
# Kmesh BPF Map 批量更新
15+
16+
## 摘要
17+
18+
本文档描述了 Kmesh 中 BPF Map 批量更新的设计方案,用于提高大规模数据更新的效率。
19+
20+
## 背景
21+
22+
在大规模服务网格场景中,需要频繁更新大量 BPF Map 数据。批量更新机制可以显著提高更新效率,减少系统开销。
23+
24+
## 目标
25+
26+
1. 实现批量更新功能
27+
2. 提高更新性能
28+
3. 保证数据一致性
29+
4. 支持错误恢复
30+
31+
## 设计细节
32+
33+
### 架构设计
34+
35+
批量更新系统包含以下组件:
36+
37+
1. 批处理管理器
38+
2. 事务控制器
39+
3. 错误处理器
40+
4. 性能监控器
41+
42+
### 数据结构
43+
44+
```c
45+
struct BatchUpdateConfig {
46+
__u32 batch_size; // 批量大小
47+
__u32 timeout; // 超时时间
48+
__u32 retry_count; // 重试次数
49+
__u32 flags; // 更新标志
50+
};
51+
52+
struct BatchUpdateStats {
53+
__u64 total_updates; // 总更新数
54+
__u64 success_count; // 成功数量
55+
__u64 failure_count; // 失败数量
56+
__u64 retry_count; // 重试次数
57+
};
58+
59+
struct BatchUpdate {
60+
__u32 map_id; // Map ID
61+
void *keys; // 键数组
62+
void *values; // 值数组
63+
__u32 count; // 更新数量
64+
__u32 flags; // 更新标志
65+
};
66+
```
67+
68+
### 更新接口
69+
70+
```go
71+
type BatchUpdater interface {
72+
BatchUpdate(updates []BatchUpdate, config *BatchUpdateConfig) error
73+
GetUpdateStats() (*BatchUpdateStats, error)
74+
CancelUpdate(batchID string) error
75+
GetUpdateStatus(batchID string) (string, error)
76+
}
77+
```
78+
79+
## 使用示例
80+
81+
### 配置批量更新
82+
83+
```yaml
84+
batch_update_config:
85+
batch_size: 1000
86+
timeout: 30s
87+
retry_count: 3
88+
flags:
89+
- ATOMIC
90+
- ASYNC
91+
```
92+
93+
### 执行更新
94+
95+
```bash
96+
# 执行批量更新
97+
kmesh map batch-update --config=config.yaml --input=updates.json
98+
99+
# 查看更新状态
100+
kmesh map batch-status <batch-id>
101+
102+
# 取消更新
103+
kmesh map batch-cancel <batch-id>
104+
```
105+
106+
## 注意事项
107+
108+
1. 内存使用控制
109+
2. 事务一致性
110+
3. 性能监控
111+
112+
## 未来工作
113+
114+
1. 支持更多更新模式
115+
2. 优化内存使用
116+
3. 增强监控能力

0 commit comments

Comments
 (0)