Releases: pg-sharding/spqr
Releases · pg-sharding/spqr
I.III.I
What's Changed
- Do not skip initsql when qdb persist by @reshke in #570
- Set sslmode: allow in regress test by @NitroLine in #568
- Add GetKeyRange method to proto & EntityMgr by @EinKrebs in #567
- Fix working with multiple distributions in balancer by @EinKrebs in #572
- Correct with coordinator feature example config by @reshke in #574
- Use config to get shard connection data in balancer by @EinKrebs in #579
- Update init.sql by @reshke in #580
- Do not spawn keep alive channel before lock taken by @reshke in #581
- More thorough check for relation detachment when distribution dropped by @EinKrebs in #573
- Delete docker/router/qlog by @reshke in #583
- Refactor init sql code by @reshke in #588
- refactor. addkeyrange* -> createkeyrange* by @reshke in #591
- revoke lease when other coordinator is active by @reshke in #592
- Fix router_with_coordinator.yaml to be in sync with other example con… by @reshke in #593
- Deprecated use of sharding rule proto & service by @EinKrebs in #518
- remove sharding rules server from coordinator by @reshke in #594
- Implement DropKeyRange && DropAllKeyRanges in coordinator grpc service by @reshke in #595
- Do not sleep when feature test fails by @EinKrebs in #598
- Close coordinator-router connections after use by @reshke in #596
- Allow coordinator to serve multiple clients by @reshke in #597
- fix xproto test by @reshke in #600
- Enhance Makefile clean_feature_test targets by @reshke in #601
- Fix memqdb feature flaps by @EinKrebs in #582
- Configure router port via cli by @reshke in #602
- More options in CLI by @reshke in #603
- Rewrite Lock/Delete key range ops to prevent deadlocks by @EinKrebs in #575
- Init from etcd: basic support by @reshke in #590
- Fix linter by @reshke in #605
- Bumps by @dependabot in #585 #604 #606 #607
Full Changelog: 1.3.0...I.III.I
1.3.0
What's Changed
On the way to SPQR 2.0 #431
- Added 'ALTER DISTRIBUTION ATTACH RELATION' command by @EinKrebs in #480
- Removed 'ATTACH TABLE TO DATASPACE' from gram by @EinKrebs in #482
- Fix GetDistribution method in MemQDB by @EinKrebs in #485
- Added 'ALTER DISTRIBUTION ds_id DETACH RELATION rel_id' statement support by @EinKrebs in #484
- Forbid default distribution & coordinator fixes by @EinKrebs in #490
- Support hash functions in distributions. Add distribution key in inte… by @reshke and @ein-krebs in #503 #505
- Removed unused function SetDS from some clients by @EinKrebs in #507
- Enhace yacc parser to accept multiple relations by @reshke in #508
- Forbid setting __spqr__distribution param & removed Distribution-related client methods by @EinKrebs in #509
- Remove sharding rules by @EinKrebs in #510
- More verbose output in 'SHOW distributions' command by @EinKrebs in #514
- Added test for re-attaching relation to distribution by @EinKrebs in #516
- Add 'SHOW realtions' method to console by @EinKrebs in #515
- Removed sharding rules from core & QDB by @EinKrebs in #517
- Detach relations in DROP DISTRIBUTION CASCADE by @EinKrebs in #529
- Deprecate key range upper bound in grpc by @EinKrebs in #527
- Added processing for 'ADD/DROP SHARD' commands by @EinKrebs in #539
- Drop key range upper bound from everywhere by @EinKrebs in #553
- Fix DROP DISTRIBUTION in etcd by @reshke in #565
Shards [re]balancing
- spqr-mover feature tests by @EinKrebs in #534
- Fix spqrdump & add feature tests by @EinKrebs in #526
- Remove balancer by @EinKrebs in #547
- Change key range splitting/unification logic by @EinKrebs in #549
- Rename dumper.feature -> spqrdump.feature by @EinKrebs in #550
- Added new spqr-balancer by @EinKrebs in #552
Extended Protocol improvements
- Fix xproto with advanced routing logic. by @reshke in #456
- Change parameter in TestPrepStmt so no ParameterStatus is sent by @EinKrebs in #466
- Fix logging during database & sharding rules in proto tests by @EinKrebs in #471
- 'maintain_params: true' in xproto tests router config by @EinKrebs in #472
- Add nodata case in xproto by @reshke in #486
- Split bind/exectute logic into stages by @reshke in #487
- Delete non-idempotent tests by @reshke in #491
- Fix some xproto tests by @reshke in #492
- Xproto route on param test by @reshke in #497
Fixes, refactorings, tests, etc.
- Update github actions with dependabot by @secwall in #458
- Bumps by @dependabot in #462 #463 #460 #461 #459 #465 #469 #475 #474 #470 #488 #489 #494 #501 #519 #533 #536 #537 #538 #540 #541 #543 #544 #564 #563
- Fix & refactor methods in memqdb & etcdqdb by @EinKrebs in #478
- Fix regression tests execution by @EinKrebs in #481
- 'SHARDING COLUMN TYPES' -> 'COLUMN TYPES' by @EinKrebs in #473
- Fix typos in by @EinKrebs in #467 #468 #476 #513 #523 #530
- Fixed feature tests execution by @EinKrebs in #493
- Fixed kill feature test by @EinKrebs in #495
- Fix proxy_console feature test by @EinKrebs in #498
- Refactor proxy routing logic: record only distributed column query restrictions by @reshke in #500
- Refactoring by @EinKrebs in #502
- Simplify & refactor insert on target list + insert on values scan rou… by @reshke in #504
- Create Syntax.md by @Denchick in #511
- Fixed SyncRouterMetadata & added test by @EinKrebs in #531
- More tests by @reshke in #535
- Add errors test by @reshke in #542
- Add debug flags to router build by @EinKrebs in #551
- Reset server if case of PostgreSQL fatal or other errors. by @reshke in #554
- Add simple Unit tests for String() method in TXStatus by @NitroLine in #555
- added tests to qLog DumpQuery by @NotAmigo in #556
- fix by @reshke in #558
- Add unit test for connection pooling logic by @reshke in #559
- Add concurrent unit test by @reshke in #560
- fix unittest race by @reshke in #561
- Add flag to configure memqdb persistent setup by @reshke in #562
- added tests to shard utils ShardIDs by @IakimovNutria in #557
New Contributors
- @secwall made their first contribution in #458
- @NotAmigo made their first contribution in #556
- @NitroLine made their first contribution in #555
- @IakimovNutria made their first contribution in #557
Full Changelog: 1.2.0...1.3.0
1.2.0
What's Changed
- Attach table to dataspace by @EinKrebs in #389
- Create Dockerfile and generate protoc, goyacc, regex and mock files by @CBists in #399
- Add TODOs for new contributors by @Denchick in #402
- Add GORM regression tests to CI by @EinKrebs in #404
- Update docs by @Denchick in #405 #401
- Add optional column type definitions for dataspace by @reshke in #406
- Add GOMAXPROCS in coordinator app by @Denchick in #407
- Better test for extended proto by @reshke in #409
- Fix for xproto test by @reshke in #410
- Dockerize xproto tests by @EinKrebs in #411
- Add xproto test for insert with params & small fixes by @EinKrebs in #412
- Add error code by @CBists in #408
- Fix Lock release in UnRouteCB by @EinKrebs in #414
- Minor fixes for extended proto by @reshke in #413
- Fix Lock release in UnRouteCB(finally) by @EinKrebs in #417
- Add text test for extended protocol by @EinKrebs in #418
- Fix saveBind setting in relay.go by @EinKrebs in #420
- Small TryCoordinator fix by @Denchick in #422
- Fix stalling extended protocol tests by @EinKrebs in #421
- Renamed xproto & gorm regression test actions by @EinKrebs in #423
- Cleanup bindRoute & xBuf after query regardless of result by @EinKrebs in #425
- Add userver test by @reshke in #424
- Change prepared statement name to not intrersect with previous test by @reshke in #426
- Fix xproto tests by @EinKrebs in #427
- Change error resp by @CBists in #415
- Rename http_addr to grpc_api_port in coordinator by @Denchick in #432
- Enhace router test by @reshke in #435
- Use uint32 for hash funcs by @Denchick in #437
- Fix x proto queries routing by @reshke in #438
- Implement ListShards and GetShardInfo by @CBists in #439
- Implement GetCoordinator in adapter by @CBists in #440
- Enable error output about launch parameters on command line by @alexnik10 in #436
- Fix unittest & add more test by @reshke in #443
- Add TestCheckColumnRls by @alexnik10 in #442
- Bump lyx by @reshke in #444
- Refactor to support routing of x proto queries by @reshke in #446
- route queries on sublink and in func applications by @reshke in #447
- Try to parse funcation application params for non-sharding rule column. by @reshke in #451
- Bumps by @dependabot in #449 #448 #450 #372 #403
- Bump goland to 1.21 by @reshke in #452
- Drop upper bound in internal logic by @reshke in #445
- Fix coordinator port and small refactoring by @Denchick in #453
- Coordinator auth by @Denchick in #454
- Rename dataspace to distribution and refactor relating code by @reshke in #455
New Contributors
- @alexnik10 made their first contribution in #436
Full Changelog: 1.1.0...1.2.0
1.1.0
What's Changed
- Update README.md by @x4m and @davecramer in #341 #340 #358
- Fix tx status tracking by @reshke in #343
- SELECT DISTINCT tests by @CBists in #331
- Support more spqr specific params, support scatter route hint by @reshke in #328
- Support prefer-replica and reset TSA after client unroute by @reshke in #342
- Improve logging by @reshke in #337
- Add key range with checks, better logging by @Denchick in #339
- Enable dependabot by @Denchick in #345 #347
- fix_regress by @CBists in #346
- Fix unittests and etcd paths by @Denchick in #344
- BEGIN tests by @CBists in #327
- Added regress tests with hibernate by @EinKrebs in #353
- Add error to init key range by @CBists in #352
- Bumps by @dependabot in #360 #348 #362 #371 #379
- Add JDBC regression test by @EinKrebs in #359
- Pre-defined hash functions for key range by @reshke in #361
- Added gorm regression tests by @EinKrebs in #364
- Migrate to Docker Compose v2 by @EinKrebs in #356
- Better by @reshke in #365
- add simple hash function tests by @Denchick in #366
- Support set statement routing + unit test by @reshke in #367
- Fix prepared statement support for multi-statement sessions by @reshke in #368
- Fix extra ready for query message in xproto by @reshke in #369
- fix error from issues by @vovotata in #374
- Fix gram for SPLIT KEY RANGE by @reshke in #377
- Feature tests temporary fix by @Denchick in #378
- Drop e2e tests by @Denchick and @CBists in #397 #349
- Simple
SHOW clients
tests by @Denchick in #380 - Refactor internal params and route hint handling by @reshke in #381
- regenerate protos files by @CBists in #385
- Fix typos by @EinKrebs in #386 #395 #393
- Route
select current_schema
to random shard by @reshke in #382 - Consume message from Lease.KeepAlive channel in TryLockCoordinator by @Denchick in #384
- Information schema routing by @reshke in #383
- Add KILL client feature tests by @Denchick in #394
- Add switch dataspace in schedule by @CBists in #392
- fastfix: run all feature tests by @Denchick in #396
New Contributors
- @x4m made their first contribution in #340
- @davecramer made their first contribution in #358
- @dependabot made their first contribution in #360
- @vovotata made their first contribution in #374
Full Changelog: 1.0.0...1.1.0
1.0.0
What's Changed
- Bump lyx by @reshke in #295
- generate proto by @diPhantxm in #296
- Add gram rules for start trace request by @reshke in #297
- Run coordinator together with router by @diPhantxm in #287
- Regen yacc by @reshke in #299
- Logproxy in router by @debebantur in #298
- Replay test workload by @debebantur in #303
- revert config param in router cmd by @Denchick in #300
- Update .gitignore by @reshke in #304
- route begin transaction read-only to replica by @reshke in #305
- Bump lyx by @reshke in #307
- bump lyx by @Denchick in #308
- Update main.go by @reshke in #310
- Bump lyx by @reshke in #311
- Xproto: extended query protocol interactions. by @reshke in #302
- Bump lyx by @reshke in #312
- Added support for systemd notifications by @EinKrebs in #314
- Add client_encoding to router console by @munakoiso in #315
- Add dataStyle to router console by @munakoiso in #316
- Accept routing hints in comments by @reshke in #317
- Support SET and RESET processing via lyx, support router-only params by @reshke in #321
- Fix for varsset by @reshke in #323
- Bymp lyx, add show support by @reshke in #324
- Run separate read-only port by @reshke in #325
- add test to router_hint by @CBists in #326
- Deploy prepared statement before executing, if not in prepared statem… by @reshke in #329
- Bump lyx version by @reshke in #330
- Dataspace v3 by @CBists in #322
- TPC-C test results by @Denchick in #332
- Cache prepared statements in shard connection, not in shardserver by @reshke in #333
- Do not send too much bind complete by @reshke in #334
- fix index out of range by @Denchick in #335
- Fixes by @reshke in #336
- Update README.md by @Denchick in #338
New Contributors
Full Changelog: 0.1.0...1.0.0
0.1.0
What's Changed
- test sync router after registration in coordinator by @diPhantxm in #267
- Run release job on release instead of tag by @EinKrebs in #273
- add some checks to Split/Unite by @diPhantxm in #275
- Refactor QDB interfaces, add comments to code by @reshke in #274
- check if sharding rule already exists by @diPhantxm in #278
- fix key range intersection checks by @diPhantxm in #276
- ping router before adding to qdb by @diPhantxm in #277
- Bump dependencies by @Denchick in #281
- fix coordinator crash when moving key range twice by @diPhantxm in #282
- Single coord by @debebantur in #280
- fix missing log level on router reload by @nikifkon in #284
- Support X protocol in frontend interactions: Part 1 by @reshke in #286
- Fix typo in spqr_test.go by @EinKrebs in #289
- Refactor Client, Relay and PoolMgr interfaces by @reshke in #288
- Parallelize scenarios by @nikifkon in #285
- add checks to move key range by @diPhantxm in #283
- Run regress tests on 12-15 Postgresql by @nikifkon in #290
- Ignore feature tests artifacts by @EinKrebs in #293
- Added SCRAM auth feature tests by @EinKrebs in #292
- fix possible deadlock on big move by @nikifkon in #291
Full Changelog: 0.0.7...0.1.0
0.0.7
What's Changed
- Show clients on coordinator as well by @nikifkon in #243
- Fix feature test action by @EinKrebs in #245
- Show backend connections and minor refactor by @reshke in #246
- Data transfer by @debebantur in #235
- regard loglevel case-insensitive by @reshke in #248
- Test recover after interrupting keyrange move by @debebantur in #249
- small log level fix by @Denchick in #251
- Make reuse-port configurabale by @reshke in #252
- Correct pre-route connections to spqr-console on router default port by @reshke in #256
- Statistics fix by @debebantur in #254
- Backup memqdb into json file by @nikifkon in #244
- Fix data race when router shutdown by @reshke in #257
- Make
--console
actually work. Check for simultaneous use of console… by @reshke in #258 - fixed data race in statistics by @debebantur in #261
- Coordinator tests by @diPhantxm in #253
- Simple unit tests for client package. Cancel Requiest test by @reshke in #263
- test writing to qdb by @debebantur in #250
- Cleanup mockgen. Move pgx tx/conn mocks to separate folder by @reshke in #264
- Fix release job by @EinKrebs in #247
- Create coordinator.md by @reshke in #225
- Run job on each feature tests by @nikifkon in #268
- Unite admin-console/psql-console pre-routing logic. by @reshke in #259
- Update Router.md by @reshke in #210
- fix init.sql + backup.json logic by @nikifkon in #262
- Coordinator Show clients/pools/backend_connections funcs by @debebantur in #265
- Show router status in
SHOW ROUTERS
command response by @reshke in #266 - Fix dataraces in memqdb by @nikifkon in #260
- fix double lock key range on router when moving data by @diPhantxm in #271
- fix lock/unlock key range wrong namespace in qdb by @diPhantxm in #270
Full Changelog: 0.0.6...0.0.7
0.0.6
What's Changed
- Collect time statistics by @debebantur in #217
- implement where for show clients in admin console by @nikifkon in #216
- Enhace lexer and parser by @reshke in #224
- Drop binary file by @reshke in #223
- Bump lyx by @reshke in #226
- Drop unneede type cast by @reshke in #228
- updated router doc by @debebantur in #227
- Add qparser tests by @reshke in #229
- Handle select target-list-only queries in router and route them to on… by @reshke in #230
- Feature tests infrastructure by @EinKrebs in #231
- Replaced sleep in regress tests with more accurate dependencies in docker-compose.yaml by @EinKrebs in #232
- Fix feature tests by @EinKrebs in #234
- Add GOMAXPROCS parameter to router by @Denchick in #237
- run unittests by @Denchick in #239
- Get rid of old logger, use zerolog everywhere instead by @Denchick in #241
- Show version in command-line and console by @Denchick in #240
- Enhance spqrparser by @reshke in #242
Full Changelog: 0.0.5...0.0.6
0.0.5
Summary
- Fix a lot of performance and leaking memory issues. The performance of the router has significantly increased.
- Enhance logging.
- Add more features in router's administrative console for debug and observability purposes.
What's Changed
- Copy config hosts to local variable to avoid data race by @reshke in #161
- Fix missing return by @reshke in #162
- Add spqrdump tool by @reshke in #164
- Refactor router proxy code, divide responsibilities between metadata … by @reshke in #165
- Add psql proto support to spqrdump by @reshke in #166
- Add tls support to spqrdump by @reshke in #167
- Add linters and stress tests by @Denchick in #163
- Add new tests by @reshke in #170
- Add regression tests local run script by @reshke in #171
- Send GSSAPI negotiation request in startup by @reshke in #172
- Include client id in error message by @reshke in #173
- Fix transaction status reply. Fix double begin transaction case handl… by @reshke in #174
- Refactor code by @reshke in #175
- Add query to error msg in logs by @reshke in #177
- Connection pooling limits for routes. Limit number of concurrent conn… by @reshke in #178
- Better logging by @reshke in #179
- Enhance logging in server connection logic and qdb by @reshke in #180
- fix typos, minor log fixes by @Denchick in #181
- Show clients basics by @reshke in #182
- Fix connection leak in multishard server and fix rw-check by @reshke in #183
- Add package building to release workflow by @EinKrebs in #186
- Discard unsync connections from pool by @reshke in #185
- Drop binary file by @reshke in #187
- Add show backend_connections command by @reshke in #188
- Fix concurrent map access by @reshke in #189
- ensure shard is not nil by @Denchick in #190
- Fix concurrent access to psql client backend connection by @reshke in #191
- Ppof fixes by @reshke in #192
- Cancel client backend requests under mutex by @reshke in #193
- wait for SIGUSR2 signal (pprof) by @gorl in #196
- protect vars from concurrent access by @gorl in #195
- Minor enhancement, show backend_connections command improved by @reshke in #197
- Bump golang to go 1.20 by @reshke in #198
- Add kill client command by @nikifkon in #184
- Refac by @reshke in #199
- Do not parse query twice by @reshke in #203
- Fix regression test by @reshke in #206
- Cache tsa check for a second by @reshke in #204
- Enable different passwords for shards by @debebantur in #205
- Fix typos in README.md by @EinKrebs in #209
- Use zerolog for router by @Denchick in #207
- Default auth rule by @debebantur in #208
- Update README.md by @EinKrebs in #211
- Show user and dbname on
SHOW POOLS
cmd by @reshke in #213 - Update Makefile by @reshke in #214
- moved auth tests by @debebantur in #215
- Implement SCRAM auth by @EinKrebs in #202
- Add console flag and cpu/mem profile settings distinguish by @reshke in #219
- Add hostname to
SHOW POOLS
output by @reshke in #220 - Hide router notice msgs under extended debug setting by @reshke in #212
- Get rid of expensive cgo calls by @reshke in #194
- Fix router main function fatal log msgs by @reshke in #221
- Update github.com/jackc/pgx to v5 by @Denchick in #218
New Contributors
- @gorl made their first contribution in #196
- @nikifkon made their first contribution in #184
- @debebantur made their first contribution in #205
Full Changelog: 0.0.4...0.0.5
0.0.4
What's Changed
- Refactor router frontend function. by @reshke in #127
- Fix yet another couple of log messages by @reshke in #128
- Refactor coordinator grpc services. Rename RoutersService to Topolog… by @reshke in #129
- Support add and list shards cmds in coordctl by @reshke in #130
- Delete router/protos directory by @reshke in #131
- User validation by @diPhantxm in #123
- Drop wal-g/tracelog usage by @Denchick in #132
- Enhance router TLS-related log messages. by @reshke in #133
- Change hostname in tls init to fix verify-full on server side by @munakoiso in #134
- Add comments to code, drop unneded config rats in config-example by @reshke in #135
- Implement insert from select query with constant by @munakoiso in #136
- Improve update queries routing by @munakoiso in #137
- Update pq query to v4 by @reshke in #138
- Accept and parse comments in queries to force-set shard to ruote by @reshke in #139
- Allow encrypted password for backend auth in config by @reshke in #140
- Add daemonize router feature by @reshke in #141
- Listen localhost in psql-proto by default by @reshke in #142
- Fix md5 auth for frontend and backend connections by @reshke in #143
- Route client to admin console on port psql port if dbname is "console" by @reshke in #144
- Add default_route_behaviour setting by @reshke in #145
- Route to shard with respect to client session attr by @reshke in #146
- Copy pgproto3 interfaces after Recieve() them by @reshke in #147
- Fix default target-session-attrs by @Denchick in #148
- Add transactions and target-session-attrs tests by @Denchick in #149
- Support cancel proto msgs by @reshke in #150
- Reload logger when getting SIGHUP SIGUSR1 signals by @Denchick in #151
- Check column name with rules while routing. by @reshke in #152
- Make SPQR tests independent by @Denchick in #154
- Add single shard join test and fixes by @reshke in #153
- Make console tests better: drop all objects created during test by @reshke in #155
- More logging by @reshke in #156
- Do not raise error if shard host is down by @reshke in #157
- Use client id in log record while routing and acquiring connections by @reshke in #158
- Even better logging by @reshke in #159
- More logging by @reshke in #160
New Contributors
- @munakoiso made their first contribution in #134
Full Changelog: 0.0.3...0.0.4