Releases: apache/horaedb
v2.1.0
Major Features
- Introduce a new WAL implementation based on local disk
- Access object store with opendal
What's Changed
- chore: upgrade rustc version by @baojinri in #1489
- chore: rename more ceresdb to horaedb by @tisonkun in #1494
- fix: bump influxql, fix query priority by @jiacai2050 in #1495
- chore: add NOTICE file and ASF header by @chunshao90 in #1491
- chore(deps): bump mio from 0.8.6 to 0.8.11 by @dependabot in #1493
- feat: replay logs of different tables in parallel by @Lethannn in #1492
- chore(deps): bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.20.0 to 0.46.0 in /horaemeta by @dependabot in #1463
- fix: check ASF header for all source files by @jiacai2050 in #1497
- feat: optimize minor issues by @zealchen in #1496
- chore: add some dependency project descriptions in notice by @chunshao90 in #1499
- chore(deps): bump google.golang.org/protobuf from 1.30.0 to 1.33.0 in /integration_tests/sdk/go by @dependabot in #1500
- feat(horaectl): impl horaectl in rs by @baojinri in #1481
- feat(horaemeta): add node inspector by @ZuLiangWang in #1483
- chore: remove tini binary by @jiacai2050 in #1503
- Feat concurrent replay wal by @zealchen in #1505
- fix: table blacklist not work for write by @Rachelint in #1507
- feat: implement opentsdb query by @baojinri in #1453
- chore: bump sqlness to 0.6.0 by @jiacai2050 in #1509
- chore(deps): bump h2 from 0.3.24 to 0.3.26 by @dependabot in #1510
- chore: update protected_tags in .asf.yaml by @chunshao90 in #1514
- feat: add wal replay benchmark by @zealchen in #1511
- chore: add check-pr-title action by @chunshao90 in #1516
- chore: modify check-pr-title action by @chunshao90 in #1523
- chore(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 in /horaemeta by @dependabot in #1522
- chore(deps): bump golang.org/x/net from 0.17.0 to 0.23.0 in /integration_tests/sdk/go by @dependabot in #1521
- chore: add auto-label-pr action by @chunshao90 in #1520
- feat(horaemeta): drop metadata of partition table by http api by @chunshao90 in #1477
- refactor: first step to refactor error by @jiacai2050 in #1524
- refactor: allow disable wal in standalone mode by @ZuLiangWang in #1526
- chore: add dingtalk by @jiacai2050 in #1528
- fix: docker image use apache namespace by @jiacai2050 in #1529
- chore: add mysql-client and grafana in docker image by @dracoooooo in #1530
- feat: impl basic auth by @baojinri in #1531
- chore: add incubating notice by @jiacai2050 in #1532
- docs: Update README.md by @tisonkun in #1535
- chore: log more info for debug when tables with same name found by @Rachelint in #1537
- refactor: partitioned_lock's elaboration by @alicorn0618 in #1540
- feat: support INSERT INTO SELECT by @dracoooooo in #1536
- refactor: insert select to stream mode by @zealchen in #1544
- fix(comment): update error documentation comment for remote engine service by @LeslieKid in #1548
- refactor: manifest error code by @zealchen in #1546
- fix: sequence overflow when dropping a table using a message queue as WAL by @chunshao90 in #1550
- feat: Add a new disk-based WAL implementation for standalone deployment by @dracoooooo in #1552
- chore: upgrade object store version by @baojinri in #1541
- feat: use opendal to access underlying storage by @baojinri in #1557
- feat: add metric engine rfc by @jiacai2050 in #1558
- chore: update link by @caicancai in #1561
- chore(horaemeta): add building docs by @caicancai in #1562
- feat: Implementing cross-segment read/write for WAL based on local disk by @dracoooooo in #1556
- chore: fix doc links by @jiacai2050 in #1565
- fix: disable layered memtable in overwrite mode by @Rachelint in #1533
- feat: init metric engine structure by @jiacai2050 in #1554
- feat: Implement delete operation for WAL based on local storage by @dracoooooo in #1566
- fix: support to compat the old layered memtable options by @Rachelint in #1568
- chore: record replay cost in log by @jiacai2050 in #1569
- fix: logs might be missed during RegionBased replay in the WAL based on local disk by @dracoooooo in #1570
- feat: use multithreading to optimize WAL replay by @dracoooooo in #1572
- chore(deps): bump borsh from 0.10.3 to 0.10.4 by @dependabot in #1574
- fix: remove redundancy length field in wal record by @jiacai2050 in #1576
- chore: bump version 2.1.0 by @jiacai2050 in #1578
New Contributors
- @Lethannn made their first contribution in #1492
- @dracoooooo made their first contribution in #1530
- @alicorn0618 made their first contribution in #1540
- @LeslieKid made their first contribution in #1548
Full Changelog: v2.0.0...v2.1.0-rc.1
What's Changed
- chore: upgrade rustc version by @baojinri in #1489
- chore: rename more ceresdb to horaedb by @tisonkun in #1494
- fix: bump influxql, fix query priority by @jiacai2050 in #1495
- chore: add NOTICE file and ASF header by @chunshao90 in #1491
- chore(deps): bump mio from 0.8.6 to 0.8.11 by @dependabot in #1493
- feat: replay logs of different tables in parallel by @Lethannn in #1492
- chore(deps): bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.20.0 to 0.46.0 in /horaemeta by @dependabot in #1463
- fix: check ASF header for all source files by @jiacai2050 in #1497
- feat: optimize minor issues by @zealchen in #1496
- chore: add some dependency project descriptions in notice by @chunshao90 in #1499
- chore(deps): bump google.golang.org/protobuf from 1.30.0 to 1.33.0 in /integration_tests/sdk/go by @dependabot in #1500
- feat(horaectl): impl horaectl in rs by @baojinri in #1481
- feat(horaemeta): add node inspector by @ZuLiangWang in #1483
- chore: remove tini binary by @jiacai2050 in #1503
- Feat concurrent replay wal by @zealchen in #1505
- fix: table blacklist not work for write by @Rachelint in #1507
- feat: implement opentsdb query by @baojinri in #1453
- chore: bump sqlness to 0.6.0 by @jiacai2050 in #1509
- chore(deps): bump h2 from 0.3.24 to 0.3.26 by @dependabot in #1510
- chore: update protected_tags in .asf.yaml by @chunshao90 in #1514
- feat: add wal replay benchmark by @zealchen in #1511
- chore: add check-pr-title action by @chunshao90 in #1516
- chore: modify check-pr-title action by @chunshao90 in #1523
- chore(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 in /horaemeta by @dependabot in #1522
- chore(deps): bump golang.org/x/net from 0.17.0 to 0.23.0 in /integration_tests/sdk/go by @dependabot in #1521
- chore: add auto-label-pr acti...
v2.0.0
Upgrade from 1.x.x to 2.0.0
The transition from CeresDB to Apache HoraeDB introduces several breaking changes. To facilitate upgrading from older versions to v2.0.0, specific alterations are necessary.
Upgrade Steps
- Setup required envs
export HORAEDB_DEFAULT_CATALOG=ceresdb
- Update config
Etcd's root should be configured both in horaedb and horaemeta
For horaedb
[cluster_deployment.etcd_client]
server_addrs = ['127.0.0.1:2379']
root_path = "/rootPath"
For horaemeta
storage-root-path = "/rootPath"
- Upgrade horaemeta
Horaedb will throw following errors, which is expected
2024-01-23 14:37:57.726 ERRO [src/cluster/src/cluster_impl.rs:136] Send heartbeat to meta failed, err:Failed to send heartbeat, cluster:defaultCluster, err:status: Unimplemented, message: "unknown service meta_service.MetaRpcService", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc"} }
- Upgrade horaedb
After all server upgraded, the cluster should be ready for read/write, and old data could be queried like before.
What's Changed
Breaking Changes
- refactor!: refactor shard version logic by @ZuLiangWang in #1286
Features
- feat: support re-acquire shard lock in a fast way by @ShiKaiWi in #1251
- feat: support alter partition table by @chunshao90 in #1244
- feat: support access etcd with tls by @ShiKaiWi in #1254
- feat: support schema validate in remote write by @ShiKaiWi in #1256
- feat: avoid flush when drop table by @jiacai2050 in #1257
- feat: opentsdb api support gzip body by @tanruixiang in #1261
- feat: infer timestamp constraint for single-timestamp column by @Dennis40816 in #1266
- feat: primary keys support sample by @jiacai2050 in #1243
- feat: cache space total memory by @jiacai2050 in #1278
- feat: skip record column values for level0 sst by @jiacai2050 in #1282
- feat: support write wal logs in columnar format by @ShiKaiWi in #1179
- feat: support stack size of read threads configurable by @ShiKaiWi in #1305
- feat: impl DoNothing wal by @jiacai2050 in #1311
- feat: slow log include remote query by @jiacai2050 in #1316
- feat: use string for request id by @jiacai2050 in #1349
- feat: support metrics for number of bytes fetched from object storage by @ShiKaiWi in #1363
- feat: avoid building dictionary for massive unique column values by @ShiKaiWi in #1365
- feat: utilize the column cardinality for deciding whether to do dict by @ShiKaiWi in #1372
- feat: avoid pulling unnecessary columns when querying append mode table by @Rachelint in #1307
- feat: dist sql analyze by @baojinri in #1260
- feat: impl priority runtime for read by @jiacai2050 in #1303
- feat: upgrade horaedbproto by @chunshao90 in #1408
- feat: block rules support query by @jiacai2050 in #1420
- feat: try load page indexes by @jiacai2050 in #1425
- feat: support setting meta_addr&etcd_addrs by env by @chunshao90 in #1427
- feat: add table status check by @ZuLiangWang in #1418
- feat: support docker-compose and update README by @chunshao90 in #1429
- feat: impl layered memtable to reduce duplicated encode during scan by @Rachelint in #1271
- feat: update disk cache in another thread to avoid blocking normal query process by @jiacai2050 in #1431
- feat: update pgwire to 0.19 by @sunng87 in #1436
- feat: filter out MySQL federated components' emitted statements by @chunshao90 in #1439
- feat: add system_stats lib to collect system stats by @ShiKaiWi in #1442
- feat(horaectl): initial commit by @chunshao90 in #1450
- feat: support collect statistics about the engine by @ShiKaiWi in #1451
- feat: persist sst meta size by @jiacai2050 in #1440
- feat: add sst level config for benchmark by @zealchen in #1482
- feat: add exponential backoff when retry by @zealchen in #1486
Refactor
- refactor: move wal structs and traits to wal crate by @tisonkun in #1263
- refactor: improve error readability by @jiacai2050 in #1265
- refactor: move wal crate to under src folder by @tisonkun in #1270
- refactor: use
notifier::RequestNotifiers
instead ofdedup_requests::RequestNotifiers
by @baojinri in #1249 - refactor: conditionally compile wal impls by @tisonkun in #1272
- refactor: remove unused min/max timestamp in the RowGroup by @ShiKaiWi in #1297
- refactor: avoid duplicate codes by @ShiKaiWi in #1371
- refactor: avoid returning metrics in non-analyze sql by @baojinri in #1410
- refactor: move sub crates to the src directory by @chunshao90 in #1443
- refactor: adjust cpu's stats by @ShiKaiWi in #1457
- refactor: refactor compaction process for remote compaction by @Rachelint in #1476
Fixed
- fix: dist query dedup by @Rachelint in #1269
- fix: log third party crates by @jiacai2050 in #1289
- fix: ensure primary key order by @jiacai2050 in #1292
- fix: use flag in preflush to indicate whether reorder is required by @jiacai2050 in #1298
- fix: alter partition table tag column by @chunshao90 in #1304
- fix: increase wait duration for flush by @jiacai2050 in #1315
- fix: add license to workspace members by @jiacai2050 in #1317
- fix: ensure channel size non zero by @jiacai2050 in #1345
- fix: fix create table result by @ZuLiangWang in #1354
- Revert "fix: fix create table result" by @ZuLiangWang in #1355
- fix: fix test create table result by @ZuLiangWang in #1357
- fix: no write stall by @ShiKaiWi in #1388
- fix: collect metrics for
get_ranges
by @ShiKaiWi in #1364 - fix: ignore collecting fetched bytes stats when sst file is read only once by @ShiKaiWi in #1369
- fix: publich nightly image by @chunshao90 in #1396
- fix: missing and verbose logs by @ShiKaiWi in #1398
- fix: fix broken link by @caicancai in #1399
- fix: the broken link about the issue status by @ShiKaiWi in #1402
- fix: skip wal encoding when data wal is disabled by @jiacai2050 in #1401
- fix: disable percentile for distributed tables by @jiacai2050 in #1406
- fix: compatible for old table options by @Rachelint in #1432
- fix: get_ranges is not spawned in io-runtime by @ShiKaiWi in #1426
- fix: table name is normalized when find timestamp column by @jiacai2050 in #1446
- fix: changes required for migrate dev to main by @jiacai2050 in #1455
- fix: missing filter index over the primary keys by @ShiKaiWi in #1456
- fix: random failure of test_collect_system_stats by @ShiKaiWi in https://github.com/a...
v1.2.7
Major Features
Partition Table
- Support random partition rule #1193
- Avoid memory allocation during partition write requests #1208
- Fix wrong text of show create table for partition table #1214
- Improved partitioned table tests powered by tsbs #1195
Performance
- Teach ceresdb to run the whole dist query process #1204
- Support aggr push down in distributed query #1232
- Store real time range in sst #1225
- Use real time range to filter memtable #1233
- Rewrite
not in
expr toin
#1236 - Dedup requests in proxy #1125
- Support dedup execute physical plan #1237
Bug Fix
- Fix deadlock when dedup stream read #1199
- Fix panic when read data out of range by disk cache #1206
- Fix lock contention on acquiring the arena stats #1207
- Fix panic if dedupped query fails #1229
What's Changed
- feat: improved partitioned table tests powered by tsbs by @Rachelint in #1195
- chore(deps): bump webpki from 0.22.0 to 0.22.1 by @dependabot in #1198
- feat: support random partition rule by @ShiKaiWi in #1193
- feat: limit multiple threads fetch the same block simultaneous by @tanruixiang in #1190
- fix: deadlock when dedup stream read by @ShiKaiWi in #1199
- chore: add meta stable check into integration test by @Rachelint in #1202
- feat: refactor
Resolver
in dist sql query by @Rachelint in #1186 - refactor: stream read metric by @baojinri in #1203
- fix: panic when read data out of range by disk cache by @ShiKaiWi in #1206
- fix: lock contention on acquiring the arena stats by @ShiKaiWi in #1207
- fix: use ExecutionGuard to ensure notifiers released when futures got cancelled by @tanruixiang in #1200
- chore: modify
enable_others
default true for happy debugging by @Rachelint in #1209 - fix: skip update shard status when create/remove table by @jiacai2050 in #1210
- fix: add table status to cancel background jobs by @jiacai2050 in #1212
- refactor: use encoded_size as memory usage by @jiacai2050 in #1213
- chore(deps): bump bcder from 0.7.2 to 0.7.3 by @dependabot in #1216
- fix: wrong text of show create table for partition table by @ShiKaiWi in #1214
- refactor: avoid memory allocation during partition write requests by @ShiKaiWi in #1208
- fix: ignore error when open partition table failed by @jiacai2050 in #1220
- chore: http route directly from meta by @Rachelint in #1221
- build(deps): upgrade rust-rocksdb by @tisonkun in #1223
- fix: loop all sub tables to get table info by @jiacai2050 in #1224
- refactor: stop reschedule when pending task larger than max ongoing by @jiacai2050 in #1219
- fix: disk cache deduped get_ranges by @jiacai2050 in #1218
- refactor: first step to move all packages under src folder by @tisonkun in #1226
- feat: store real time range in sst by @jiacai2050 in #1225
- fix: set and fetch environment variables error by @tanruixiang in #1227
- feat: dedup requests in proxy by @baojinri in #1125
- test: add integration test for query plan by @jiacai2050 in #1228
- feat: teach ceresdb to run the whole dist query process by @Rachelint in #1204
- fix: panic if dedupped query fails by @ShiKaiWi in #1229
- feat: support aggr push down in distributed query by @Rachelint in #1232
- feat: use real time range to filter memtable by @jiacai2050 in #1233
- fix: when drop table first check its existing by @jiacai2050 in #1234
- feat: support dedup execute physical plan by @ShiKaiWi in #1237
- fix: throw error when create a table with a different table id by @ShiKaiWi in #1238
- chore(deps): bump webpki from 0.22.1 to 0.22.2 by @dependabot in #1239
- chore: upgrade obkv table client by @chunshao90 in #1240
- feat: rewrite
not in
expr toin
by @jiacai2050 in #1236 - feat: improve query path observability by @Rachelint in #1235
- chore: add wechat group qrcode by @chunshao90 in #1245
- fix: bug about logging nothing by @Rachelint in #1250
- chore: fix the missing
example.toml
in README-CN by @zuston in #1253
New Contributors
Full Changelog: v1.2.6...v1.2.7
v1.2.6
Major Features
Query
- Optimize datafusion plan, remove unnecessary node #1150
- Optimize disk cache, avoid panic when cache file is corrupted #1130
- Support PostgreSQL protocol #1138
Remote engine
- Optimize remote server's protocol, reduce payload overhead when write batch is small #1146
WAL
- Open wal parallelly #1129
- Introduce columnar encoding
What's Changed
- chore: remove the codes about the reverse reading by @ShiKaiWi in #1116
- fix: meta service change to meta_runtime by @jiacai2050 in #1121
- feat: add obkv operation metrics by @jiacai2050 in #1122
- chore: check response header when query failed in proxy by @chunshao90 in #1119
- feat: add metrics for prom route query by @jiacai2050 in #1123
- chore: add metric for manifest recover by @Rachelint in #1124
- refactor: use
BinaryExpr
to present regex filter by @tanruixiang in #1128 - feat: make obkv wal opening more parallelly by @Rachelint in #1129
- fix: upgrade obkv cilent to fix panic in mysql crate by @chunshao90 in #1131
- feat: hotspot record remote engine requests by @jiacai2050 in #1127
- chore: bump datafusion by @jiacai2050 in #1133
- chore: add apache license checker by @tanruixiang in #1134
- refactor: refactor query engine by @Rachelint in #1137
- chore: don't trigger image build via tag push by @jiacai2050 in #1139
- feat: support PostgreSQL wire protocol by @holicc in #1138
- chore: bump obkv by @jiacai2050 in #1141
- fix: record remote engine requests by @jiacai2050 in #1140
- fix: avoid panic when the file is corrupted in disk cache by @ShiKaiWi in #1130
- chore: bump to 1.2.6-alpha by @jiacai2050 in #1142
- chore: add apache license template by @tanruixiang in #1143
- chore: update pre-commit config by @tanruixiang in #1145
- feat: remove filter plan node in pipeline by @dust1 in #1126
- refactor: add datafusion default optimizer rules by @jiacai2050 in #1147
- refactor: use new protocol for remote engine service write by @ShiKaiWi in #1146
- refactor: add support_pushdown in table trait by @jiacai2050 in #1150
- refactor: improve the partition compute by @ShiKaiWi in #1151
- refactor: add request id in context by @jiacai2050 in #1153
- feat: teach ceresdb to generate
UnresolvedPartitionedScan
for partitioned table by @Rachelint in #1148 - fix: deadline check by @jiacai2050 in #1159
- test: add integration test for distinct by @jiacai2050 in #1155
- chore: define
QueryEngine
and wrap all things into it by @Rachelint in #1160 - fix: add order by for integration test case by @ShiKaiWi in #1162
- feat: support columar encoding for datums by @ShiKaiWi in #1158
- refactor: pass the
TaskContext
when execute physical plan rather than holding it by @Rachelint in #1163 - chore: add metrics for write logs in wal by @ShiKaiWi in #1166
- chore(deps): bump rustls-webpki from 0.100.1 to 0.100.2 by @dependabot in #1168
- feat: implement compression encoding for columar bytes values by @ShiKaiWi in #1165
- feat: implement columnar encoding for integer by @ShiKaiWi in #1169
- feat: implement boolean columnar encoding by @ShiKaiWi in #1170
- feat: separate metadata from parquet's kv_metadata by @tanruixiang in #1120
- feat: make float as number encoding by @ShiKaiWi in #1171
- chore: modified
Acknowledgements
by @tanruixiang in #1174 - feat: teach ceresdb to convert the inexecutable partitioned scan to executable(resolving process) by @Rachelint in #1161
- chore: add fields metrics by @jiacai2050 in #1176
- chore: remove hybrid related logic by @jiacai2050 in #1172
- feat: implement a basic columnar memory table by @chunshao90 in #1164
- feat: teach ceresdb to encode/decode datafusion physical plan by @Rachelint in #1177
- chore: upgrade nightly rust to 1.72 by @ShiKaiWi in #1184
- refactor: make
enable_partition_table_access
a config by @baojinri in #1182 - chore: modified README-CN's Acknowledgements by @tanruixiang in #1183
- fix: recover memtable misuse ColumnarMemTable by @chunshao90 in #1187
- fix: not consume all the datums if some of them is empty by @ShiKaiWi in #1181
- chore: add metrics for meta data cache hit rate by @ShiKaiWi in #1188
- chore: bump to 1.2.6 by @jiacai2050 in #1192
New Contributors
Full Changelog: v1.2.5...v1.2.6
v1.2.5
Major Features
- Support OceanBase as object store backend(stable now!)
- Compaction
- Improve the stability of CeresDB
- Enhancement on query and write
- Improve the performance of recovery
- make obkv wal opening more parallelly #1129
What's Changed
- feat: expose more rocksdb options by @zouxiang1993 in #1033
- feat: add metrics for memtable by @jiacai2050 in #1036
- feat: support opentsdb put api by @zouxiang1993 in #1037
- test: add integration test for opentsdb put api by @zouxiang1993 in #1043
- feat: sst-metadata support sort by @jiacai2050 in #1042
- feat: use dictionary type to store column by @tanruixiang in #993
- fix: compaction support pick by max_seq by @jiacai2050 in #1041
- feat: sql support dictionary column by @tanruixiang in #1049
- chore(deps): bump google.golang.org/grpc from 1.47.0 to 1.53.0 in /integration_tests/sdk/go by @dependabot in #1052
- refactor: add http write metrics by @baojinri in #1045
- feat: memtable bitmap for null by @ShiKaiWi in #1046
- fix: persist sst id by @baojinri in #1009
- fix: fix kafka wal logs deletion and recovery logic by @Rachelint in #1048
- feat: split operations of
Cluster
andShard
, and serialize operations ofShard
by @Rachelint in #1056 - feat: add record batch mem stats by @jiacai2050 in #1058
- fix: fix fully flushed region open in kakfa wal by @Rachelint in #1061
- fix: directly return when found no table datas to replay by @Rachelint in #1062
- feat: warning when query's timestamp is exceeding table's ttl by @tanruixiang in #1054
- refactor: use varint to encode string/bytes length by @baojinri in #1060
- feat: support query opened shards info by @baojinri in #1070
- fix: make
is_dictionary
optional by @jiacai2050 in #1074 - fix: add missing
dict_id
by @jiacai2050 in #1068 - feat: support cancellation safe future by @ShiKaiWi in #1071
- chore: bump version by @jiacai2050 in #1079
- feat: use manifest updates stats in
TableData
to trigger snapshot by @Rachelint in #1076 - chore: add testcases for time range predicate by @tanruixiang in #1078
- fix: avoid write queue full block by @baojinri in #1065
- refactor: separate common_util to multiple components by @ShiKaiWi in #1077
- refactor: remove type encode by @baojinri in #1073
- fix: ensure shard is opened once by @jiacai2050 in #1080
- feat: avoid prefetching all sst streams at once by @ShiKaiWi in #1069
- fix: separate some modules from
common_types
by @ShiKaiWi in #1084 - feat: add shard status when heartbeat to meta by @jiacai2050 in #1082
- fix: quote column name in prom query filter by @jiacai2050 in #1083
- fix: update pprof version by @tanruixiang in #1088
- refactor: add grpc query nums metrics by @baojinri in #1090
- chore: bump datafusion version by @Rachelint in #1086
- refactor: pprof in toml use workspace by @tanruixiang in #1092
- fix: out of range error in module ObjectStore base on OBKV by @MachaelLee in #1089
- feat: refactor stats method in wal by @Rachelint in #1098
- fix: wrong encoding when write schema is different by @ShiKaiWi in #1103
- feat: Improve performance of thetasketch distinct by @Rachelint in #1102
- feat: support compact table concurrently by @jiacai2050 in #1101
- fix: ensure shard lock is release in corner case by @jiacai2050 in #1104
- chore: bump pprof version by @tanruixiang in #1107
- chore: add actual scan duration stats into chain iterator by @Rachelint in #1109
- fix: disable read parquet page index by @jiacai2050 in #1110
- chore: remove unused codes about the page index by @ShiKaiWi in #1111
- fix: logic of keep scheduling compaction by @baojinri in #1113
- chore: remove space_and_table from the table_impl by @ShiKaiWi in #1114
- feat: query requests dedup by @baojinri in #1100
- fix: obkv wal open by @Rachelint in #1117
Full Changelog: v1.2.4...v1.2.5
v1.2.4
Major Features
-
Support shard based recovery to improve performance #976
-
Improve the stability of Kafka based wal
-
Improve performance of query and write
-
Support more object store backends
-
Other new features
What's Changed
- chore: add rationale part in pr template by @jiacai2050 in #957
- chore: remove duplicated metrics by @jiacai2050 in #956
- refactor: replace *join_all with forloop in flush by @baojinri in #947
- fix: capacity should equal to total / part_num by @jiacai2050 in #960
- chore: add log for stream read of remote engine service by @ShiKaiWi in #961
- feat: ignore row group filter when certain column type by @jiacai2050 in #958
- fix: missing metrics when using chain iterator by @ShiKaiWi in #964
- refactor: open shard impl of
TableEngine
by @Rachelint in #954 - feat: make remote client configurable by @MachaelLee in #948
- feat: use OceanBase as object store by @MachaelLee in #887
- feat: add parquet page filter by @jiacai2050 in #664
- refactor: add grpc write failed counter metric by @baojinri in #963
- feat: expose s3 object store setting by @baojinri in #969
- fix: use uuid as upload_id in obkv object store by @MachaelLee in #970
- refactor: optimize sst filter build to consume less CPU by @zouxiang1993 in #967
- chore: bump xor8 by @jiacai2050 in #972
- feat: use
get_batch
to implementget_range
by @MachaelLee in #971 - refactor: optimize sst iterator and filter build to consume less CPU by @zouxiang1993 in #975
- refactor: disk cache use partition lock by @tanruixiang in #974
- refactor: add generic support to generate hasher by @tanruixiang in #977
- test: add test for hashers by @jiacai2050 in #979
- feat: allow setting multiple kafka boost brokers by @Rachelint in #980
- refactor: add partition num as param in partition lock's init_fn by @tanruixiang in #981
- chore: deny
dbg-macro
in clippy by @Rachelint in #983 - fix: schema mismatch during write by @chunshao90 in #966
- refactor: function args of object store by @baojinri in #978
- chore: reduce kafka logs by @jiacai2050 in #986
- chore: install git in Dockerfile by @jiacai2050 in #992
- refactor: profiling by @chunshao90 in #989
- feat: support region based wal replay by @Rachelint in #976
- fix: datumkind size by @zouxiang1993 in #994
- chore: add integration test about recovery by @Rachelint in #996
- refactor: add grpc handler metrics by @baojinri in #988
- refactor: avoid grpc forwarding twice by @baojinri in #991
- fix: ensure files can only be picked once by @jiacai2050 in #995
- fix: arrow meta data is lost when decode custom meta data by @ShiKaiWi in #1004
- fix: avoid any updates after table is closed by @ShiKaiWi in #998
- fix: add page index for metadata by @MachaelLee in #1000
- feat: use instead forked
rskafka
to support limited retry by @Rachelint in #1005 - chore: add logs and metric to recovery by @Rachelint in #1007
- chore: fix logs and style by @Rachelint in #1011
- chore: bump ceresdbproto by @jiacai2050 in #1021
- fix: avoid crash due to empty sql by @tanruixiang in #1024
- feat: add more details about the sst in sst-metadata tool by @zouxiang1993 in #1019
- revert: "fix: add page index for metadata (#1000)" by @ShiKaiWi in #1026
- fix:
test_suggest_duration_and_ranges()
occasional fail. by @zouxiang1993 in #1028 - chore: bump rust client by @jiacai2050 in #1025
- feat: add page indexes for metadata by @MachaelLee in #1027
- feat: support hex literal by @ShiKaiWi in #1030
- Revert "fix: avoid any updates after table is closed (#998)" by @ShiKaiWi in #1034
- fix: avoid flush too many small sst file by @MachaelLee in #1003
- feat: expose more rocksdb options by @zouxiang1993 in #1033
- feat: add metrics for memtable by @jiacai2050 in #1036
- feat: support opentsdb put api by @zouxiang1993 in #1037
- test: add integration test for opentsdb put api by @zouxiang1993 in #1043
- feat: sst-metadata support sort by @jiacai2050 in #1042
- feat: use dictionary type to store column by @tanruixiang in #993
- fix: compaction support pick by max_seq by @jiacai2050 in #1041
- feat: sql support dictionary column by @tanruixiang in #1049
- chore(deps): bump google.golang.org/grpc from 1.47.0 to 1.53.0 in /integration_tests/sdk/go by @dependabot in #1052
- refactor: add http write metrics by @baojinri in #1045
- feat: memtable bitmap for null by @ShiKaiWi in #1046
- fix: persist sst id by @baojinri in #1009
- fix: fix kafka wal logs deletion and recovery logic by @Rachelint in #1048
- feat: split operations of
Cluster
andShard
, and serialize operations ofShard
by @Rachelint in #1056 - feat: add record batch mem stats by @jiacai2050 in #1058
- fix: fix fully flushed region open in kakfa wal by @Rachelint in #1061
- fix: directly return when found no table datas to replay by @Rachelint in #1062
- feat: warning when query's timestamp is exceeding table's ttl by @tanruixiang in #1054
- refactor: use varint to encode string/bytes length by @baojinri in #1060
Full Changelog: v1.2.2...v1.2.4
v1.2.2
Major Features
- Enhancement on proxy module:
- Improvement of write performance:
- Enhancement on debugging tools:
Bug Fix
- Cluster
- Compaction
- Proxy
- #911 Fix auto create table without
CeresMeta
- #911 Fix auto create table without
- PromQL
- #901 Fix reserve column case when build plan
What's Changed
- chore: add integration test for dropping partition table by @MachaelLee in #870
- chore: remove udeps in CI by @chunshao90 in #877
- feat: impl influxdb api with proxy by @chunshao90 in #875
- feat: place table datas into manifest, update them together by @Rachelint in #863
- fix: remove explanation in PR tmpl by @ShiKaiWi in #883
- chore: bump the version to 1.2.0 and update the config example by @ShiKaiWi in #880
- fix: remove unused write_worker module by @ShiKaiWi in #884
- fix: snappy decode error for prom remote write by @jiacai2050 in #882
- feat: impl forwarding prom write by @chunshao90 in #878
- feat: add metrics for http requests by @jiacai2050 in #876
- chore: add aliyun docker hub by @chunshao90 in #881
- feat: impl mysql query with proxy by @chunshao90 in #886
- fix: new multiple write requests when tag names are different by @jiacai2050 in #888
- chore: remove garbage create table logs by @jiacai2050 in #890
- feat: support merge small write requests by @ShiKaiWi in #879
- refactor: proxy write and route by @chunshao90 in #889
- chore: reflush memory tables after flush failed by @MachaelLee in #891
- chore: bump datafusion by @jiacai2050 in #894
- refactor: proxy sql read by @chunshao90 in #896
- fix: auto create table by @chunshao90 in #895
- chore: adjust log level by @jiacai2050 in #899
- feat: support for disabling router cache by @chunshao90 in #903
- chore: remove parse table name in integration-test by @chunshao90 in #905
- fix: reserve column case when build plan by @jiacai2050 in #901
- feat: simplify the PR tmpl by @ShiKaiWi in #885
- feat: support tokio console for debugging by @Rachelint in #909
- feat: add shard related methods to table engine by @Rachelint in #897
- fix: limit input sst size when compact for old bucket by @jiacai2050 in #910
- fix: auto_create_table without ceresmeta by @chunshao90 in #911
- fix: remove shard from cluster topology after shard closed by @ShiKaiWi in #908
- chore: remove useless code by @chunshao90 in #906
- refactor: use binary bits to determine the number of partitions by @tanruixiang in #919
- refactor: adopt parquet arrow async writer by @ShiKaiWi in #922
- fix: ensure pick at least 2 files for compaction by @jiacai2050 in #915
- feat: Implement multipart upload of object store by @MachaelLee in #913
- refactor: find new columns to improve write performance by @chunshao90 in #918
- chore: replace DefaultHash with AHasher by @tanruixiang in #928
- fix: Optimize write time cost when periodic full compaction by @MachaelLee in #907
- fix: http query support querying partitioned sub-table by @chunshao90 in #932
- chore: add hint about
ahash
usage by @tanruixiang in #931 - feat: add sst-metadata tool to query sst metadata by @jiacai2050 in #927
- chore: add
cargo clippy --fix
to Makefile by @tanruixiang in #937 - chore: bump obkv client version by @MachaelLee in #938
- refactor: use partition lock for memory cache by @tanruixiang in #936
- fix: deadlock when stop keepalive bg task by @ShiKaiWi in #941
- fix: too frequent flush by @ShiKaiWi in #943
- fix: write cancel when flush pending write queue by @ShiKaiWi in #940
- chore: check compact_files is empty by @chunshao90 in #949
- feat: upgrade vergen and remove dep libgit2 by @ShiKaiWi in #951
- chore: bump the version to 1.2.2 by @ZuLiangWang in #952
- fix: the problem of inconsistent error message returned when auto_create_table fails by @chunshao90 in #942
New Contributors
- @tanruixiang made their first contribution in #919
Full Changelog: v1.2.0...v1.2.2
v1.2.0
Upgrade Guide
NOTE: this guide is only used for upgrading CeresDB v1.1.0 to CeresDB v1.2.0, ignore it if you want to deploy a brand new CeresDB cluster with v1.2.0.
In v1.2.0, some incompatible changes are contained, so it's important to upgrade carefully:
- First, stop all the instances of CeresDB and CeresMeta;
- Upgrade the CeresMeta first by referring to the Upgrade Guide of CeresMeta;
- When upgrade the CeresDB, the config should be updated:
- Change the config section
[analytic.compaction_config]
to[analytic.compaction]
if you use it; - Add the config section about the
[cluster_deployment.etcd_client]
if your CeresDB cluster is inWithMeta
mode:
[cluster_deployment.etcd_client]
server_addrs = ['127.0.0.1:2379']
root_path = "/rootPath"
NOTE: the root_path
must be /rootPath
if upgrade from v1.1.0.
4. After updating CeresDB config, start the CeresDB server;
Major Features
- Enhancement on InfluxQL support:
- Support query with aggregators;
- #854 optimize influxql planner to load all tables on demand instead of loading them when initializing the planner;
- Replace influxdb_iox with CeresDB/influxql to remove unnecessary dependencies introduced by
influxdb_iox
;
- Enhancement on proxy module:
- Implement the proxy as a separate module;
- Support forward table requests in proxy;
- Support read and write on partition table in proxy;
- Recover the metadata of partition table from CeresMeta instead of CeresDB in proxy;
- Improvement of write performance:
- #822 solves the problem that compaction schedule triggered by flush procedure may block the write procedure;
- #814 is a big change set, and replaces the write queue with the lock on table level for less write contentions;
- #843 adjusts the flush strategy to avoid frequent write stall;
- #861 brings the level 1 to SSTs, and currently the SST of the level 0, which is generated by flushing, won't contain complex indexes, e.g. xor-filter, leading to faster flushing and less write stall;
- Enhancement on observability:
- #774 introduces the hotspot recorder that can be used to find out the top tables with the highest write/read throughput in a specific time window;
- #827 #831 provides more metrics for all the stages of writing procedure, which can be used to troubleshoot write performance problems, and the grafana dashboard config has been already updated.
- #817 introduces the CPU profiler, and the flamegraph of CPU can be generated easily just by an HTTP request to CeresDB server;
- Support the new mechanism of failover and load balancing, more details can refer to the [Release Note v1.2.0] of CeresMeta:
- #706 #853 implements the distributed locks for shard based on ETCD, and opening and closing of shards is only allowed with the shard lock held, and after that, data corruption caused by multiple shard leaders will be avoided completely;
- Support automatic failover of CeresDB nodes, that is to say, the service recovery can be handled automatically without any manual intervention;
- Support automatic load balance based on consistent hashing, which can ensure that shards are evenly distributed on each node of the cluster when the number of the cluster nodes increases or decreases;
Thanks
Heartfelt thanks for @zouxiang1993's effort in helping troubleshooting write performance issues.
What's Changed
- fix: simplify the logs in query path (#770) by @zouxiang1993 in #776
- fix: remove FixedSizeArena by @ShiKaiWi in #772
- chore(deps): bump time from 0.1.44 to 0.3.15 by @dependabot in #761
- feat: add default schema config by @jiacai2050 in #782
- fix: remove body limit for influxql request by @jiacai2050 in #783
- feat: add integration tests for influxql request by @jiacai2050 in #784
- feat: add java integration tests by @jiacai2050 in #786
- chore(deps): bump log4j-core from 2.8.2 to 2.17.1 in /integration_tests/sdk/java by @dependabot in #789
- chore(deps): bump junit from 4.12 to 4.13.1 in /integration_tests/sdk/java by @dependabot in #788
- fix: timestamp column should not be auto added by @chunshao90 in #787
- chore: route use read_runtime by @chunshao90 in #794
- feat: influxql support show measurements by @jiacai2050 in #795
- chore: bump version to 1.1.0 by @jiacai2050 in #797
- feat: impl getTableInfo in remoteEngine service by @chunshao90 in #793
- feat: add rust sdk test by @Rachelint in #791
- fix: avoid error when disk cache miss by @ShiKaiWi in #790
- feat: impl get_table_info in remote_engine_client by @chunshao90 in #798
- fix: avoid send empty record batch to client by @ShiKaiWi in #796
- chore: remove useless cluster_version by @chunshao90 in #804
- refactor: make tsbs more configurable by @ShiKaiWi in #805
- fix: avoid break when drop wal table failed by @MachaelLee in #806
- feat: implement route interface in http protocol by @MachaelLee in #803
- refactor: bump datafusion, add influxql aggregator support by @jiacai2050 in #778
- fix: add router when build request context for mysql by @jiacai2050 in #809
- feat: hotspot recorder by @MachaelLee in #774
- feat: introduce
TableOperator
to encasulate operation of tables by @Rachelint in #808 - feat: expose rocksdb background jobs option by @jiacai2050 in #812
- feat: integration test support env filter by @jiacai2050 in #811
- chore: bump datafusion by @jiacai2050 in #810
- feat: convert nanoseconds to milliseconds automatically by @dust1 in #780
- feat: add cpu profiler by @jiacai2050 in #817
- feat: upgrade rust-rocksdb by @ShiKaiWi in #821
- feat: avoid blocking the write procedure because of compaction schedule by @ShiKaiWi in #822
- feat: query partition table with proxy in grpc service by @chunshao90 in #802
- feat: influxql support fill syntax by @jiacai2050 in #824
- feat: install dev dependencies in make file by @MachaelLee in #815
- chore: remove unused dependency by @chunshao90 in #823
- feat: replace bg runtime with default and compact runtime by @ShiKaiWi in #826
- chore: add commit id of nightly docker image by @chunshao90 in #829
- chore: add write batch metrics by @jiacai2050 in #827
- feat: http query with proxy by @chunshao90 in #807
- feat: add metrics for write procedure by @ShiKaiWi in #831
- feat: impl prom query with proxy by @chunshao90 in #833
- feat: support write partition table in grpc service by @chunshao90 in #828
- fix: improve remote write performance by using separate runtime by @ShiKaiWi in #837
- chore: update ob client version by @MachaelLee in #835
- chore: remove unnecessary deps by @jiacai2050 in #838
- chore(deps): bump h2 from 0.3.16 to 0.3.17 by @dependabot in #841
- feat: tsbs support more write options by @ShiKaiWi in #839
- feat: support write batch in remote engine by @Rachelint in #840
- feat: serialize table operations by lock rather than queue by @ShiKaiWi in #814
- feat: avoid frequent write stall by @ShiKaiWi in #843
- fix: wrong default write batch size for run_tsbs by @ShiKaiWi in #845
- chore: clean forward configs by @jiacai2050 in #847
- feat: refactor manifest to get snapshot in memory by @Rachelint in #825
- chore: rename module
sql
toquery_frontend
by @Rachelint in #849 - feat: forward request in grpc write by @chunshao90 in #844
- chore: bump obkv client version by @MachaelLee in #850
- feat: support domain name as the ceresdb node addr by @ShiKaiWi in #852...
v1.1.0
Major features
- Initial support for InfluxQL, usage can be found here.
- Introduce proxy module:
- Support auto update schema when a new column occurs in the write request;
- Support forward stream sql query now, usage can be found here.
- Optimize SST write/read process with less memory consumption.
explain analyze [SQL]
statement is able to show the details of scan procedure.
What's Changed
- chore: push nightly image to ghcr.io by @jiacai2050 in #684
- fix: nightly docker image name by @jiacai2050 in #687
- refactor: move grpc create table to sql crates by @jiacai2050 in #689
- chore: image name must be lowercase by @jiacai2050 in #691
- feat: add go sdk tests by @jiacai2050 in #686
- refactor: replace tokio lock with std lock in some sync scenarios by @ShiKaiWi in #694
- docs: change the description of qr-code by @archerny in #697
- fix: Parse string without specify time zone to local time stamp by @MachaelLee in #692
- ci: upgrade the Rust version used in CI by @ShiKaiWi in #700
- refactor: remove table flush policy by @ShiKaiWi in #704
- fix: avoid file purge when they are used in queries by @jiacai2050 in #699
- feat: support rewrite basic raw query in influxql by @Rachelint in #683
- refactor: remove cluster version by @ShiKaiWi in #669
- chore: update pull_request_template.md by @hehex9 in #708
- chore: modify code coverage trigger conditions by @chunshao90 in #709
- chore: add concrete tag to log when write failed by @jiacai2050 in #707
- feat: support the simplest influxql raw query by @Rachelint in #710
- feat: replace native-tls with rustls by @dust1 in #701
- feat: support auto create table config by @MachaelLee in #713
- feat: support integration tests for influxql by @ShiKaiWi in #719
- refactor: remove custom oss impl by @jiacai2050 in #720
- docs: replace qr-code by @archerny in #725
- feat: add influxdb write by @jiacai2050 in #723
- fix: Panicked when OceanBase table client is initialing by @MachaelLee in #728
- chore: update issue template by @jiacai2050 in #731
- feat: new crate
trace_metric
for collecting metrics in read procedure by @ShiKaiWi in #714 - fix: div zero when compaction by @ShiKaiWi in #734
- fix: failure to open a single table does not interrupt the shard's opening process by @MachaelLee in #722
- fix: remove compaction retry when memory limit by @MachaelLee in #739
- feat: http debug api for config by @ShiKaiWi in #733
- feat: reuse logical planner in influxdb_iox by @Rachelint in #730
- fix: start http server after table recovery finished by @jiacai2050 in #741
- feat: return error while encountering unsupport from in influxql by @Rachelint in #745
- feat: don't allow create table which failed when open by @jiacai2050 in #743
- feat: remove replace table level metrics with aggregate metrics by @ShiKaiWi in #740
- feat: introduce proxy module by @chunshao90 in #732
- feat: implement route cache by @MachaelLee in #748
- feat: block all query requests by @MachaelLee in #751
- chore: modify workflows by @chunshao90 in #744
- feat: build sst in stream way by @ShiKaiWi in #747
- feat: auto add column by @chunshao90 in #749
- fix: move table engine proxy to table_engine crate by @Rachelint in #755
- chore: upgrade influxql-logical-planner version and modify CI setting by @chunshao90 in #753
- feat: support split write request to batches for small wal logs by @ShiKaiWi in #754
- chore: use influxdb line protocol in crates by @jiacai2050 in #757
- feat: configurable record batches in flight by @ShiKaiWi in #759
- fix: rename as_bytes to as_byte in ReadableSize (#428) by @zouxiang1993 in #767
- feat: convert the influxql result using influxdb format by @Rachelint in #758
- chore: fix insert-license pre-commit by @jiacai2050 in #756
- chore: replace unfold with async-stream by @chunshao90 in #763
- feat: make influxql query interface compatible with influxdb1.8 by @Rachelint in #773
New Contributors
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Major features
- Support prometheus remote storage protocol
- Query performance improvement and resource control
- Replace bloom filter with XOR8 filter
- Add timeout for query
- Add route cache in remote engine client in table partition
- Support locate partition for
in
sql expression in table partition
- Internal refactor
- Refactor sst module for better extensibility
- Refactor manifest module
- Refactor grpc storage service
- Add intergration test for cluster mode
- Bug fix
- Fix sql identifier case-sensibility
- Correct the order of sync meta snapshot and clean logs in wal on kafka
- Update flushed_sequence_num after compaction
- Fix varbinary type error
What's Changed
- Revert "refactor: separate object store from parquet sst async reader… by @ShiKaiWi in #536
- chore: add version in PartitionInfo by @chunshao90 in #537
- feat: support drop partition table by @chunshao90 in #532
- docs: wrong schema in the static routing example config by @ShiKaiWi in #543
- chore(deps): bump tokio from 1.22.0 to 1.24.1 by @dependabot in #546
- chore(deps): bump lz4-sys from 1.9.3 to 1.9.4 by @dependabot in #545
- docs: update example cluster config by @chunshao90 in #548
- avoid routing for non-existent table by @ShiKaiWi in #551
- fix: Revert "feat: support bloom filter in hybrid format (#479)" by @jiacai2050 in #549
- feat: add open_table_on_shard and close_table_on_shard in meta_event_service by @chunshao90 in #542
- feat: disable do_snapshot when recover table data by @chunshao90 in #550
- feat: use arrow-ipc to communicate between remote server and client by @jiacai2050 in #552
- feat: add timeout for query by @jiacai2050 in #539
- Supplement ceresdb docs by @MachaelLee in #555
- support schema header for http/grpc service by @ShiKaiWi in #544
- feat: add cached router for remote engine client by @Rachelint in #547
- chore: add some metrics for PartitionTable and grpc service by @chunshao90 in #560
- fix: truncated error message by @jiacai2050 in #564
- chore: change the prefix of sub partition table name to "__" by @chunshao90 in #566
- feat: pass partition info to ceresmeta when create table by @chunshao90 in #568
- chore: add code of conduct by @archerny in #575
- chore: add llvm cov codecov by @chunshao90 in #574
- feat: support querying partition tables through select in by @ZuLiangWang in #530
- feat: add permission check for sub tables in table partition by @Rachelint in #541
- feat: improve the release profile and add release-slim profile by @ShiKaiWi in #580
- feat: add some logs for reading sst by @ShiKaiWi in #581
- feat: merge breaking changes to the main branch by @ShiKaiWi in #583
- chore: update the roadmap by @archerny in #584
- chore(deps): bump git2 from 0.14.2 to 0.16.1 by @dependabot in #588
- chore(deps): bump bumpalo from 3.10.0 to 3.12.0 by @dependabot in #586
- chore: add codecov.yml to ignore some dirs that don't need code coverage by @chunshao90 in #591
- feat: implement prom remote storage api by @jiacai2050 in #578
- feat restrict partition num by @Rachelint in #598
- chore: remove docs by @jiacai2050 in #599
- chore(deps): bump warp from 0.3.2 to 0.3.3 by @dependabot in #602
- fix: re-enable SingleDistinctToGroupBy by @jiacai2050 in #594
- chore: fix missing deps in CI by @jiacai2050 in #603
- chore: make nightly image name readable by @jiacai2050 in #604
- fix: remove unnecessary type conversion in MysqlWorker by @Huachao in #606
- chore: remove lto by @jiacai2050 in #609
- feat: print error in datanode by @Rachelint in #613
- chore(deps): bump tokio from 1.24.1 to 1.25.0 by @dependabot in #610
- feat: prevent from pushing down filter of non primary key or ts key by @Rachelint in #611
- test: add testcase for timestamp not in primary key by @jiacai2050 in #619
- feat: adapt new protocol by @ShiKaiWi in #585
- feat: make bloom filter optional on column level by @ShiKaiWi in #615
- primary keys defaults to tsid, timestamp by @jiacai2050 in #621
- chore: add logs by @jiacai2050 in #614
- feat: Upgrade to Datafusion 17 by @chunshao90 in #601
- fix: avoid some unwrap with result by @chunshao90 in #624
- feat: store manifest to oss by @ShiKaiWi in #607
- chore: rename meta module to manifest in analytic crate by @ShiKaiWi in #625
- feat: add BoxError trait to simplify the way to create generic error by @Rachelint in #627
- test: add test for issue 302 by @chunshao90 in #618
- chore: remove useless code by @ShiKaiWi in #630
- chore: modify wal config by @Rachelint in #629
- chore: run ci in parallel by @jiacai2050 in #632
- feat: add cluster mode system table by @ZuLiangWang in #464
- feat: use ConfigOptions to transfer custom settings by @chunshao90 in #639
- docs: udpate readme-cn by @MachaelLee in #600
- feat: replace bloom with xor8 filter by @jiacai2050 in #631
- chore: refacor ceresdb config by @chunshao90 in #640
- feat: support request context by @jiacai2050 in #636
- feat: allow mapping between sequence and kafka offset incomplete by @Rachelint in #642
- fix: correct the order of sync meta snapshot and clean logs in wal on kafka by @Rachelint in #643
- chore: move
proto
toceresdbproto
repo by @chunshao90 in #644 - feat: map shard id to region id in manifest by @Rachelint in #645
- fix: sql identifier default to case-sensitive by @jiacai2050 in #641
- fix: update flushed_sequence_num after compaction by @ShiKaiWi in #651
- refactor: adjust configuration by @ShiKaiWi in #649
- feat: replace column index with id when persisting schema in manifest by @Rachelint in #652
- refactor: reuse client in manifest wal and normal wal by @Rachelint in #656
- fix: fix varbinary type error by @ZuLiangWang in #653
- refactor: use enum instead of version for encoding format in pb by @ShiKaiWi in #655
- chore: fix some clippy errors & add clippy.toml by @ShiKaiWi in #658
- refactor: remove encoder method from WalManager by @ShiKaiWi in #661
- chore: add integration test for cluster mode. by @ZuLiangWang in #646
- feat: Support DataTypes of Date and Time by @MachaelLee in #657
- chore: normalize http api by @jiacai2050 in #659
- fix: xor filter build by @jiacai2050 in #666
- chore: fix CI upload log by @ZuLiangWang in #667
- feat: remove avro encoder by @chunshao90 in #660
- feat: remove status in readme by @MachaelLee in #671
- chore: add rustc version by @jiacai2050 in #672
- test: add partition_table test in integration_test by @chunshao90 in #668
- chore: bump client by @jiacai2050 in #673
- chore: rename some files and configuration by @chunsh...