*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> hash (3)              



NAME    [Toc]    [Back]

       hash - hash database access method

SYNOPSIS    [Toc]    [Back]

       #include <sys/types.h> #include <db.h>

DESCRIPTION    [Toc]    [Back]

       The  routine dbopen() is the library interface to database
       files. One of the supported file formats  is  hash  files.
       The  general description of the database access methods is
       in dbopen(3); this manual page describes  only  the  hashspecific

       The  hash data structure is an extensible, dynamic hashing

       The  access-method-specific  data  structure  provided  to
       dbopen() is defined in the <db.h> include file as follows:

       typedef struct
                    u_int bsize;
                    u_int ffactor;
                    u_int nelem;
                    u_int cachesize;
                    u_int32_t (*hash)(const void *, size_t);
                    int lorder;
               } HASHINFO;

       The elements of this structure are as follows: Defines the
       hash  table bucket size, and is, by default, 256 bytes. It
       may be preferable to increase the page size for disk-resident
  tables  and for tables with large data items.  Indicates
 a desired density within the hash table.  It  is  an
       approximation  of the number of keys allowed to accumulate
       in any one bucket, determining when the hash  table  grows
       or  shrinks.  The  default value is 8.  An estimate of the
       final size of the hash table. If not set or set  too  low,
       hash  tables  will  expand gracefully as keys are entered,
       although a slight performance degradation may be  noticed.
       The  default  value  is  1.   A suggested maximum size, in
       bytes, of the memory cache. This value is  only  advisory,
       and  the  access  method  will allocate more memory rather
       than fail.  A user-defined hash function. Because no  hash
       function  performs  equally well on all possible data, the
       user may find that the built-in hash function does  poorly
       on  a  particular  data set. User-specified hash functions
       must take two arguments (a pointer to a byte string and  a
       length)  and  return  a  32-bit quantity to be used as the
       hash value.  The byte order for  integers  in  the  stored
       database  metadata.  The number should represent the order
       as an integer; for example, big endian order would be  the
       number  4,321. If lorder  is 0 (no order is specified) the
       current host order is used. If the  file  already  exists,
       the  specified  value  is  ignored and the value specified
       when the tree was created is used.

       If the file already exists (and the O_TRUNC option is  not
       specified), the values specified for the parameters bsize,
       ffactor, lorder, and nelem  are  ignored  and  the  values
       specified when the tree was created are used.

       If  a hash function is specified, hash_open() will attempt
       to determine if the hash function specified is the same as
       the one with which the database was created, and will fail
       if it is not.

       Backward compatible interfaces to the  routines  described
       in dbm(3), and ndbm(3) are provided; however, these interfaces
 are not compatible with previous file formats.

RESTRICTIONS    [Toc]    [Back]

       Only big and little endian byte order is supported.

ERRORS    [Toc]    [Back]

       The hash access method routines may fail and set errno for
       any  of  the  errors  specified  for  the  library routine

SEE ALSO    [Toc]    [Back]

       btree(3), dbopen(3), mpool(3), recno(3)

       Dynamic Hash Tables, Per-Ake Larson, Communications of the
       ACM, April 1988.

       A  New  Hash  Package for UNIX, Margo Seltzer, USENIX Proceedings,
 Winter 1991.

[ Back ]
 Similar pages
Name OS Title
btree IRIX btree database access method
btree NetBSD btree database access method
btree FreeBSD btree database access method
btree Linux btree database access method
btree OpenBSD btree database access method
btree Tru64 btree database access method
recno FreeBSD record number database access method
recno IRIX record number database access method
recno Linux record number database access method
recno OpenBSD record number database access method
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service