Amoeba for mysql 1.1.0-BETA发布

Amoeba for mysql 1.1.0-BETA发布

主要解决以下问题:

1、解决amoeba运行一段时间以后可能出现阻塞

2、修复个别sql解析问题

3、重构了ConnectionManager,去除之前读取数据包采用线池的方式,改成目前采用MultiConnectionManagerWrapper,采用多个(具体多少默认由可用的cpu 核数量决定)ConnectionManager进行负责网络IO, 而每个ConnectionManager都是一个单线程

注意:与之前的amoeba.xml在配置上有点出入(defaultManager 的配置与之前不一样了)

sf 主页下载: http://sourceforge.net/projects/amoeba/

Amoeba for mysql 1.0.2 beta版本发布

修复bug列表:

1、修复无法解析抛出unknown statement(1.0.0新bug)。将无法解析得sql默认在defaultPool中执行

2、修复union关键字无法解析问题

3、修复函数前面! 无法解析问题

4、修复order by 、group by 后面带表达式得sql

下载地址: http://downloads.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/amoeba-mysql-1.0.2-BETA.zip

最近sourceforge页面调整,导致有些下载链接无法显示

amoeba for mysql 1.0.0-beta版本下载地址 : http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/1.0.0-BETA/amoeba-mysql-1.0.0-BETA.zip/download

 amoeba for aladdin 0.7.0-beata 版本下载地址:http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20Aladdin/0.7.0-BETA/amoeba-aladdin-0.7.0-BETA.zip/download

discuz on amoeba 乱码问题解决

Amoeba 默认设置支持客户端设置编码的方式是 : set names gbk 其他方式目前还没考虑到。

Discuz遇到编码问题,可以通过修改 include/db_mysql.class.php 里的 设置编码方式改成:

 set names utf8

 –即支持utf8编码格式

  原文来自:

http://hi.baidu.com/hlxwell/blog/item/ea0d445913af102d2834f0d5.html

Amoeba for Mysql 1.0.0-BETA 版本发布

该版本基于0.32版本之上进行bugs fixed,非常感谢阿权提供的一些bug列表

这次版本跳跃比较大,也是我打算在amoeba这个项目花下时间的决心。因此将amoeba提升到新的起点1.0.0版本

下面是这次主要的变更:

1、修复sql解析 explain 关键字开始的sql
2、修复FORCE INDEX (xx) 之类的sql无法解析问题
3、修复包含转义符合在内的sql 比如:insert into xx values(’\'test\’)
4、修复包含 Order by rand()的sql
5、调整默认 网络接受发送缓冲区成128k

下载地址: http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/1.0.0-BETA/amoeba-mysql-1.0.0-BETA.zip/download

关于使用mysql ODBC驱动

很多人使用mysql odbc驱动来连接amoeba。在其中出现各种问题

amoeba目前只解析mysql 协议10 以上版本,或者是mysql 4.1以上版本。

mysql ODBC 3.51 (ODBCAD32.exe)测试通过

mysql ODBC 5.1  (ODBCAD32.exe)测试通过(建议使用)

请大家别用其他连接参数,比如压缩流(个别版本会引起工作不正常)

Amoeba for Aladdin 0.5 版本发布

该版本主要是做了bug fix

1、修正sql中包含Escape 关键字解析出错

2、amoeba.xml dtd升级

3、规则模块进行了重构。

JdbcConnectionFactory 配置明细,该factory提供 java.sql.Connection 对象

该配置仅仅用于amoeba for aladdin 应用 

JdbcConnectionFactory 该factory提供 java.sql.Connection 对象  。

1、属性Driver: 也就是jdbc 驱动类,一般数据库都支持jdbc driver。以方便使用java语言作为开发工具的使用者。

     如果配置了相应数据库的Driver,则必须将类库放到lib下面,才能被amoeba装载

2、属性url :该jdbc数据库连接的有效连接地址,诸如mysql的 url(jdbc:mysql://127.0.0.1:3306/test)

3、properties:这个属性是jdbc Driver的属性,比如 user、password还有一些driver特定的属性。

4、com.meidusa.amoeba.jdbc.DriverWrapper 如果你的应用程序跟数据库之间需要特殊的编码转换,那么这个用于处理客户端、与数据库编码相当灵活。

    这个类有2个属性:

    clientEncoding –客户端往TCP包写入字节码的编码

    serverEncoding –数据库返回字节码数据的编码

<!– PoolableObjectFactory实现类 –>
   <factoryConfig class=”com.meidusa.amoeba.jdbc.JdbcConnectionFactory”>
    
    
    <!– driver name, pls put mysql jdbc driver into lib folder –>
    <property name=”driver”>
     <bean class=”com.mysql.jdbc.Driver”/>
    </property>
    
    <!–
    <property name=”driver”>
     <bean class=”com.meidusa.amoeba.jdbc.DriverWrapper”>
      <property name=”driver”>
       <bean class=”oracle.jdbc.driver.OracleDriver”/>
      </property>
      <property name=”clientEncoding”>gbk</property>
      <property name=”serverEncoding”>ISO_8859_1</property> 
     </bean>
    </property>
     –>
    
    <!– jdbc url. –>
    <property name=”url”>jdbc:mysql://127.0.0.1:3306/test</property>
    
    <!– url –>
    <property name=”properties”>
     <bean class=”java.util.Properties”>
      <!– 用于登陆mysql的用户名 –>
      <property name=”user”>root</property>
      
      <!– for mysql driver –>
      <property name=”characterEncoding”>utf8</property>
      <!– 用于登陆mysql的密码 –>
      <!–
      <property name=”password”>password</property>
      –>
     </bean>
    </property>
    
   </factoryConfig>

-EOF-

Amoeba xml配置文件格式改动

即将发布的amoeba for mysql 0.32 / amoeba for aladdin 0.4 在配置文件上面做了升级,目前只有function.dtd做了不兼容的改动

修改的项目:

1、connectionManager、factoryConfig、poolConfig、queryRouter 增加classs属性,即将去除 className

<connectionManager name=”defaultManager” class=”com.meidusa.amoeba.net.AuthingableConnectionManager”>

<className>com.meidusa.amoeba.net.AuthingableConnectionManager</className>

 </connectionManager >

2、property元素增加bean element,如下格式。这种设置除server中的property。
    <property name=”runnerParameters”>
         <bean class=”java.util.Properties”>
              <property name=”xmlTable”>${amoeba.home}/conf/table.xml</property>
       </bean>

   </property>

3、rule.xml dtd格式改动,parameters增加 excludes属性,如下
  <rule name=”rule1″>
   <parameters excludes=”NAME”>ID,AGE</parameters>
   <expression><![CDATA[ ID <= 1000000 and age > 12]]></expression>
   <defaultPools>server1</defaultPools>
   <readPools>server1</readPools>
   <writePools>server1</writePools>
  </rule>

   该设置主要是当sql条件中包含了name=’abc’ ,而name又可以作为另外一个规则的时候,这个时候这条规则将被忽略

Amoeba for Mysql 0.31 版本发布

1、性能提升 

首先感谢sun ISV Engineering  Jenny在测试amoeba性能花了不少时间。

针对 sun 公司ISV Engineering  Jenny 提出了一个系统write函数调用频繁得问题。在0.31版本上面做了一个延迟写数据包直到设定得ByteBuffer 满了或者强制写 才调用Write 将数据写出去,这个动作带来整体响应速度将提升20%左右。

2、修复select …. for update sql语句解析出错的bug

3、com.meidusa.amoeba.server.MultipleServerPool 负载参数增加 HA  方式,设定方式

1=ROUNDROBIN , 2=WEIGHTBASED ,3=High Availability

<property name=”loadbalance”>3</property>

 这种方式主要是为了writable database <-> writable database采用复制,并且需要避免同时写操作。因此采用HA的方式。这种方式只有一个pool对外提供服务,而另外其他pool 在 第一台pool出现故障或者shutdown以后才会开始对外服务。

 -EOF-

Next Page »