Justin's profilePopgo企业学习PhotosBlogListsMore Tools Help

Popgo企业学习

寻觅冷清凄惨戚
March 27

一周下来,IDC巡检,主机巡检,周报,月报,季报...可怕!
February 20

泉州移动机房巡检

机房巡检20分钟。。。

MySQL Architecture



MySQL Core Modules:
Server Initialization Module
The Server Initialization Module is responsible for the server initialization on startup
sql/mysqld.cc
sql/sql_acl.cc
slq/slave.cc

Connection Manager
The Connection Manager listens for incoming connections from clients, and dispatches the requests to the Thread Manager
sql/mysqld.cc

Thread Manager
The Thread Manager is responsible for keeping track of threads and for making sure a thread is allocated to handle the connection from a client
sql/mysqld.cc
sql/sql_class.cc

Connection Thread
The Connection Thread is the heart of the work of processing client requests on an established connection
sql/sql_parse.cc

User Authentication Module
The User Authentication Module authenticates the connecting user and initializes the structures and variables containing the information on his level of privileges
sql/sql_parse.cc
sql/sql_acl.cc
sql/password.cc

Access Control Module
The Access Control Module verifies that the client user has sufficient privileges to perform the requested operation
sql/sql_acl.cc
sql/sql_parse.cc

Parser
The Parser is responsible for parsing queries and generating a parse tree
sql/sql_parse.cc
sql/sql_yacc.cc
sql/sql_lex.cc

Command Dispatcher
The Command Dispatcher is responsible for directing requests to the lower-level modules that will know how to resolve them
sql/sql_parse.cc

Query Cache Module
The Query Cache Module caches query results, and tries to short-circuit the execution  of queries by delivering the cached result whenever possible
sql/sql_cache.cc

Optimizer
The Optimizer is responsible for creating the best strategy to answer the query, and executing it to deliver the result to the client
sql/sql_select.cc

Table Manager
The Table Manager is responsible for creating, reading, and modifying the table definition files (.frm extension), maintaining a cache of table descriptors called table cache, and managing table-level locks
sql/sql_base.cc
sql/table.cc
sql/unireg.cc
sql/lock.cc

Table Modification Module
This collection of modules is responsible for operations such as creating, deleting, renaming, dropping, updating, or inserting into a table
sql/sql_update.ccc
sql/sql_insert.cc
sql/sql_table.cc
sql/sql_delete.cc

Table Maintenance Module
The Table Maintenance Module is responsible for table maintenance operations such as check, repair, back up, restore, optimize (defragment), and analyze (update key distribution statistics)
sql/sql_table.cc

Status Report Module
The Status Reporting Module is responsible for answering queries about server configuration settings, performance tracking variables, table structure information, replication progress, condition of the table cache, and other things
sql/sql_show.cc
sql/slave.cc
sql/sql_repl.cc

Abstracted Storage Engine Interface(Table Handler)
This module is actually an abstract class named handler and a structure called a handlerton
sql/handler.h
sql/handler.cc

Storage Engine Implementations(MyISAM, InnoDB, MEMORY, Berkeley DB)
Each of the storage engines provides a standard interface for its operations by extending the handler class mentioned earlier
sql/ha_myisam.h      sql/ha_myisam.cc
sql/ha_innodb.h      sql/ha_innodb.cc
sql/ha_heap.h        sql/ha_heap.cc
sql/ha_ndbcluster.h  sql/ha_ndbcluster.cc

Logging Module
The Logging Module is responsible for maintaining higher-level (logical) logs
sql/log.cc
sql/log_event.cc

Replication Master Module
The Replication Master Module is responsible for the replication functionality on the master
sql/sql_repl.cc

Replication Slave Module
The Replication Slave Module is responsible for the replication functionality of the slave
sql/slave.cc

Client/Server Protocol API
The MySQL client/server communication protocol sits on top of the operating system protocol (TCP/IP or local socket) in the protocol stack
sql/protocol.cc
sql/net_serv.cc

Low-Level Network I/O API
The Low-Level Network I/O API provides an abstraction for the low-level network I/O and SSL sessions
vio/ direcotry

Core API
The Core API is the Swiss Army knife of MySQL
It provides functionality for portable file I/O, memory management, string manipulation, filesystem navigation, formatted printing, a rich collection of data structures and algorithms, and a number of other things
mysys/ directory
strings/ directory
 
 
February 17

LAMP 安装一: reiser4文件系统及内核升级至2.6.28

 
[root@popgo-websvr ~]# uname -a
Linux popgo-websvr 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux

[root@popgo-websvr ~]# tar -jxvf /mnt/hgfs/share/RHEL4/libaal-1.0.5.tar.bz2 -C /usr/src
[root@popgo-websvr ~]# cd /usr/src/libaal-1.0.5/
[root@popgo-websvr libaal-1.0.5]# ./configure --prefix=/usr
[root@popgo-websvr libaal-1.0.5]# make
[root@popgo-websvr libaal-1.0.5]# make install
[root@popgo-websvr libaal-1.0.5]# /sbin/ldconfig
 
[root@popgo-websvr libaal-1.0.5]# tar -zxvf /mnt/hgfs/share/RHEL4/reiser4progs-1.0.7.tar.gz -C /usr/src/
[root@popgo-websvr libaal-1.0.5]# cd /usr/src/reiser4progs-1.0.7/
[root@popgo-websvr reiser4progs-1.0.7]# ./configure --prefix=/usr
[root@popgo-websvr reiser4progs-1.0.7]# make
[root@popgo-websvr reiser4progs-1.0.7]# make install
[root@popgo-websvr reiser4progs-1.0.7]# /sbin/ldconfig
 
[root@popgo-websvr reiser4progs-1.0.7]# tar -zxvf /mnt/hgfs/share/RHEL4/linux-2.6.28.tar.gz -C /usr/src/
[root@popgo-websvr reiser4progs-1.0.7]# ln -s /usr/src/linux-2.6.28/ /usr/src/linux
[root@popgo-websvr reiser4progs-1.0.7]# cd /usr/src/linux
[root@popgo-websvr linux]# pwd
/usr/src/linux
[root@popgo-websvr linux]# gzip -cd /mnt/hgfs/share/RHEL4/reiser4-for-2.6.28.patch.gz | patch -p1
/usr/src/linux/fs/reiser4
 
[root@popgo-websvr linux]# make mrproper
[root@popgo-websvr linux]# make menuconfig
[root@popgo-websvr linux]# make dep
scripts/kconfig/conf -s arch/x86/Kconfig
*** Warning: make dep is unnecessary now.
[root@popgo-websvr linux]# mkdir /lib/modules/2.6.28
[root@popgo-websvr linux]# make clean
[root@popgo-websvr linux]# make all
[root@popgo-websvr linux]# make modules_install
[root@popgo-websvr linux]# make install
sh /usr/src/linux-2.6.28/arch/x86/boot/install.sh 2.6.28 arch/x86/boot/bzImage System.map "/boot"
WARNING: No module mptscsi found for kernel 2.6.28, continuing anyway
[root@popgo-websvr ~]# uname -a
Linux popgo-websvr 2.6.28 #1 SMP Mon Feb 16 23:37:15 CST 2009 i686 i686 i386 GNU/Linux
[root@popgo-websvr ~]#
 
 
Vmware Bug:
[root@popgo-websvr ~]# vmware-config-tools.pl
Stopping VMware Tools services in the virtual machine:
   Guest operating system daemon:                          [  OK  ]
   Blocking file system:                                   [  OK  ]
   Unmounting HGFS shares:                                 [  OK  ]
   Guest filesystem driver:                                [  OK  ]
   Guest memory manager:                                   [  OK  ]
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
   Guest vmxnet fast network device:                       [  OK  ]
Trying to find a suitable vmmemctl module for your running kernel.
None of the pre-built vmmemctl modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmmemctl module
for your system (you need to have a C compiler installed on your system)?
[yes]
Using compiler "/usr/bin/gcc". Use environment variable CC to override.
What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.28/build/include]
Extracting the sources of the vmmemctl module.
Building the vmmemctl module.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config2/vmmemctl-only'
make -C /lib/modules/2.6.28/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modulesmake[1]: Entering directory `/usr/src/linux-2.6.28'
  CC [M]  /tmp/vmware-config2/vmmemctl-only/os.o
In file included from /tmp/vmware-config2/vmmemctl-only/os.c:40:
/tmp/vmware-config2/vmmemctl-only/compat_wait.h:37:5: warning: "VMW_HAVE_EPOLL" is not defined
/tmp/vmware-config2/vmmemctl-only/compat_wait.h:43:5: warning: "VMW_HAVE_EPOLL" is not defined
In file included from /tmp/vmware-config2/vmmemctl-only/os.c:40:
/tmp/vmware-config2/vmmemctl-only/compat_wait.h:60: error: conflicting types for 'poll_initwait'
include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was here/tmp/vmware-config2/vmmemctl-only/compat_wait.h:60: error: conflicting types for 'poll_initwait'
include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was here/tmp/vmware-config2/vmmemctl-only/os.c: In function `os_init':
/tmp/vmware-config2/vmmemctl-only/os.c:567: error: structure has no member named `get_info'
make[2]: *** [/tmp/vmware-config2/vmmemctl-only/os.o] Error 1
make[1]: *** [_module_/tmp/vmware-config2/vmmemctl-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28'
make: *** [vmmemctl.ko] Error 2
make: Leaving directory `/tmp/vmware-config2/vmmemctl-only'
Unable to build the vmmemctl module.
The memory manager driver (vmmemctl module) is used by VMware host software to
efficiently reclaim memory from a virtual machine.
If the driver is not available, VMware host software may instead need to swap
guest memory to disk, which may reduce performance.
The rest of the software provided by VMware Tools is designed to work
independently of this feature.
If you want the memory management feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution's installation CD.
[ Press Enter key to continue ]
Trying to find a suitable vmhgfs module for your running kernel.
None of the pre-built vmhgfs modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmhgfs module for
your system (you need to have a C compiler installed on your system)? [yes]
Extracting the sources of the vmhgfs module.
Building the vmhgfs module.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config3/vmhgfs-only'
make -C /lib/modules/2.6.28/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modulesmake[1]: Entering directory `/usr/src/linux-2.6.28'
  CC [M]  /tmp/vmware-config3/vmhgfs-only/backdoor.o
  CC [M]  /tmp/vmware-config3/vmhgfs-only/backdoorGcc32.o
  CC [M]  /tmp/vmware-config3/vmhgfs-only/bdhandler.o
/tmp/vmware-config3/vmhgfs-only/bdhandler.c:15:27: asm/semaphore.h: No such file or directory
In file included from /tmp/vmware-config3/vmhgfs-only/dbllnklst.h:14,
                 from /tmp/vmware-config3/vmhgfs-only/vmrpc.h:17,
                 from /tmp/vmware-config3/vmhgfs-only/hgfsBd.h:14,
                 from /tmp/vmware-config3/vmhgfs-only/bdhandler.c:29:
/tmp/vmware-config3/vmhgfs-only/vm_basic_types.h:170: error: conflicting types for 'uintptr_t'
include/linux/types.h:40: error: previous declaration of 'uintptr_t' was here
In file included from /tmp/vmware-config3/vmhgfs-only/request.h:21,
                 from /tmp/vmware-config3/vmhgfs-only/bdhandler.c:34:
/tmp/vmware-config3/vmhgfs-only/compat_wait.h:37:5: warning: "VMW_HAVE_EPOLL" is not defined
/tmp/vmware-config3/vmhgfs-only/compat_wait.h:43:5: warning: "VMW_HAVE_EPOLL" is not defined
In file included from /tmp/vmware-config3/vmhgfs-only/request.h:21,
                 from /tmp/vmware-config3/vmhgfs-only/bdhandler.c:34:
/tmp/vmware-config3/vmhgfs-only/compat_wait.h:60: error: conflicting types for 'poll_initwait'
include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was here/tmp/vmware-config3/vmhgfs-only/compat_wait.h:60: error: conflicting types for 'poll_initwait'
include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was heremake[2]: *** [/tmp/vmware-config3/vmhgfs-only/bdhandler.o] Error 1
make[1]: *** [_module_/tmp/vmware-config3/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/vmware-config3/vmhgfs-only'
Unable to build the vmhgfs module.
The filesystem driver (vmhgfs module) is used only for the shared folder
feature. The rest of the software provided by VMware Tools is designed to work
independently of this feature.
If you wish to have the shared folders feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution's installation CD.
[ Press Enter key to continue ]
pcnet32                34728  0
Unloading pcnet32 module
Trying to find a suitable vmxnet module for your running kernel.
None of the pre-built vmxnet modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmxnet module for
your system (you need to have a C compiler installed on your system)? [yes]
Extracting the sources of the vmxnet module.
Building the vmxnet module.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config4/vmxnet-only'
make -C /lib/modules/2.6.28/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modulesmake[1]: Entering directory `/usr/src/linux-2.6.28'
  CC [M]  /tmp/vmware-config4/vmxnet-only/vmxnet.o
In file included from /tmp/vmware-config4/vmxnet-only/vmxnet.c:36:
/tmp/vmware-config4/vmxnet-only/vm_basic_types.h:170: error: conflicting types for 'uintptr_t'
include/linux/types.h:40: error: previous declaration of 'uintptr_t' was here
/tmp/vmware-config4/vmxnet-only/vmxnet.c: In function `vmxnet_probe_device':
/tmp/vmware-config4/vmxnet-only/vmxnet.c:685: error: implicit declaration of function `SET_MODULE_OWNER'
/tmp/vmware-config4/vmxnet-only/vmxnet.c: In function `vmxnet_tx':
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1220: error: structure has no member named `nh'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1222: error: structure has no member named `nh'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1223: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1226: error: structure has no member named `nh'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1367: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1367: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1367: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1367: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1367: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1367: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1368: error: structure has no member named `nh'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1368: error: structure has no member named `nh'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1368: error: structure has no member named `nh'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1368: error: structure has no member named `nh'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1445: error: structure has no member named `h'
/tmp/vmware-config4/vmxnet-only/vmxnet.c:1446: error: structure has no member named `h'
make[2]: *** [/tmp/vmware-config4/vmxnet-only/vmxnet.o] Error 1
make[1]: *** [_module_/tmp/vmware-config4/vmxnet-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28'
make: *** [vmxnet.ko] Error 2
make: Leaving directory `/tmp/vmware-config4/vmxnet-only'
Unable to build the vmxnet module.
The fast network device driver (vmxnet module) is used only for our fast
networking interface. The rest of the software provided by VMware Tools is
designed to work independently of this feature.
If you wish to have the fast network driver enabled, you can install the driver
by running vmware-config-tools.pl again after making sure that gcc, binutils,
make and the kernel sources for your running kernel are installed on your
machine. These packages are available on your distribution's installation CD.
[ Press Enter key to continue ]
Trying to find a suitable vmblock module for your running kernel.
None of the pre-built vmblock modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmblock module
for your system (you need to have a C compiler installed on your system)?
[yes]
Extracting the sources of the vmblock module.
Building the vmblock module.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config5/vmblock-only'
make -C /lib/modules/2.6.28/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modulesmake[1]: Entering directory `/usr/src/linux-2.6.28'
  CC [M]  /tmp/vmware-config5/vmblock-only/linux/block.o
In file included from /tmp/vmware-config5/vmblock-only/linux/os.h:21,
                 from /tmp/vmware-config5/vmblock-only/linux/block.c:12:
/tmp/vmware-config5/vmblock-only/./include/compat_wait.h:37:5: warning: "VMW_HAVE_EPOLL" is not defined
/tmp/vmware-config5/vmblock-only/./include/compat_wait.h:43:5: warning: "VMW_HAVE_EPOLL" is not defined
In file included from /tmp/vmware-config5/vmblock-only/linux/os.h:21,
                 from /tmp/vmware-config5/vmblock-only/linux/block.c:12:
/tmp/vmware-config5/vmblock-only/./include/compat_wait.h:60: error: conflicting types for 'poll_initwait'
include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was here/tmp/vmware-config5/vmblock-only/./include/compat_wait.h:60: error: conflicting types for 'poll_initwait'
include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was hereIn file included from /tmp/vmware-config5/vmblock-only/linux/vmblockInt.h:26,
                 from /tmp/vmware-config5/vmblock-only/linux/block.c:15:
/tmp/vmware-config5/vmblock-only/./include/vm_basic_types.h:170: error: conflicting types for 'uintptr_t'
include/linux/types.h:40: error: previous declaration of 'uintptr_t' was here
/tmp/vmware-config5/vmblock-only/linux/block.c: In function `BlockInit':
/tmp/vmware-config5/vmblock-only/linux/block.c:66: error: too many arguments to function `kmem_cache_create'
make[2]: *** [/tmp/vmware-config5/vmblock-only/linux/block.o] Error 1
make[1]: *** [_module_/tmp/vmware-config5/vmblock-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28'
make: *** [vmblock.ko] Error 2
make: Leaving directory `/tmp/vmware-config5/vmblock-only'
Unable to build the vmblock module.
The vmblock module enables dragging or copying files from within a host and
dropping or pasting them onto your guest (host to guest drag and drop and file
copy/paste).  The rest of the software provided by VMware Tools is designed to
work independently of this feature (including guest to host drag and drop and
file copy/paste).
If you would like the host to guest drag and drop and file copy/paste features,
you can install the driver by running vmware-config-tools.pl again after making
sure that gcc, binutils, make and the kernel sources for your running kernel
are installed on your machine. These packages are available on your
distribution's installation CD.
[ Press Enter key to continue ]
[EXPERIMENTAL] The Virtual Machine Communication Interface (VMCI) service
provides a new communication capability with the Host, primarily for
development at the moment.  Would you like to enable this feature? [no]
 
Detected X.org version 6.8.
 
Do you want to change the display size that X starts with? (yes/no) [no]

X Window System Version 6.8.2
Release Date: 9 February 2005
X Protocol Version 11, Revision 0, Release 6.8.2
Build Operating System: Linux 2.6.9-42.0.8.ELsmp i686 [ELF]
Current Operating System: Linux popgo-websvr 2.6.28 #1 SMP Mon Feb 16 23:37:15 CST 2009 i686
Build Date: 19 April 2007
Build Host: hs20-bc1-6.build.redhat.com
        Before reporting problems, check http://wiki.X.Org
        to make sure that you have the latest version.
Module Loader present
OS Kernel: Linux version 2.6.28 (root@popgo-websvr) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-8)) #1 SMP Mon Feb 16 23:37:15 CST 2009
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/vmware-config6/XF86ConfigLog.4633", Time: Tue Feb 17 00:26:31 2009
(++) Using config file: "/tmp/vmware-config6/XF86Config.4633"
X is running fine with the new config file.
Starting VMware Tools services in the virtual machine:
   Switching to guest configuration:                       [  OK  ]
   DMA setup:                                              [  OK  ]
   Guest operating system daemon:                          [  OK  ]
The configuration of VMware Tools 6.0.0 build-45731 for Linux for this running
kernel completed successfully.
You must restart your X session before any mouse or graphics changes take
effect.
You can now run VMware Tools by invoking the following command:
"/usr/bin/vmware-toolbox" during an X server session.
To make use of the virtual printer, you will need to restart the CUPS service
If you wish to configure any experimental features, please run the following
command: "vmware-config-tools.pl --experimental".
Enjoy,
--the VMware team
[root@popgo-websvr ~]#
 
 

Justin Xu

Interests
从学校出来到现在,已经一年多了,而今不知道学了多少,只好用这个博客来记录些东西,以提醒自己.
从学校出来到现在,已经半年多了,而今不知道学了多少,只好用这个博客来记录些东西,以提醒自己.
Please wait...
Sorry, the comment you entered is too long. Please shorten it.
You didn't enter anything. Please try again.
Sorry, we can't add your comment right now. Please try again later.
To add a comment, you need permission from your parent. Ask for permission
Your parent has turned off comments.
Sorry, we can't delete your comment right now. Please try again later.
You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
Complete the security check below to finish leaving your comment.
The characters you type in the security check must match the characters in the picture or audio.
Popgo  
Photo 1 of 1
More albums (1)