@@ -31,10 +31,49 @@ class MetaDumper {
31
31
if (!iter) {
32
32
return Status::Error (" Init iterator failed" );
33
33
}
34
+
34
35
std::string prefix;
35
36
{
36
- LOG (INFO) << " Space info" ;
37
- prefix = " __spaces__" ;
37
+ LOG (INFO) << " ------------------------------------------\n\n " ;
38
+ LOG (INFO) << " Meta version:" ;
39
+ enum class MetaVersion {
40
+ UNKNOWN = 0 ,
41
+ V1 = 1 ,
42
+ V2 = 2 ,
43
+ V3 = 3 ,
44
+ };
45
+
46
+ prefix = " __meta_version__" ;
47
+ iter->Seek (rocksdb::Slice (prefix));
48
+ bool found = false ;
49
+ while (iter->Valid () && iter->key ().starts_with (prefix)) {
50
+ auto version = *reinterpret_cast <const MetaVersion*>(iter->value ().data ());
51
+ found = true ;
52
+ LOG (INFO) << " Meta version=" << static_cast <int >(version);
53
+ break ;
54
+ }
55
+
56
+ if (!found) {
57
+ prefix = MetaKeyUtils::hostPrefix ();
58
+ iter->Seek (rocksdb::Slice (prefix));
59
+ while (iter->Valid () && iter->key ().starts_with (prefix)) {
60
+ found = true ;
61
+ auto v1KeySize = prefix.size () + sizeof (int64_t );
62
+ auto version = (iter->key ().size () == v1KeySize) ? MetaVersion::V1 : MetaVersion::V3;
63
+ LOG (INFO) << " Meta version=" << static_cast <int >(version);
64
+ iter->Next ();
65
+ break ;
66
+ }
67
+
68
+ if (!found) {
69
+ LOG (INFO) << " Meta version= Unkown" ;
70
+ }
71
+ }
72
+ }
73
+ {
74
+ LOG (INFO) << " ------------------------------------------\n\n " ;
75
+ LOG (INFO) << " Space info:" ;
76
+ prefix = MetaKeyUtils::spacePrefix ();
38
77
iter->Seek (rocksdb::Slice (prefix));
39
78
while (iter->Valid () && iter->key ().starts_with (prefix)) {
40
79
auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
@@ -52,8 +91,9 @@ class MetaDumper {
52
91
}
53
92
}
54
93
{
55
- LOG (INFO) << " Partition info" ;
56
- prefix = " __parts__" ;
94
+ LOG (INFO) << " ------------------------------------------\n\n " ;
95
+ LOG (INFO) << " Partition info::" ;
96
+ prefix = MetaKeyUtils::partPrefix ();
57
97
iter->Seek (rocksdb::Slice (prefix));
58
98
while (iter->Valid () && iter->key ().starts_with (prefix)) {
59
99
auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
@@ -71,8 +111,21 @@ class MetaDumper {
71
111
}
72
112
}
73
113
{
74
- LOG (INFO) << " Host info" ;
75
- prefix = " __hosts__" ;
114
+ LOG (INFO) << " ------------------------------------------\n\n " ;
115
+ LOG (INFO) << " Registered machine info:" ;
116
+ prefix = MetaKeyUtils::machinePrefix ();
117
+ iter->Seek (rocksdb::Slice (prefix));
118
+ while (iter->Valid () && iter->key ().starts_with (prefix)) {
119
+ auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
120
+ auto machine = MetaKeyUtils::parseMachineKey (key);
121
+ LOG (INFO) << folly::sformat (" registered machine: {}" , machine.toString ());
122
+ iter->Next ();
123
+ }
124
+ }
125
+ {
126
+ LOG (INFO) << " ------------------------------------------\n\n " ;
127
+ LOG (INFO) << " Host info:" ;
128
+ prefix = MetaKeyUtils::hostPrefix ();
76
129
iter->Seek (rocksdb::Slice (prefix));
77
130
while (iter->Valid () && iter->key ().starts_with (prefix)) {
78
131
auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
@@ -87,8 +140,56 @@ class MetaDumper {
87
140
}
88
141
}
89
142
{
90
- LOG (INFO) << " Tag info" ;
91
- prefix = " __tags__" ;
143
+ LOG (INFO) << " ------------------------------------------\n\n " ;
144
+ LOG (INFO) << " Host directories info:" ;
145
+ prefix = MetaKeyUtils::hostDirPrefix ();
146
+ iter->Seek (rocksdb::Slice (prefix));
147
+ while (iter->Valid () && iter->key ().starts_with (prefix)) {
148
+ auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
149
+ auto val = folly::StringPiece (iter->value ().data (), iter->value ().size ());
150
+ auto addr = MetaKeyUtils::parseHostDirKey (key);
151
+ auto dir = MetaKeyUtils::parseHostDir (val);
152
+
153
+ std::string dataDirs = " " ;
154
+ for (auto d : dir.get_data ()) {
155
+ dataDirs += d + " , " ;
156
+ }
157
+ LOG (INFO) << folly::sformat (" host addr: {}, data dirs: {}, root dir: {}" ,
158
+ addr.toString (),
159
+ dataDirs,
160
+ dir.get_root ());
161
+ iter->Next ();
162
+ }
163
+ }
164
+ {
165
+ LOG (INFO) << " ------------------------------------------\n\n " ;
166
+ LOG (INFO) << " Disk partitions info:" ;
167
+ prefix = MetaKeyUtils::diskPartsPrefix ();
168
+ iter->Seek (rocksdb::Slice (prefix));
169
+ while (iter->Valid () && iter->key ().starts_with (prefix)) {
170
+ auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
171
+ auto val = folly::StringPiece (iter->value ().data (), iter->value ().size ());
172
+ auto addr = MetaKeyUtils::parseDiskPartsHost (key);
173
+ auto spaceId = MetaKeyUtils::parseDiskPartsSpace (key);
174
+ auto diskPath = MetaKeyUtils::parseDiskPartsPath (key);
175
+ auto parts = MetaKeyUtils::parseDiskPartsVal (val);
176
+
177
+ std::string partsStr = " " ;
178
+ for (auto p : parts.get_part_list ()) {
179
+ partsStr += (std::to_string (p) + " , " );
180
+ }
181
+ LOG (INFO) << folly::sformat (" host addr: {}, data dir: {}, space id: {}, parts: {}" ,
182
+ addr.toString (),
183
+ diskPath,
184
+ spaceId,
185
+ partsStr);
186
+ iter->Next ();
187
+ }
188
+ }
189
+ {
190
+ LOG (INFO) << " ------------------------------------------\n\n " ;
191
+ LOG (INFO) << " Tag info:" ;
192
+ prefix = MetaKeyUtils::schemaTagsPrefix ();
92
193
iter->Seek (rocksdb::Slice (prefix));
93
194
while (iter->Valid () && iter->key ().starts_with (prefix)) {
94
195
auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
@@ -100,8 +201,9 @@ class MetaDumper {
100
201
}
101
202
}
102
203
{
103
- LOG (INFO) << " Edge info" ;
104
- prefix = " __edges__" ;
204
+ LOG (INFO) << " ------------------------------------------\n\n " ;
205
+ LOG (INFO) << " Edge info:" ;
206
+ prefix = MetaKeyUtils::schemaEdgesPrefix ();
105
207
iter->Seek (rocksdb::Slice (prefix));
106
208
while (iter->Valid () && iter->key ().starts_with (prefix)) {
107
209
auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
@@ -113,8 +215,9 @@ class MetaDumper {
113
215
}
114
216
}
115
217
{
116
- LOG (INFO) << " Index info" ;
117
- prefix = " __indexes__" ;
218
+ LOG (INFO) << " ------------------------------------------\n\n " ;
219
+ LOG (INFO) << " Index info:" ;
220
+ prefix = MetaKeyUtils::indexPrefix ();
118
221
iter->Seek (rocksdb::Slice (prefix));
119
222
while (iter->Valid () && iter->key ().starts_with (prefix)) {
120
223
auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
@@ -125,8 +228,9 @@ class MetaDumper {
125
228
}
126
229
}
127
230
{
128
- LOG (INFO) << " Leader info" ;
129
- prefix = " __leader_terms__" ;
231
+ LOG (INFO) << " ------------------------------------------\n\n " ;
232
+ LOG (INFO) << " Leader info:" ;
233
+ prefix = MetaKeyUtils::leaderPrefix ();
130
234
HostAddr host;
131
235
TermID term;
132
236
nebula::cpp2::ErrorCode code;
@@ -152,8 +256,9 @@ class MetaDumper {
152
256
}
153
257
}
154
258
{
155
- LOG (INFO) << " Zone info" ;
156
- prefix = " __zones__" ;
259
+ LOG (INFO) << " ------------------------------------------\n\n " ;
260
+ LOG (INFO) << " Zone info:" ;
261
+ prefix = MetaKeyUtils::zonePrefix ();
157
262
iter->Seek (rocksdb::Slice (prefix));
158
263
while (iter->Valid () && iter->key ().starts_with (prefix)) {
159
264
auto key = folly::StringPiece (iter->key ().data (), iter->key ().size ());
0 commit comments