⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rep.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2001-2002 *	Sleepycat Software.  All rights reserved. */#ifndef _REP_H_#define	_REP_H_#define	REP_ALIVE	1	/* I am alive message. */#define	REP_ALIVE_REQ	2	/* Request for alive messages. */#define	REP_ALL_REQ	3	/* Request all log records greater than LSN. */#define	REP_ELECT	4	/* Indicates that all listeners should */				/* begin master election */#define	REP_FILE	6	/* Page of a database file. */#define	REP_FILE_REQ	7	/* Request for a database file. */#define	REP_LOG		8	/* Log record. */#define	REP_LOG_MORE	9	/* There are more log records to request. */#define	REP_LOG_REQ	10	/* Request for a log record. */#define	REP_MASTER_REQ	11	/* Who is the master */#define	REP_NEWCLIENT	12	/* Announces the presence of a new client. */#define	REP_NEWFILE	13	/* Announce a log file change. */#define	REP_NEWMASTER	14	/* Announces who the master is. */#define	REP_NEWSITE	15	/* Announces that a site has heard from a new				 * site; like NEWCLIENT, but indirect.  A				 * NEWCLIENT message comes directly from the new				 * client while a NEWSITE comes indirectly from				 * someone who heard about a NEWSITE.				 */#define	REP_PAGE	16	/* Database page. */#define	REP_PAGE_REQ	17	/* Request for a database page. */#define	REP_PLIST	18	/* Database page list. */#define	REP_PLIST_REQ	19	/* Request for a page list. */#define	REP_VERIFY	20	/* A log record for verification. */#define	REP_VERIFY_FAIL	21	/* The client is outdated. */#define	REP_VERIFY_REQ	22	/* Request for a log record to verify. */#define	REP_VOTE1	23	/* Send out your information for an election. */#define	REP_VOTE2	24	/* Send a "you are master" vote. *//* Used to consistently designate which messages ought to be received where. */#define	MASTER_ONLY(dbenv)	\	if (!F_ISSET(dbenv, DB_ENV_REP_MASTER)) return (EINVAL)#define	CLIENT_ONLY(dbenv)	\	if (!F_ISSET(dbenv, DB_ENV_REP_CLIENT)) return (EINVAL)#define	ANYSITE(dbenv)/* Shared replication structure. */typedef struct __rep {	/*	 * Due to alignment constraints on some architectures (e.g. HP-UX),	 * DB_MUTEXes must be the first element of shalloced structures,	 * and as a corollary there can be only one per structure.  Thus,	 * db_mutex_off points to a mutex in a separately-allocated chunk.	 */	DB_MUTEX	mutex;		/* Region lock. */	roff_t		db_mutex_off;	/* Client database mutex. */	u_int32_t	tally_off;	/* Offset of the tally region. */	int		eid;		/* Environment id. */	int		master_id;	/* ID of the master site. */	u_int32_t	gen;		/* Replication generation number */	int		asites;		/* Space allocated for sites. */	int		nsites;		/* Number of sites in group. */	int		priority;	/* My priority in an election. */	u_int32_t	gbytes;		/* Limit on data sent in single... */	u_int32_t	bytes;		/* __rep_process_message call. */#define	DB_REP_REQUEST_GAP	4#define	DB_REP_MAX_GAP		128	u_int32_t	request_gap;	/* # of records to receive before we					 * request a missing log record. */	u_int32_t	max_gap;	/* Maximum number of records before					 * requesting a missing log record. */	/* Vote tallying information. */	int		sites;		/* Sites heard from. */	int		winner;		/* Current winner. */	int		w_priority;	/* Winner priority. */	u_int32_t	w_gen;		/* Winner generation. */	DB_LSN		w_lsn;		/* Winner LSN. */	int		w_tiebreaker;	/* Winner tiebreaking value. */	int		votes;		/* Number of votes for this site. */	/* Statistics. */	DB_REP_STAT	stat;#define	REP_F_EPHASE1	0x01		/* In phase 1 of election. */#define	REP_F_EPHASE2	0x02		/* In phase 2 of election. */#define	REP_F_LOGSONLY	0x04		/* Log-site only; cannot be upgraded. */#define	REP_F_MASTER	0x08		/* Master replica. */#define	REP_F_RECOVER	0x10#define	REP_F_UPGRADE	0x20		/* Upgradeable replica. */#define	REP_ISCLIENT	(REP_F_UPGRADE | REP_F_LOGSONLY)	u_int32_t	flags;} REP;#define	IN_ELECTION(R)		F_ISSET((R), REP_F_EPHASE1 | REP_F_EPHASE2)#define	ELECTION_DONE(R)	F_CLR((R), REP_F_EPHASE1 | REP_F_EPHASE2)/* * Per-process replication structure. */struct __db_rep {	DB_MUTEX	*mutexp;	DB_MUTEX	*db_mutexp;	/* Mutex for bookkeeping database. */	DB		*rep_db;	/* Bookkeeping database. */	REP		*region;	/* In memory structure. */	int		(*rep_send)	/* Send function. */			    __P((DB_ENV *,			    const DBT *, const DBT *, int, u_int32_t));};/* * Control structure for replication communication infrastructure. * * Note that the version information should be at the beginning of the * structure, so that we can rearrange the rest of it while letting the * version checks continue to work.  DB_REPVERSION should be revved any time * the rest of the structure changes. */typedef struct __rep_control {#define	DB_REPVERSION	1	u_int32_t	rep_version;	/* Replication version number. */	u_int32_t	log_version;	/* Log version number. */	DB_LSN		lsn;		/* Log sequence number. */	u_int32_t	rectype;	/* Message type. */	u_int32_t	gen;		/* Generation number. */	u_int32_t	flags;		/* log_put flag value. */} REP_CONTROL;/* Election vote information. */typedef struct __rep_vote {	int	priority;		/* My site's priority. */	int	nsites;			/* Number of sites I've been in					 * communication with. */	int	tiebreaker;		/* Tie-breaking quasi-random int. */} REP_VOTE_INFO;/* * This structure takes care of representing a transaction. * It holds all the records, sorted by page number so that * we can obtain locks and apply updates in a deadlock free * order. */typedef struct __lsn_page {	DB_LSN		lsn;	u_int32_t	fid;	DB_LOCK_ILOCK	pgdesc;#define	LSN_PAGE_NOLOCK		0x0001	/* No lock necessary for log rec. */	u_int32_t	flags;} LSN_PAGE;typedef struct __txn_recs {	int		npages;	int		nalloc;	LSN_PAGE	*array;	u_int32_t	txnid;	u_int32_t	lockid;} TXN_RECS;typedef struct __lsn_collection {	int nlsns;	int nalloc;	DB_LSN *array;} LSN_COLLECTION;/* * This is used by the page-prep routines to do the lock_vec call to * apply the updates for a single transaction or a collection of * transactions. */typedef struct _linfo {	int		n;	DB_LOCKREQ	*reqs;	DBT		*objs;} linfo_t;#include "dbinc_auto/rep_ext.h"#endif	/* !_REP_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -