本版本主要特性包括:
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 extensioncanopy
), 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(useCASCADE
mode) command for better performance, see lt_dump. -
Client Applications and libpq Support LightDB environment variables.
-
sysdate
andsystimestamp
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:
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, 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 thelt_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。