git.samba.org
/
ira
/
wip.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
overallocate all records by 25%
[ira/wip.git]
/
lib
/
tdb
/
common
/
freelist.c
diff --git
a/lib/tdb/common/freelist.c
b/lib/tdb/common/freelist.c
index 2f2a4c379b0690399a9f4065b15960e667300bf0..3bc3965141b605ba5ad62f918e156e9deece9aed 100644
(file)
--- a/
lib/tdb/common/freelist.c
+++ b/
lib/tdb/common/freelist.c
@@
-284,6
+284,9
@@
tdb_off_t tdb_allocate(struct tdb_context *tdb, tdb_len_t length, struct list_st
if (tdb_lock(tdb, -1, F_WRLCK) == -1)
return 0;
+ /* over-allocate to reduce fragmentation */
+ length *= 1.25;
+
/* Extra bytes required for tailer */
length += sizeof(tdb_off_t);
length = TDB_ALIGN(length, TDB_ALIGNMENT);