Debugging the Storage Manager
[SSMDEBUG]

Collaboration diagram for Debugging the Storage Manager:


Detailed Description

The storage manager contains a few methods that are useful for debugging purposes. Some of these should be used for not other purpose, as they are not thread-safe, or might be very expensive.


Functions

static rc_t ss_m::dump_xcts (ostream &o)
 Print transaction information to an output stream.
static rc_t ss_m::checkpoint ()
 Take a checkpoint.
static rc_t ss_m::force_buffers (bool invalidate=false)
 Force the buffer pool to flush its pages to disk.
static rc_t ss_m::force_vol_hdr_buffers (const vid_t &vid)
 Force the buffer pool to flush the volume header page(s) to disk.
static rc_t ss_m::force_store_buffers (const stid_t &stid, bool invalidate)
 Force the buffer pool to flush to disk all pages for the given store.


Function Documentation

static rc_t ss_m::dump_xcts ( ostream &  o  )  [static, inherited]

Print transaction information to an output stream.

Parameters:
[in] o Stream to which to write the information.
This is for debugging only, and is not thread-safe.

static rc_t ss_m::checkpoint (  )  [static, inherited]

Take a checkpoint.

Note:
For debugging only!
Force the storage manager to take a checkpoint. Checkpoints are fuzzy : they can be taken while most other storage manager activity is happening, even though they have to be serialized with respect to each other, and with respect to a few other activities.

This is thread-safe.

static rc_t ss_m::force_buffers ( bool  invalidate = false  )  [static, inherited]

Force the buffer pool to flush its pages to disk.

Parameters:
[in] invalidate True means discard pages after flush.
Note:
For debugging only!
Attention:
Do not call force_buffers with anything pinned. You may cause latch-latch deadlocks, as this method has to scan the entire buffer pool and possibly EX-latch pages to prevent others from updating while it forces to disk. Since the page-order is essentially random, we cannot preclude latch-latch deadlocks with other threads.

static rc_t ss_m::force_vol_hdr_buffers ( const vid_t vid  )  [static, inherited]

Force the buffer pool to flush the volume header page(s) to disk.

Parameters:
[in] vid ID of the volume of interest
Note:
For debugging only!
Attention:
Do not call force_vol_hdr_buffers with anything pinned. You could cause latch-latch deadlocks, as this method has to scan the entire buffer pool and possibly EX-latch some pages. Since the page-order is essentially random, we cannot preclude latch-latch deadlocks with other threads.

static rc_t ss_m::force_store_buffers ( const stid_t stid,
bool  invalidate 
) [static, inherited]

Force the buffer pool to flush to disk all pages for the given store.

Parameters:
[in] stid Store whose pages are to be flushed.
[in] invalidate True means discard the pages after flushing.
Note:
For debugging only!
Attention:
Do not call force_store_buffers with anything pinned. You may cause latch-latch deadlocks, as this method has to scan the entire buffer pool and, if invalide==true, EX-latch pages to prevent others from updating while it forces to disk. Since the page-order is essentially random, we cannot preclude latch-latch deadlocks with other threads.


Generated on Wed Jul 7 17:22:40 2010 for Shore Storage Manager by  doxygen 1.4.7