LightDB 22.2正式發佈

本版本主要特性包括:

1、引入實驗性特性oracle pl/sql存儲過程兼容,兼容絕大部分oracle pl/sql一份代碼可以同時運行於oracle和lightdb

2、lightdb jdbc支持autocommit=true時,fetchsize生效

3、lightdb優化器提示進一步完善,且語義兼容oracle

4、原生分佈式DDL語法,和greenplum一樣

5、支持lightdb實時同步oracle,ltdts_recvlogical,詳細使用後續文章專門更新。本版本TPS可到10000筆每秒,下個版本預計可到4-5萬筆每秒。

6、lt_dump支持cascade,可極大的提高性能。

7、sysdate/systimestamp支持語句級一致性,oracle語義一致

8、merge into支持分佈式版

9、支持龍芯cpu、rocky linux。

在最新版的性能測試中,單機TB級容量下,2.6k*2億文檔,lightdb全文檢索性能高於es 6.x版本,且實時索引。在金融業務系統ETF TA、自建TA中,相同數據量、業務量下,某SZ頭部公募基金性能選型測試中,lightdb性能遠高於某base和某號稱全自研的國產第一數據庫。

目前,lightdb正在BJ絕對頭部券商現場業務測試,SH、合肥中部券商業務測試。

詳細特性如下:

E.1. Release 13.3-22.2

Release date: 2022-06-30

  • Support patch for quick upgrade, see lt_patch.

  • Add PL/oraSQL loadable procedural language, see plorasql

  • lt_hint_plan Enhancements

    • Add three new hints: use_hash,use_nl,full, semantics are consistent with Oracle.

    • The table name in hint is case-insensitive.

    • Hint parallel default is hard and supports no table specification.

    • Hints can be applied to the tables of the subquery when the subquery has only one table.

      EXPLAIN (COSTS false) select /*+use_hash(t1 y)*/* from t1,(select * from t2) y where t1.id=y.id;
      
               QUERY PLAN             
      ------------------------------------
      Hash Join
      Hash Cond: (t1.id = t2.id)
      ->  Seq Scan on t1 @"lt#0"
      ->  Hash
              ->  Seq Scan on t2 @"lt#1"
      (5 rows)
      
  • Support User-defined type priority for better function and operator match, see type compatible.

  • Support CREATE TABLE DISTRIBUTED BY to create distribute table(depends on extension canopy), see CREATE TABLE.

    create table dist1(a int, b int) distributed by hash(a) shard_count(4);
    
  • Auto-explain execution plan logs are printed in a separate log file (*.slow) using JSON format.

  • Add extension wal2sql to support Real-time synchronization to Oracle.

  • lt_dump support --recreate-schema to generate drop schema(use CASCADE mode) command for better performance, see lt_dump.

  • Client Applications and libpq Support LightDB environment variables.

  • sysdateand systimestamp indicates the statement start time.

    lightdb@postgres=# begin;
    BEGIN
    lightdb@postgres=*# select sysdate from dual;
        sysdate       
    ---------------------
    2022-06-28 19:44:15
    (1 row)
    
    lightdb@postgres=*# select sysdate from dual;
        sysdate       
    ---------------------
    2022-06-28 19:44:16
    (1 row)
    
    lightdb@postgres=*# end;
    COMMIT
    

    For details, see datetime.

  • When install with high availability, enable replication slot default.

  • Support Order-Preserving Encryption ,see lt_ope

  • The following platform support is added:

    ArchitectureOS
    LoongArch Kylin V10(SP1)
    x86_64 rockylinux
    aarch64 rockylinux
  • Add cluster control tool lightdb_service.py to facilitate the overall start and stop of services in high availability and distributed environments.

    start cluster:

    lightdb_service.py -c start
    

    stop cluster:

    lightdb_service.py -c stop
    
  • The value 0 in PWR is display as empty, for details, see lt_profile.

  • In non-distributed installation, the canopy extension not installed.

  • When keepalived and ltcluster are restarted, new log files are generated to avoid confusion with old logs.

  • lt_initdb does not restrict the order of options.

  • Fix cannot assign XIDs during a parallel operation error occurs occasionally during parallel query in lt_show_plans.

  • Release the JDBC driver library based on PostgreSQL.

    • maven repository

      <dependency>
          <groupId>io.github.hslightdb</groupId>
          <artifactId>lightdb-jdbc</artifactId>
          <version>42.2.30</version>
      </dependency>
      

    We fixed some of the issues and enhanced data type compatibility:

    • fix:fetchSize does not take effect in automatic commit mode, causing the whole data to be loaded into the memory and causing out-of-memory problem.

    • support oracle anonymous blocks syntax (see plorasql ).

    • support to_number() function compatible with oracle.

    • support numeric data type convert to Java Long.

    • support char(1) data type convert to Java Character.

    • fix loss of precision when Java setDouble operates on numeric field.

  • lt_cron supports linux command.

    SELECT cron.schedule('dayly-touch', '59 23 * * *', 'rm -rf $LTDATA/log/*', 'next', '8', 'linux');
    
  • Built-in tool application lvs for load balancing in distributed environment wiith multi-CN.

  • Built-in tool application postgresrest.

  • Changed file naming rules in the installation directory and instance directory.

  • The extension objects in public schema are all moved to the lt_catalog schema.

  • RPM dependencies are built into the installation package.

  • Support merge into in distributed environment.

詳見lightdb官方網站www.hs.net/lightdb,lightdb官方文檔網站www.light-pg.com。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章