[Date Prev][Date Next] [Chronological] [Thread] [Top]

Question on Sleepycat docs re: pagesize cautions



Excerpting from the Berkeley DB reference manual section of Chapter 9 
titled "Berkeley DB Recoverability"[1]: 

  ... it is necessary to consider the underlying page size of the Berkeley
  DB databases. The Berkeley DB library performs all database writes using
  the page size specified by the application, and Berkeley DB assumes
  pages are written atomically....

and from "Selecting a page size"[2]

  ... The size of the pages used in the underlying database can be
  specified by calling the DB->set_pagesize method. The minimum page size
  is 512 bytes and the maximum page size is 64K bytes, and must be a power
  of two. If no page size is specified by the application, a page size is
  selected based on the underlying filesystem I/O block size. (A page size
  selected in this way has a lower limit of 512 bytes and an upper limit
  of 16K bytes.) ...

It does not appear to me that "set_pagesize" is one of the options that
can appear in DB_CONFIG (it's not a DB_ENV method) so I'm assuming that my
ext3 filesystem pagesize of 4096 will be used, and that the cautionary
statement "In the case of a hot backup, the utility you use to copy the
databases must read database pages atomically" found in "Database log file
archival"[3] does not need to concern me if I use cp to archive my 
database files? Or should I use "dd bs=4096" to be safe?

References:
  [1] http://www.sleepycat.com/docs/ref/transapp/reclimit.html
  [2] http://www.sleepycat.com/docs/ref/am_conf/pagesize.html
  [3] http://www.sleepycat.com/docs/ref/transapp/archival.html

Allan