mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
overallocate all records by 25%
This greatly reduces the fragmentation of databases where records tend to grow slowly by a small amount each time. The case where this is most seen is the ldb index records. Adding this overallocation reduced the size of the resulting database by more than 20x when running a test that adds 10k users.
This commit is contained in:
parent
a386173fa1
commit
a6cc04a200
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user