cubefs

Форк
0
/
const.go 
250 строк · 7.8 Кб
1
// Copyright 2018 The CubeFS Authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12
// implied. See the License for the specific language governing
13
// permissions and limitations under the License.
14

15
package metanode
16

17
import (
18
	"time"
19

20
	"github.com/cubefs/cubefs/proto"
21
	"github.com/cubefs/cubefs/util/errors"
22
)
23

24
// Type alias.
25
type (
26
	// Master -> MetaNode  create metaPartition request
27
	CreateMetaRangeReq = proto.CreateMetaPartitionRequest
28
	// MetaNode -> Master create metaPartition response
29
	CreateMetaRangeResp = proto.CreateMetaPartitionResponse
30
	// Client -> MetaNode create Inode request
31
	CreateInoReq = proto.CreateInodeRequest
32
	// MetaNode -> Client create Inode response
33
	CreateInoResp = proto.CreateInodeResponse
34
	// Client -> MetaNode create Link Request
35
	LinkInodeReq = proto.LinkInodeRequest
36
	// MetaNode -> Client create Link Response
37
	LinkInodeResp = proto.LinkInodeResponse
38
	// Client -> MetaNode delete Inode request struct
39
	UnlinkInoReq = proto.UnlinkInodeRequest
40
	// Client -> MetaNode delete Inode request struct
41
	BatchUnlinkInoReq = proto.BatchUnlinkInodeRequest
42
	// MetaNode -> Client delete Inode response
43
	UnlinkInoResp = proto.UnlinkInodeResponse
44
	// MetaNode -> Client delete batch Inode response
45
	BatchUnlinkInoResp = proto.BatchUnlinkInodeResponse
46
	// Client -> MetaNode create Dentry request struct
47
	CreateDentryReq = proto.CreateDentryRequest
48
	// Client -> MetaNode delete Dentry request
49
	DeleteDentryReq = proto.DeleteDentryRequest
50
	// Client -> MetaNode delete Dentry request
51
	BatchDeleteDentryReq = proto.BatchDeleteDentryRequest
52
	// MetaNode -> Client delete Dentry response
53
	DeleteDentryResp = proto.DeleteDentryResponse
54
	// MetaNode -> Client batch delete Dentry response
55
	BatchDeleteDentryResp = proto.BatchDeleteDentryResponse
56
	// Client -> MetaNode updateDentry request
57
	UpdateDentryReq = proto.UpdateDentryRequest
58
	// MetaNode -> Client updateDentry response
59
	UpdateDentryResp = proto.UpdateDentryResponse
60
	// Client -> MetaNode read dir request
61
	ReadDirReq      = proto.ReadDirRequest
62
	ReadDirOnlyReq  = proto.ReadDirOnlyRequest
63
	ReadDirLimitReq = proto.ReadDirLimitRequest
64
	// MetaNode -> Client read dir response
65
	ReadDirResp      = proto.ReadDirResponse
66
	ReadDirOnlyResp  = proto.ReadDirOnlyResponse
67
	ReadDirLimitResp = proto.ReadDirLimitResponse
68

69
	// MetaNode -> Client lookup
70
	LookupReq = proto.LookupRequest
71
	// Client -> MetaNode lookup
72
	LookupResp = proto.LookupResponse
73
	// Client -> MetaNode
74
	InodeGetReq = proto.InodeGetRequest
75
	// Tool -> MetaNode
76
	InodeGetSplitReq = proto.InodeGetSplitRequest
77
	// Client -> MetaNode
78
	InodeGetReqBatch = proto.BatchInodeGetRequest
79
	// Master -> MetaNode
80
	UpdatePartitionReq = proto.UpdateMetaPartitionRequest
81
	// MetaNode -> Master
82
	UpdatePartitionResp = proto.UpdateMetaPartitionResponse
83
	// Client -> MetaNode
84
	ExtentsTruncateReq = proto.TruncateRequest
85

86
	// Client -> MetaNode
87
	EvictInodeReq = proto.EvictInodeRequest
88
	// Client -> MetaNode
89
	BatchEvictInodeReq = proto.BatchEvictInodeRequest
90
	// Client -> MetaNode
91
	SetattrRequest = proto.SetAttrRequest
92

93
	// Client -> MetaNode
94
	GetUniqIDResp = proto.GetUniqIDResponse
95
)
96

97
// op code should be fixed, order change will cause raft fsm log apply fail
98
const (
99
	opFSMCreateInode             = 0
100
	opFSMUnlinkInode             = 1
101
	opFSMCreateDentry            = 2
102
	opFSMDeleteDentry            = 3
103
	opFSMDeletePartition         = 4
104
	opFSMUpdatePartition         = 5
105
	opFSMDecommissionPartition   = 6
106
	opFSMExtentsAdd              = 7
107
	opFSMStoreTick               = 8
108
	startStoreTick               = 9
109
	stopStoreTick                = 10
110
	opFSMUpdateDentry            = 11
111
	opFSMExtentTruncate          = 12
112
	opFSMCreateLinkInode         = 13
113
	opFSMEvictInode              = 14
114
	opFSMInternalDeleteInode     = 15
115
	opFSMSetAttr                 = 16
116
	opFSMInternalDelExtentFile   = 17
117
	opFSMInternalDelExtentCursor = 18
118
	opExtentFileSnapshot         = 19
119
	opFSMSetXAttr                = 20
120
	opFSMRemoveXAttr             = 21
121
	opFSMCreateMultipart         = 22
122
	opFSMRemoveMultipart         = 23
123
	opFSMAppendMultipart         = 24
124
	opFSMSyncCursor              = 25
125

126
	// supplement action
127
	opFSMInternalDeleteInodeBatch = 26
128
	opFSMDeleteDentryBatch        = 27
129
	opFSMUnlinkInodeBatch         = 28
130
	opFSMEvictInodeBatch          = 29
131

132
	opFSMExtentsAddWithCheck = 30
133

134
	opFSMUpdateSummaryInfo = 31
135
	opFSMUpdateXAttr       = 32
136
	opFSMObjExtentsAdd     = 33
137
	// opFSMExtentsDel
138
	opFSMExtentsEmpty = 34
139

140
	opFSMClearInodeCache = 35
141
	opFSMSentToChan      = 36
142

143
	// transaction
144
	opFSMSyncTxID           = 37
145
	opFSMTxCreateInode      = 38
146
	opFSMTxCreateInodeQuota = 39
147
	opFSMTxCreateDentry     = 40
148
	opFSMTxSetState         = 41
149
	opFSMTxCommit           = 42
150
	opFSMTxCommitRM         = 43
151
	opFSMTxRollbackRM       = 44
152
	opFSMTxRollback         = 45
153
	opFSMTxInit             = 46
154
	opFSMTxDelete           = 47
155
	opFSMTxDeleteDentry     = 48
156
	opFSMTxUnlinkInode      = 49
157
	opFSMTxUpdateDentry     = 50
158
	opFSMTxCreateLinkInode  = 51
159
	// transaction snapshot
160
	opFSMTxSnapshot         = 52
161
	opFSMTxRbInodeSnapshot  = 53
162
	opFSMTxRbDentrySnapshot = 54
163

164
	// quota
165
	opFSMCreateInodeQuota      = 55
166
	opFSMSetInodeQuotaBatch    = 56
167
	opFSMDeleteInodeQuotaBatch = 57
168

169
	opFSMSnapFormatVersion = 58
170
	opFSMApplyId           = 59
171
	opFSMTxId              = 60
172
	opFSMCursor            = 61
173

174
	// uniq checker
175
	opFSMUniqID              = 62
176
	opFSMUniqIDSnap          = 63
177
	opFSMUniqCheckerSnap     = 64
178
	opFSMUniqCheckerEvict    = 65
179
	opFSMUnlinkInodeOnce     = 66
180
	opFSMCreateLinkInodeOnce = 67
181

182
	opFSMVersionOp   = 68
183
	opFSMExtentSplit = 69
184
	opFSMDelVer      = 70
185

186
	opFSMSentToChanV1 = 71
187
	opFSMStoreTickV1  = 72
188

189
	opFSMVerListSnapShot = 73
190
)
191

192
var exporterKey string
193

194
var (
195
	ErrNoLeader   = errors.New("no leader")
196
	ErrNotALeader = errors.New("not a leader")
197
)
198

199
// Default configuration
200
const (
201
	defaultMetadataDir = "metadataDir"
202
	defaultRaftDir     = "raftDir"
203
	defaultAuthTimeout = 5 // seconds
204
)
205

206
// Configuration keys
207
const (
208
	cfgLocalIP                   = "localIP"
209
	cfgListen                    = "listen"
210
	cfgMetadataDir               = "metadataDir"
211
	cfgRaftDir                   = "raftDir"
212
	cfgMasterAddrs               = "masterAddrs" // will be deprecated
213
	cfgRaftHeartbeatPort         = "raftHeartbeatPort"
214
	cfgRaftReplicaPort           = "raftReplicaPort"
215
	cfgDeleteBatchCount          = "deleteBatchCount"
216
	cfgTotalMem                  = "totalMem"
217
	cfgMemRatio                  = "memRatio"
218
	cfgZoneName                  = "zoneName"
219
	cfgTickInterval              = "tickInterval"
220
	cfgRaftRecvBufSize           = "raftRecvBufSize"
221
	cfgSmuxPortShift             = "smuxPortShift"             // int
222
	cfgSmuxMaxConn               = "smuxMaxConn"               // int
223
	cfgSmuxStreamPerConn         = "smuxStreamPerConn"         // int
224
	cfgSmuxMaxBuffer             = "smuxMaxBuffer"             // int
225
	cfgRetainLogs                = "retainLogs"                // string, raft RetainLogs
226
	cfgRaftSyncSnapFormatVersion = "raftSyncSnapFormatVersion" // int, format version of snapshot that raft leader sent to follower
227
	cfgServiceIDKey              = "serviceIDKey"
228

229
	metaNodeDeleteBatchCountKey = "batchCount"
230
	configNameResolveInterval   = "nameResolveInterval" // int
231
)
232

233
const (
234
	// interval of persisting in-memory data
235
	intervalToPersistData = time.Minute * 5
236
	intervalToSyncCursor  = time.Minute * 1
237

238
	defaultDelExtentsCnt         = 100000
239
	defaultMaxQuotaGoroutine     = 5
240
	defaultQuotaSwitch           = true
241
	DefaultNameResolveInterval   = 1 // minutes
242
	DefaultRaftNumOfLogsToRetain = 20000 * 2
243
)
244

245
const (
246
	_  = iota
247
	KB = 1 << (10 * iota)
248
	MB
249
	GB
250
)
251

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.