What's Changed
Highlights
- The first implementation of Remote WAL
- A new engine, the Metrics Engine, which is designed to address issues caused by numerous small tables in monitoring scenarios
Features
- feat: add downgrade leader region step by @WenyXu in #2792
- feat: add update metadata step for upgrading candidate region by @WenyXu in #2811
- feat: implement PromQL set op AND/UNLESS by @waynexia in #2839
- feat: do not concat batches in MergeReader by @evenyag in #2833
- feat: add update metadata step for rollbacking downgraded region by @WenyXu in #2812
- feat: add upgrade candidate region step by @WenyXu in #2829
- feat: add align to / interval support in range query by @Taylor-lagrange in #2842
- feat(inverted_index.search): add fst applier by @zhongzc in #2851
- feat: support
time()
and related functions in PromQL by @waynexia in #2854 - feat: sqlness for decimal128 by @QuenKar in #2822
- feat(inverted_index.search): add fst values mapper by @zhongzc in #2862
- feat: drop if exists by @tisonkun in #2859
- feat: handle the downgrade region instruction by @WenyXu in #2855
- feat(inverted_index.search): add index applier by @zhongzc in #2868
- feat: update dashboard to v0.4.2 by @ZonaHex in #2882
- feat!: support table ddl for custom storage by @NiwakaDev in #2733
- feat: impl date_add/date_sub functions by @killme2008 in #2881
- feat(inverted_index.format): add writer by @zhongzc in #2900
- feat: set default debug level of release and dev profiles to 1 by @waynexia in #2916
- feat!: do not get TZ info from server local env by @waynexia in #2905
- feat: builder to vector without resetting by @QuenKar in #2915
- feat: add build() function to return the database build info by @Dysprosium0626 in #2919
- feat: update dashboard to v0.4.3 by @ZonaHex in #2926
- feat: sql with influxdb v1 result format by @fengjiachun in #2917
- feat: upgrade rustls library family, opensrv-mysql and pgwire by @sunng87 in #2927
- feat: add log and tracing layers for Copy From statement by @WenyXu in #2929
- feat: adds some tables to information_schema by @killme2008 in #2935
- feat: create table procedure for metric engine, part 1 by @waynexia in #2943
- feat(inverted_index.create): add read/write for external intermediate files by @zhongzc in #2942
- feat: fetch manifests in concurrent by @WenyXu in #2951
- feat(inverted_index.create): add external sorter by @zhongzc in #2950
- feat(remote_wal): add skeleton for remote wal related to meta srv by @niebayes in #2933
- feat(mito): add
skip_wal_replay
option to OpenRegionRequest by @WenyXu in #2955 - feat(inverted_index.create): add index creator by @zhongzc in #2960
- feat!: MetricsEngine table route (part 1) by @MichaelScofield in #2952
- feat(remote_wal): add skeleton for remote wal related to datanode by @niebayes in #2941
- feat: allow initializing regions in background by @WenyXu in #2930
- feat: use explicitly set table id by @MichaelScofield in #2945
- feat(metric-engine): open and close metric regions by @waynexia in #2961
- feat: add CatchupRequest to engine by @WenyXu in #2939
- feat: adds build_info table by @killme2008 in #2969
- feat: Support export metric in remote write format by @Taylor-lagrange in #2928
- feat: add a default internal schema by @sunng87 in #2974
- feat: update dashboard to v0.4.4 by @ZonaHex in #2978
- feat(remote_wal): implement topic allocation by @niebayes in #2970
- feat: support fetch ranges in concurrent by @QuenKar in #2959
- feat: add
skip_wal_replay
to OpenRegion instruction by @WenyXu in #2977 - feat(remote_wal): impl kafka log store by @niebayes in #2971
- feat: add '--store-key-prefix' to support multiple meta instances can use the same etcd backend by @zyy17 in #2988
- feat: support querying metric engine from frontend by @waynexia in #2987
- feat: export runtime metric to promethues by @SSebo in #2985
- feat: adopt human-panic crash reports by @tisonkun in #2996
- feat: convert
FileMetaData
toParquetMetaData
by @QuenKar in #2980 - feat: make logging to stdout configurable by @MichaelScofield in #3003
- feat: replace ahash with murmur3 on generating tsid by @waynexia in #3007
Refactors
- refactor: replace usage of ArrayData by clone by @QuenKar in #2827
- refactor: DataType name function by @QuenKar in #2836
- refactor: add builder for Frontend by @MichaelScofield in #2849
- refactor: RegionEngine::handle_request always returns affected rows by @tisonkun in #2874
- refactor: use downgrading the region instead of closing region by @WenyXu in #2863
- refactor: make instance started separately by @MichaelScofield in #2911
- refactor: make sequence bounded with max value by @MichaelScofield in #2937
- refactor: remove reduntant
.compat()
by @zhongzc in #2949 - refactor: greptimedb cluster sqlness test scripts by @daviderli614 in #2947
- refactor: remove unused code for pruning row groups by @zhongzc in #2973
- refactor(remote_wal): entry id usage by @niebayes in #2986
- refactor: hide
RegionRoute
behindTableRouteValue
by @MichaelScofield in #2989 - refactor(remote_wal): add StandaloneWalConfig by @WenyXu in #3002
Fixes
- fix: sort result of sqlness case decimal_ops by @waynexia in #2867
- fix: correct the previously unsuccessful decimal_ops sort result fix by @zhongzc in #2869
- fix: fragile integration tests by @MichaelScofield in #2870
- fix: type conversion rule reverses operands by @waynexia in #2871
- fix: replace opendal
PrometheusLayer
by @Taylor-lagrange in #2861 - fix: add new column as primary key can't work by @killme2008 in #2876
- fix: mysql version function result by @tisonkun in #2884
- fix: align
linear_regression
to PromQL's behavior by @waynexia in #2879 - fix: handle heartbeat shutdown gracefully by @tisonkun in #2886
- fix: re-enable ignored case test_query_prepared by @waynexia in #2892
- fix: support tailing commas in SQL by @Taylor-lagrange in #2913
- fix: return error to client if prepare stmt param not match by @MichaelScofield in #2918
- fix:
date
-interval
sqlness by @QuenKar in #2912 - fix: use linear interpolation to implement range LINEAR fill strategy by @Taylor-lagrange in #2903
- fix: typos and bit operations by @QuenKar in #2944
- fix!: remove range calendar as
To
option by @Taylor-lagrange in #2940 - fix: change range query time slot to
[align_ts, align_ts + range)
by @Taylor-lagrange in #2938 - fix: correct the error message for snappy compress by @zhongzc in #2956
- fix: blocking read timer lack of parameter by @QuenKar in #2954
- fix: wrong link for selector by @killme2008 in #2958
- fix: auto create datatype_extension missing by @QuenKar in #2953
- fix: correctly decode mysql timestamp binary value by @MichaelScofield in #2946
- fix: duplicate information_schema by @killme2008 in #2979
- fix: install nextest bin by @v0y4g3r in #2990
- fix: update doc label on pr edit by @waynexia in #3005
Others
- chore: add logs and metrics by @WenyXu in #2858
- chore: correct closeable typos by @WenyXu in #2860
- chore: unify the meta metrics styling by @WenyXu in #2875
- chore: tweak status code of promql errors by @waynexia in #2883
- chore: update storage config example by @NiwakaDev in #2887
- chore: ignore MySQL client sent SELECT $$ by @tisonkun in #2896
- chore: clean up unused errors by @killme2008 in #2901
- chore: remove useless storage apis by @niebayes in #2904
- chore: return json body under http status 401 by @shuiyisong in #2924
- chore: update toolchain to 20231219 by @waynexia in #2932
- chore: SelectorType use snake_case by @fengjiachun in #2962
- chore: remove debug = 1 of dev profile by @WenyXu in #2966
- chore: move some commonly referenced crates to workspace Cargo.toml by @niebayes in #2981
- chore: setup kafka standalone in coverage test by @WenyXu in #2984
- chore: bump version to 0.5.0 by @waynexia in #3000
- chore(ci): auto doc labeler job by @waynexia in #2998
- docs: update getting-started document link by @nicecui in #2843
- ci: set 'omitBody' true when releasing by @zyy17 in #2845
- test: add tests for region migration procedure by @WenyXu in #2857
- ci: prevent running nightly CI in forks by @tisonkun in #2898
- perf(mito): scan SSTs and memtables in parallel by @evenyag in #2852
- ci: prevent running nightly FT in forks by @tisonkun in #2906
- style: rename
*Adaptor
to*Adapter
by @waynexia in #2914 - test: add more tests for region migration procedure by @WenyXu in #2895
- ci: able to choose cargo profile in dev-build action by @MichaelScofield in #2923
- ci: correctly find the binary in dev-build when using "dev" profile by @MichaelScofield in #2925
- test: fix a wronged test script by @discord9 in #2934
- ci: add user-doc label checker by @nicecui in #2967
New Contributors
- @Dysprosium0626 made their first contribution in #2919
Full Changelog: v0.4.4...v0.5.0