2006-09-14 19:06:51 +02:00
|
|
|
/* Copyright (C) 2006 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
|
Maria: first version of checkpoint (WL#3071), least-recently-dirtied page flushing (WL#3261), recovery (WL#3072),
control file (WL#3234), to serve as a detailed LLD. It looks like C code, but does not compile (no point in making it compile,
as other modules on which I depend are not yet fully speficied or written); some pieces are not coded and just marked in comments.
Files' organization (names, directories of C files) does not matter at this point.
I don't think I had to commit so early, but it feels good to publish something, gives me the impression of moving forward :)
storage/maria/checkpoint.c:
WL#3071 Maria checkpoint, implementation
storage/maria/checkpoint.h:
WL#3071 Maria checkpoint, interface
storage/maria/control_file.c:
WL#3234 Maria control file, implementation
storage/maria/control_file.h:
WL#3234 Maria control file, interface
storage/maria/least_recently_dirtied.c:
WL#3261 Maria background flushing of least-recently-dirtied pages, implementation
storage/maria/least_recently_dirtied.h:
WL#3261 Maria background flushing of least-recently-dirtied pages, interface
storage/maria/recovery.c:
WL#3072 Maria recovery, implementation
storage/maria/recovery.h:
WL#3072 Maria recovery, interface
2006-04-27 16:06:46 +02:00
|
|
|
/*
|
|
|
|
WL#3071 Maria checkpoint
|
|
|
|
First version written by Guilhem Bichot on 2006-04-27.
|
|
|
|
Does not compile yet.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* This is the interface of this module. */
|
|
|
|
|
|
|
|
typedef enum enum_checkpoint_level {
|
|
|
|
NONE=-1,
|
|
|
|
INDIRECT, /* just write dirty_pages, transactions table and sync files */
|
|
|
|
MEDIUM, /* also flush all dirty pages which were already dirty at prev checkpoint*/
|
|
|
|
FULL /* also flush all dirty pages */
|
|
|
|
} CHECKPOINT_LEVEL;
|
|
|
|
|
2006-07-24 21:50:18 +02:00
|
|
|
void request_asynchronous_checkpoint(CHECKPOINT_LEVEL level);
|
|
|
|
my_bool execute_synchronous_checkpoint(CHECKPOINT_LEVEL level);
|
|
|
|
my_bool execute_asynchronous_checkpoint_if_any();
|
Maria: first version of checkpoint (WL#3071), least-recently-dirtied page flushing (WL#3261), recovery (WL#3072),
control file (WL#3234), to serve as a detailed LLD. It looks like C code, but does not compile (no point in making it compile,
as other modules on which I depend are not yet fully speficied or written); some pieces are not coded and just marked in comments.
Files' organization (names, directories of C files) does not matter at this point.
I don't think I had to commit so early, but it feels good to publish something, gives me the impression of moving forward :)
storage/maria/checkpoint.c:
WL#3071 Maria checkpoint, implementation
storage/maria/checkpoint.h:
WL#3071 Maria checkpoint, interface
storage/maria/control_file.c:
WL#3234 Maria control file, implementation
storage/maria/control_file.h:
WL#3234 Maria control file, interface
storage/maria/least_recently_dirtied.c:
WL#3261 Maria background flushing of least-recently-dirtied pages, implementation
storage/maria/least_recently_dirtied.h:
WL#3261 Maria background flushing of least-recently-dirtied pages, interface
storage/maria/recovery.c:
WL#3072 Maria recovery, implementation
storage/maria/recovery.h:
WL#3072 Maria recovery, interface
2006-04-27 16:06:46 +02:00
|
|
|
/* that's all that's needed in the interface */
|