Amoeba for Aladdin 0.5 版本发布

该版本主要是做了bug fix

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

2、amoeba.xml dtd升级

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

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

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-

关于amoeba 性能测试注意的几点

首先感谢很多amoeba for mysql的使用者对amoeba投入了生产环境的使用,也有些正在做一些性能上面的测试,这儿我建议能够提升amoeba性能的几点:

1、在可用性测试已经完成的情况下,建议将log4j.xml 中关于日志输出level为debug的全部设置成warn或者error 级别。

 日志是非常消耗系统性能的,在没有必要的情况下可以不使用debug。

2、性能测试环境: amoeba 对 cpu的要求比较高,建议将amoeba配置在多核/多cpu的机器上面。

3、amoeba多线程配置,默认只有20~30个线程,在多核/多cpu 的情况下建议开大。

4、amoeba与数据库连接数配置:在性能测试并且客户端并发量不大的情况下,建议将amoeba与数据库的连接数跟客户端与mysql的并发连接数尽量相等,这样保证一个客户端连接可以获得一个数据库连接。

Amoeba for Aladdin (数据库整合、分布式、负载均衡)0.1 发布

Aladdin项目是针对企业数据库整合而产生的另外一种数据库切分、读写分离、负载均衡的中间件产品,是amoeba的子产品。沿袭了amoeba其他产品的特性(amoeba for mysql)。

Aladdin产品简介:

      与Amoeba for mysql 类似,客户端连接aladdin必须用mysql 协议,之所以用mysql协议,主要是想借助mysql使用的广泛程度以及对各种开发语言的支持,因此aladdin对客户端采取了mysql协议以方便适应广泛的使用者。aladdin后端可以同时连接各种数据库。只要这些数据库提供jdbc驱动。aladdin的出现可以解决企业在数据库整合上面提供积极的帮助。使用者不需要知道后端到底使用了什么类型的数据库、数据库的物理地址什么,这些由aladdin来分析sql语句,并且获得相应的要查询的表跟条件,然后由这些规则结合这些条件进行路由到相关的物理数据库。

amoeba for mysql 0.29发布 --解决连接mysql server出现timeout问题

主要解决困扰几个月的timeout问题。

主要是mysql server 要求客户端在认证身份的时候采用老的加密方式,而这个问题恰恰是我没考虑到的,因此导致amoeba 没有收到mysql server返回的ok数据包,直到认证超时。今天总算将这个bug处理了!

在此非常感谢网友刘雅猛的辛苦测试,多次抽出宝贵的时间为amoeba进行测试跟反馈。

Amoeba for Mysql 0.27 released

Amoeba for  Mysql 0.27 已经发布.

主要在性能上面提升了将近20%

目前在多核/多cpu上面进行测试,性能比以前的版本均有很大的提升.

与mysql-proxy性能相比,我目前不好作出评价. 目前整体性能比较不错.

另外0.27修复了一个小bug在第一次访问amoeba的时候返回的错误字符集编码,第二次访问就正确了,目前此bug已经修复.

amoeba 目前进展方面:

amoeba for oracle 在与oracle认证这块协议已经分析完毕.

Oracle协议分析难度相当的大,在没有源代码跟相关的协议文档情况下, 目前Amoeba for Oracle 对于OCI驱动协议包还不完善,无法兼容OCI驱动.

希望以后能够得到Oracle支持,将协议的分析完善.

下一阶段将设计Amoeba Manager.

Amoeba for Mysql 0.26 发布

0.26主要修正bug:

* 修复当sql语句采用preparedstatment 并且参数超过8个的时候出现初始化ExecutePacket 异常.

非常感谢kdfly 提供的bug信息.

希望大家支持Amoeba 发展

Amoeba 发布已经有一段时间了,多少收到amoeba使用的反馈,但反馈还是比较少。如果说bug不多那我很庆幸,还是希望大家遇到bug能够及时跟我联系并且能够反馈自己遇到的问题包括:

Amoeba版本、mysql Server版本、客户端使用的Mysql Driver 跟版本、操作系统、以及当时出现问题的logs文件夹

这样我会在第一时间处理这些bug,更期待代码捐献的人。

 我的email : amoeba.meidusa at gmail.com 或者 piratebase at sina.com

 感谢支持Amoeba发展.

Next Page »