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
af3c3407
Commit
af3c3407
authored
Jul 02, 2014
by
Howard Chu
Browse files
Larger WBUF still better on large DB
parent
342cd72f
Changes
1
Hide whitespace changes
Inline
Side-by-side
libraries/liblmdb/mdb.c
View file @
af3c3407
...
...
@@ -8010,7 +8010,9 @@ mdb_put(MDB_txn *txn, MDB_dbi dbi,
return
mdb_cursor_put
(
&
mc
,
key
,
data
,
flags
);
}
#define WBUF (64*1024)
#ifndef MDB_WBUF
#define MDB_WBUF (1024*1024)
#endif
typedef
struct
mdb_copy
{
pthread_mutex_t
mc_mutex
[
2
];
...
...
@@ -8151,7 +8153,7 @@ mdb_env_cwalk(mdb_copy *my, pgno_t pg)
rc
=
mdb_page_get
(
txn
,
pg
,
&
omp
,
NULL
);
if
(
rc
)
goto
done
;
if
(
my
->
mc_wlen
[
toggle
]
>=
WBUF
)
{
if
(
my
->
mc_wlen
[
toggle
]
>=
MDB_
WBUF
)
{
rc
=
mdb_env_cthr_toggle
(
my
);
if
(
rc
)
goto
done
;
...
...
@@ -8204,7 +8206,7 @@ again:
ni
=
NODEPTR
(
mc
.
mc_pg
[
mc
.
mc_top
-
1
],
mc
.
mc_ki
[
mc
.
mc_top
-
1
]);
SETPGNO
(
ni
,
my
->
mc_next_pgno
);
}
if
(
my
->
mc_wlen
[
toggle
]
>=
WBUF
)
{
if
(
my
->
mc_wlen
[
toggle
]
>=
MDB_
WBUF
)
{
rc
=
mdb_env_cthr_toggle
(
my
);
if
(
rc
)
goto
done
;
...
...
@@ -8231,11 +8233,11 @@ mdb_env_copyfd2(MDB_env *env, HANDLE fd)
pthread_t
thr
;
int
rc
;
rc
=
posix_memalign
(
&
my
.
mc_free
,
env
->
me_psize
,
WBUF
*
2
);
rc
=
posix_memalign
(
&
my
.
mc_free
,
env
->
me_psize
,
MDB_
WBUF
*
2
);
if
(
rc
)
return
rc
;
my
.
mc_wbuf
[
0
]
=
my
.
mc_free
;
my
.
mc_wbuf
[
1
]
=
my
.
mc_free
+
WBUF
;
my
.
mc_wbuf
[
1
]
=
my
.
mc_free
+
MDB_
WBUF
;
pthread_mutex_init
(
&
my
.
mc_mutex
[
0
],
NULL
);
pthread_mutex_init
(
&
my
.
mc_mutex
[
1
],
NULL
);
my
.
mc_wlen
[
0
]
=
0
;
...
...
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