Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Nadezhda Ivanova
OpenLDAP
Commits
8e1bbdf0
Commit
8e1bbdf0
authored
Feb 16, 2013
by
Hallvard Furuseth
Browse files
mdb_stat -ff[f]: show contiguous page spans.
parent
7aba5f5a
Changes
2
Hide whitespace changes
Inline
Side-by-side
libraries/liblmdb/mdb_stat.1
View file @
8e1bbdf0
...
...
@@ -9,7 +9,7 @@ mdb_stat \- LMDB environment status tool
[\c
.BR \-e ]
[\c
.BR \-f [ f ]]
.BR \-f [ f
[ f ]
]]
[\c
.BR \-n ]
[\c
...
...
@@ -25,8 +25,9 @@ utility displays the status of an LMDB environment.
Display information about the database environment.
.TP
.BR \-f
Display information about the environment freelist. If \fB\-ff\fP is given,
display the full list of page IDs in the freelist.
Display information about the environment freelist.
If \fB\-ff\fP is given, summarize each freelist entry.
If \fB\-fff\fP is given, display the full list of page IDs in the freelist.
.TP
.BR \-n
Display the status of an LMDB database which does not use subdirectories.
...
...
libraries/liblmdb/mdb_stat.c
View file @
8e1bbdf0
/* mdb_stat.c - memory-mapped database status tool */
/*
* Copyright 2011 Howard Chu, Symas Corp.
* Copyright 2011
-2013
Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
...
...
@@ -31,7 +31,7 @@ static void prstat(MDB_stat *ms)
static
void
usage
(
char
*
prog
)
{
fprintf
(
stderr
,
"usage: %s dbpath [-e] [-f[f]] [-n] [-a|-s subdb]
\n
"
,
prog
);
fprintf
(
stderr
,
"usage: %s dbpath [-e] [-f[f
[f]
]] [-n] [-a|-s subdb]
\n
"
,
prog
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -142,12 +142,28 @@ int main(int argc, char *argv[])
iptr
=
data
.
mv_data
;
pages
+=
*
iptr
;
if
(
freinfo
>
1
)
{
size_t
i
,
j
;
char
*
bad
=
""
;
size_t
pg
,
prev
;
ssize_t
i
,
j
,
span
=
0
;
j
=
*
iptr
++
;
printf
(
" Transaction %zu, %zu pages
\n
"
,
*
(
size_t
*
)
key
.
mv_data
,
j
);
for
(
i
=
0
;
i
<
j
;
i
++
)
printf
(
" %zu
\n
"
,
iptr
[
i
]);
for
(
i
=
j
,
prev
=
1
;
--
i
>=
0
;
)
{
pg
=
iptr
[
i
];
if
(
pg
<=
prev
)
bad
=
" [bad sequence]"
;
prev
=
pg
;
pg
+=
span
;
for
(;
i
>=
span
&&
iptr
[
i
-
span
]
==
pg
;
span
++
,
pg
++
)
;
}
printf
(
" Transaction %zu, %zd pages, maxspan %zd%s
\n
"
,
*
(
size_t
*
)
key
.
mv_data
,
j
,
span
,
bad
);
if
(
freinfo
>
2
)
{
for
(
--
j
;
j
>=
0
;
)
{
pg
=
iptr
[
j
];
for
(
span
=
1
;
--
j
>=
0
&&
iptr
[
j
]
==
pg
+
span
;
span
++
)
;
printf
(
span
>
1
?
" %9zu[%zd]
\n
"
:
" %9zu
\n
"
,
pg
,
span
);
}
}
}
}
mdb_cursor_close
(
cursor
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment