~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/trx/trx0undo.c

  • Committer: Lee Bieber
  • Date: 2010-12-23 02:14:02 UTC
  • mfrom: (2021.1.2 build)
  • Revision ID: kalebral@gmail.com-20101223021402-o4zhdsv3x8s0q6pz
Merge Stewart - Update innobase plugin to be based on innodb 1.1.4 from MySQL 5.5.8 
Merge Marisa - fixed markup in 'administrative.rst', which was throwing an error in the build

Show diffs side-by-side

added added

removed removed

Lines of Context:
1798
1798
page_t*
1799
1799
trx_undo_set_state_at_finish(
1800
1800
/*=========================*/
1801
 
        trx_rseg_t*     rseg,   /*!< in: rollback segment memory object */
1802
 
        trx_t*          trx __attribute__((unused)), /*!< in: transaction */
1803
1801
        trx_undo_t*     undo,   /*!< in: undo log memory copy */
1804
1802
        mtr_t*          mtr)    /*!< in: mtr */
1805
1803
{
1808
1806
        page_t*         undo_page;
1809
1807
        ulint           state;
1810
1808
 
1811
 
        ut_ad(trx);
1812
1809
        ut_ad(undo);
1813
1810
        ut_ad(mtr);
1814
 
        ut_ad(mutex_own(&rseg->mutex));
1815
1811
 
1816
1812
        if (undo->id >= TRX_RSEG_N_SLOTS) {
1817
1813
                fprintf(stderr, "InnoDB: Error: undo->id is %lu\n",
1830
1826
            && mach_read_from_2(page_hdr + TRX_UNDO_PAGE_FREE)
1831
1827
               < TRX_UNDO_PAGE_REUSE_LIMIT) {
1832
1828
 
1833
 
                /* This is a heuristic to avoid the problem of all UNDO
1834
 
                slots ending up in one of the UNDO lists. Previously if
1835
 
                the server crashed with all the slots in one of the lists,
1836
 
                transactions that required the slots of a different type
1837
 
                would fail for lack of slots. */
1838
 
 
1839
 
                if (UT_LIST_GET_LEN(rseg->update_undo_list) < 500
1840
 
                    && UT_LIST_GET_LEN(rseg->insert_undo_list) < 500) {
1841
 
 
1842
 
                        state = TRX_UNDO_CACHED;
1843
 
                } else {
1844
 
                        state = TRX_UNDO_TO_FREE;
1845
 
                }
 
1829
                state = TRX_UNDO_CACHED;
1846
1830
 
1847
1831
        } else if (undo->type == TRX_UNDO_INSERT) {
1848
1832