List:Internals« Previous MessageNext Message »
From:Stewart Smith Date:June 21 2006 11:15am
Subject:Re: Mysql architecture
View as plain text  
On Wed, 2006-06-21 at 15:08 +0530, Girish Maskeri Rama wrote:
> Layer 3 (Application/top level) : client, libmysql, libmysqld,
> libmysql_r, tests, mysql-test

the real front ends here are only libmysql, libmysql_r and libmysqld

tests, mysql-test and client just use these.

in reality,  libmysql(_r) talks a network protocol to the SQL server
(the bottom few layers). but these libs can also use the layer 0 utils.

> Layer 2 (QueryProcessing) : sql
> 
> Layer 1 (StorageManagement) : heap, innobase, myisam, ndb, isam,
> bdatabase, myisammrg, merge

> 
> Layer 0 (library/utilities) :
> mysys,cmd-line-utils,extra,netware,os2,pstack,regex,zlib,vio,strings,SSL
> ,support-files,tools,include,dbug
> 

OS/2 support is gone.
include isn't really a module.

same with tools.


> The rationale for this layering is that the layer above would use the
> services provided by layers below.

okay.

> We have a couple of questions:
> 
> 1.	There are 3 versions of sql_string.h : client/sql_string.h,
> libmysqld/sql_string.h and sql/sql_string.h.  Do we need 3 versions? 

likely just symlinks.

> 2.	libmysqld has a copy of many files that exist in other
> directories (eg. Sql_cache.cc exists in both libmysqld and sql)  So if
> one of the files change would you not have to make changes in both the
> places?

likely just symlinks.

libmysqld is the embedded server - largely the same as the normal server
without a bunch of features and with some extra #defines set to do some
specific things. it runs the mysql "server" inside your application.

> 3.	There are function calls from sql (in layer 2) to libmysqld (in
> layer 3) . For example function "query_cache_end_of_result" in file
> sql/sql_cache.cc calls the function "emb_count_querycache_size"  in file
> libmysqld/emb_qcache.cc.   Is this intended?

probably in #ifdef

-- 
Stewart Smith, Software Engineer
MySQL AB, www.mysql.com
Office: +14082136540 Ext: 6616
VoIP: 6616@stripped
Mobile: +61 4 3 8844 332

Jumpstart your cluster:
http://www.mysql.com/consulting/packaged/cluster.html

Attachment: [application/pgp-signature] This is a digitally signed message part signature.asc
Attachment: [application/pgp-signature] This is a digitally signed message part signature.asc
Thread
Mysql architectureGirish Maskeri Rama21 Jun
  • Re: Mysql architectureStewart Smith21 Jun
RE: Mysql architectureGirish Maskeri Rama21 Jun
  • Re: Mysql architectureJim Winstead21 Jun