• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/db-4.7.25.NC/rep/

Lines Matching defs:rep

527 	REP *rep;
532 rep = db_rep->region;
551 if (F_ISSET(rep, REP_F_MASTER))
588 REP *rep;
599 rep = db_rep->region;
607 use_bulk = FLD_ISSET(rep->config, REP_C_BULK);
653 repth.gbytes = rep->gbytes;
654 repth.bytes = rep->bytes;
706 if (F_ISSET(rep, REP_F_MASTER)) {
836 REP *rep;
843 rep = db_rep->region;
849 if (!F_ISSET(rep, REP_F_RECOVER_UPDATE) || IN_ELECTION(rep)) {
853 F_CLR(rep, REP_F_RECOVER_UPDATE);
858 F_SET(rep, REP_F_RECOVER_PAGE);
872 if ((ret = __rep_lockout_api(env, rep)) != 0)
883 MUTEX_LOCK(env, rep->mtx_clientdb);
885 lp->wait_ts = rep->request_gap;
893 MUTEX_UNLOCK(env, rep->mtx_clientdb);
913 rep->first_lsn = rup->first_lsn;
914 rep->first_vers = rup->first_vers;
915 rep->last_lsn = rp->lsn;
916 rep->nfiles = rup->num_files;
921 (env, "Update setup for %d files.", rep->nfiles));
924 (u_long)rep->first_lsn.file, (u_long)rep->first_lsn.offset));
927 (u_long)rep->last_lsn.file, (u_long)rep->last_lsn.offset));
929 if (rep->nfiles > 0) {
930 rep->infoversion = rp->rep_version;
931 rep->originfolen = rep->infolen =
933 if ((ret = __os_calloc(env, 1, rep->infolen,
934 &rep->originfo)) != 0)
936 memcpy(rep->originfo, next, rep->infolen);
937 rep->nextinfo = rep->originfo;
947 rep->curfile = 0;
948 if ((ret = __rep_nextfile(env, eid, rep)) != 0)
961 if (rep->originfo != NULL) {
962 __os_free(env, rep->originfo);
963 rep->originfo = NULL;
968 F_CLR(rep, REP_F_RECOVER_PAGE | REP_F_READY_API |
970 F_SET(rep, REP_F_RECOVER_UPDATE);
1328 REP *rep;
1335 rep = db_rep->region;
1337 if (!F_ISSET(rep, REP_F_RECOVER_PAGE))
1346 if (LOG_COMPARE(&rp->lsn, &rep->first_lsn) < 0) {
1350 (u_long)rep->first_lsn.file,
1351 (u_long)rep->first_lsn.offset));
1357 MUTEX_LOCK(env, rep->mtx_clientdb);
1377 if (msgfp->filenum != rep->curfile) {
1380 msgfp->filenum, rep->curfile));
1406 ret = __db_put(rep->file_dbp, ip, NULL, &key, &data, DB_NOOVERWRITE);
1411 STAT(rep->stat.st_pg_duplicated++);
1423 ret = __rep_write_page(env, ip, rep, msgfp);
1434 (void)__db_del(rep->file_dbp, NULL, NULL, &key, 0);
1437 STAT(rep->stat.st_pg_records++);
1438 rep->npages++;
1444 if (LOG_COMPARE(&rp->lsn, &rep->last_lsn) > 0)
1445 rep->last_lsn = rp->lsn;
1453 ret = __rep_filedone(env, ip, eid, rep, msgfp, rp->rectype);
1456 MUTEX_UNLOCK(env, rep->mtx_clientdb);
1479 REP *rep;
1485 rep = db_rep->region;
1487 if (!F_ISSET(rep, REP_F_RECOVER_PAGE))
1501 MUTEX_LOCK(env, rep->mtx_clientdb);
1509 if (msgfp->filenum != rep->curfile) {
1512 msgfp->filenum, rep->curfile));
1515 rfp = rep->curinfo;
1526 (u_long)msgfp->pgno, (u_long)rep->ready_pg,
1527 (u_long)rfp->max_pgno, rep->npages));
1530 if (msgfp->pgno >= rep->ready_pg) {
1531 rep->ready_pg = msgfp->pgno + 1;
1532 rep->npages = rep->ready_pg;
1536 (u_long)msgfp->pgno, (u_long)rep->ready_pg,
1537 (u_long)rfp->max_pgno, rep->npages));
1547 ret = __rep_filedone(env, ip, eid, rep, msgfp, REP_PAGE_FAIL);
1550 MUTEX_UNLOCK(env, rep->mtx_clientdb);
1560 __rep_write_page(env, ip, rep, msgfp)
1563 REP *rep;
1585 rfp = rep->curinfo;
1586 if (rep->file_mpf == NULL) {
1602 __rep_mpf_open(env, &rep->file_mpf, rep->curinfo,
1608 * use the __qam_fget/put calls. We need to use rep->queue_dbc for
1616 ret = __qam_fget(rep->queue_dbc, &msgfp->pgno,
1625 ret = __memp_fget(rep->file_mpf, &msgfp->pgno, ip, NULL,
1655 mpf = rep->file_mpf;
1668 ret = __qam_fput(rep->queue_dbc,
1669 msgfp->pgno, dst, rep->queue_dbc->priority);
1672 ret = __memp_fput(rep->file_mpf,
1673 ip, dst, rep->file_dbp->priority);
1684 __rep_page_gap(env, rep, msgfp, type)
1686 REP *rep;
1710 * We already hold both the db mutex and rep mutex.
1712 rfp = rep->curinfo;
1738 if (msgfp->pgno < rep->ready_pg) {
1741 (u_long)msgfp->pgno, (u_long)rep->ready_pg,
1742 (u_long)rep->waiting_pg));
1754 (u_long)msgfp->pgno, (u_long)rfp->max_pgno, (u_long)rep->ready_pg,
1755 (u_long)rep->waiting_pg, (u_long)rep->max_wait_pg));
1756 if (msgfp->pgno > rep->ready_pg) {
1757 if (rep->waiting_pg == PGNO_INVALID ||
1758 msgfp->pgno < rep->waiting_pg)
1759 rep->waiting_pg = msgfp->pgno;
1764 rep->ready_pg++;
1766 if (rep->ready_pg == rep->waiting_pg) {
1772 lp->wait_ts = rep->request_gap;
1773 rep->max_wait_pg = PGNO_INVALID;
1781 if ((ret = __db_cursor(rep->file_dbp, ip, NULL,
1788 recno = (db_recno_t)rep->waiting_pg + 1;
1801 (u_long)rep->ready_pg, (u_long)rep->waiting_pg));
1803 while (ret == 0 && rep->ready_pg == rep->waiting_pg) {
1804 rep->ready_pg++;
1811 rep->waiting_pg = PGNO_INVALID;
1814 (u_long)rep->ready_pg,
1815 (u_long)rep->waiting_pg));
1823 rep->waiting_pg = *(db_pgno_t *)key.data;
1824 rep->waiting_pg--;
1827 (u_long)rep->ready_pg, (u_long)rep->waiting_pg));
1836 if (rep->ready_pg > rfp->max_pgno)
1842 if ((rep->waiting_pg != PGNO_INVALID &&
1843 rep->ready_pg != rep->waiting_pg) || type == REP_PAGE_MORE) {
1852 if ((__rep_check_doreq(env, rep) || type == REP_PAGE_MORE) &&
1853 ((ret = __rep_pggap_req(env, rep, rfp,
1857 lp->wait_ts = rep->request_gap;
1858 rep->max_wait_pg = PGNO_INVALID;
1878 __rep_init_cleanup(env, rep, force)
1880 REP *rep;
1896 if (rep->file_mpf != NULL) {
1897 ret = __memp_fclose(rep->file_mpf, 0);
1898 rep->file_mpf = NULL;
1900 if (rep->file_dbp != NULL) {
1901 t_ret = __db_close(rep->file_dbp, NULL, DB_NOSYNC);
1902 rep->file_dbp = NULL;
1906 if (force && rep->queue_dbc != NULL) {
1907 queue_dbp = rep->queue_dbc->dbp;
1908 if ((t_ret = __dbc_close(rep->queue_dbc)) != 0 && ret == 0)
1910 rep->queue_dbc = NULL;
1915 if (rep->curinfo != NULL) {
1916 __os_free(env, rep->curinfo);
1917 rep->curinfo = NULL;
1919 if (F_ISSET(rep, REP_F_INTERNAL_INIT_MASK) && force) {
1953 rep, 1, DB_LOGVERSION, &lp->ready_lsn)) != 0) {
1964 if ((t_ret = __rep_remove_by_list(env, rep->infoversion,
1965 rep->originfo, rep->originfolen, rep->nfiles)) != 0) {
1977 if (rep->originfo != NULL) {
1978 __os_free(env, rep->originfo);
1979 rep->originfo = NULL;
1996 __rep_filedone(env, ip, eid, rep, msgfp, type)
2000 REP *rep;
2011 ret = __rep_page_gap(env, rep, msgfp, type);
2019 rfp = rep->curinfo;
2026 (u_long)rep->npages, (u_long)rfp->max_pgno + 1));
2027 if (rep->npages <= rfp->max_pgno)
2036 ((ret = __rep_queue_filedone(env, ip, rep, rfp)) !=
2042 if ((ret = __rep_init_cleanup(env, rep, 0)) != 0)
2045 rep->curfile++;
2046 ret = __rep_nextfile(env, eid, rep);
2059 __rep_nextfile(env, eid, rep)
2062 REP *rep;
2075 if (rep->master_id != DB_EID_INVALID)
2076 eid = rep->master_id;
2077 if (rep->curfile == rep->nfiles) {
2079 "NEXTFILE: have %d files. RECOVER_LOG now", rep->nfiles));
2093 F_CLR(rep, REP_F_RECOVER_PAGE);
2094 F_SET(rep, REP_F_RECOVER_LOG);
2096 lr_args.endlsn = rep->last_lsn;
2102 if ((ret = __rep_log_setup(env, rep,
2103 rep->first_lsn.file, rep->first_vers, NULL)) != 0)
2107 (u_long)rep->first_lsn.file, (u_long)rep->first_lsn.offset,
2108 (u_long)rep->last_lsn.file, (u_long)rep->last_lsn.offset));
2110 REP_LOG_REQ, &rep->first_lsn, &dbt,
2119 rep->finfo = rep->nextinfo;
2120 if ((ret = __rep_fileinfo_unmarshal(env, rep->infoversion,
2121 &rep->curinfo, rep->finfo, rep->infolen, &rep->nextinfo)) != 0) {
2126 DB_ASSERT(env, rep->curinfo->pgno == 0);
2127 rep->infolen -= (u_int32_t)(rep->nextinfo - rep->finfo);
2128 rep->ready_pg = 0;
2129 rep->npages = 0;
2130 rep->waiting_pg = PGNO_INVALID;
2131 rep->max_wait_pg = PGNO_INVALID;
2134 "Next file %d: pgsize %lu, maxpg %lu", rep->curinfo->filenum,
2135 (u_long)rep->curinfo->pgsize, (u_long)rep->curinfo->max_pgno));
2137 rep->curinfo->uid.size + rep->curinfo->info.size;
2140 if ((ret = __rep_fileinfo_marshal(env, rep->infoversion,
2141 rep->curinfo, buf, msgsz, &len)) != 0)
2213 __rep_pggap_req(env, rep, reqfp, gapflags)
2215 REP *rep;
2236 if (rep->curinfo == NULL)
2239 if ((ret = __rep_finfo_alloc(env, rep->curinfo, &tmpfp)) != 0)
2262 tmpfp->pgno = rep->ready_pg;
2267 if (rep->max_wait_pg == PGNO_INVALID ||
2273 if (rep->waiting_pg == PGNO_INVALID) {
2276 rep->max_wait_pg = rep->curinfo->max_pgno;
2278 rep->max_wait_pg = rep->ready_pg;
2286 rep->waiting_pg < tmpfp->pgno)
2287 rep->max_wait_pg = rep->curinfo->max_pgno;
2289 rep->max_wait_pg = rep->waiting_pg - 1;
2291 tmpfp->max_pgno = rep->max_wait_pg;
2303 rep->max_wait_pg = rep->ready_pg;
2304 tmpfp->max_pgno = rep->ready_pg;
2310 if (rep->master_id != DB_EID_INVALID) {
2311 STAT(rep->stat.st_pg_requested++);
2314 * new info into rep->finfo. Assert that the sizes never
2318 if ((ret = __rep_fileinfo_marshal(env, rep->infoversion,
2322 (void)__rep_send_message(env, rep->master_id,
2383 __rep_log_setup(env, rep, file, version, lsnp)
2385 REP *rep;
2418 rep->first_lsn = lp->lsn;
2446 __rep_queue_filedone(env, ip, rep, rfp)
2449 REP *rep;
2454 COMPQUIET(rep, NULL);
2465 if (rep->queue_dbc == NULL) {
2491 ip, NULL, &rep->queue_dbc, 0)) != 0)
2494 queue_dbp = rep->queue_dbc->dbp;
2519 QAM_RECNO_PAGE(rep->queue_dbc->dbp, UINT32_MAX);
2544 rep->npages = first;
2545 rep->ready_pg = first;
2546 rep->waiting_pg = rfp->max_pgno + 1;
2547 rep->max_wait_pg = PGNO_INVALID;
2548 ret = __rep_pggap_req(env, rep, rfp, 0);
2557 if (rep->queue_dbc != NULL &&
2558 (t_ret = __dbc_close(rep->queue_dbc)) != 0 && ret == 0)
2560 rep->queue_dbc = NULL;