本版本主要特性包括:
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, seelt_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, seetype 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 extensionwal2sql 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.
-
sysdate
and 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 withhigh availability, enablereplication slot default.
- Support Order-Preserving Encryption ,seelt_ope
- The following platform support is added:
Architecture | OS |
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, seelt_profile.
- In non-distributed installation, the
canopy
extension not installed. - Whenkeepalived 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 inlt_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 applicationlvs for load balancing in distributed environment wiith multi-CN.
- Built-in tool applicationpostgresrest.
- 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.
- Supportmerge into in distributed environment.
详见lightdb官方网站www.hs.net/lightdb,lightdb官方文档网站www.light-pg.com。