Berkeley DB: memp_trickle
Полезная информация

memp_trickle


#include <db.h>

int memp_trickle(DB_MPOOL *mp, int pct, int *nwrotep);

Description

The memp_trickle function ensures that at least pct percent of the pages in the shared memory pool are clean by writing dirty pages to their backing files. If the nwrotep argument is non-NULL, the number of pages that were written to reach the correct percentage is returned in the memory location it references.

The purpose of the memp_trickle function is to enable a memory pool manager to ensure that a page is always available for reading in new information without having to wait for a write.

The memp_trickle function returns the value of errno on failure, and 0 on success.

Errors

If a fatal error occurs in Berkeley DB, the memp_trickle function may fail and return DB_RUNRECOVERY, at which point all subsequent database calls will also return DB_RUNRECOVERY.

The memp_trickle function may fail and return errno for any of the errors specified for the following Berkeley DB and C library functions: DBmemp->pgin(3), DBmemp->pgout(3), abort(3), close(3), dbenv->db_paniccall(3), fcntl(3), fflush(3), fprintf(3), free(3), fstat(3), fsync(3), getenv(3), getpid(3), getuid(3), isdigit(3), log_compare, log_flush, lseek(3), malloc(3), memcmp(3), memcpy(3), memset(3), mmap(3), open(3), pread(3), pstat_getdynamic(3), pwrite(3), read(3), sigfillset(3), sigprocmask(3), stat(3), strerror(3), strlen(3), sysconf(3), time(3), unlink(3), vfprintf(3), vsnprintf(3), and write(3).

In addition, the memp_trickle function may fail and return errno for the following conditions:

EINVAL
An invalid flag value or parameter was specified.

See Also

memp_close, memp_fclose, memp_fget, memp_fopen, memp_fput, memp_fset, memp_fsync, memp_open, memp_register, memp_stat, memp_stat, memp_sync, memp_trickle and memp_unlink.