-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
connection pooling for duckdb #1405
Conversation
Modified priority worker test to test for concurrency and priority correctness. Still there are pending things to take care of -
|
(Moved to top) |
Just a note that I experienced a bug when using this PR with pool size > 1 when doing an initial reconcile against an empty DB. I wonder if some information is not propagated across connections right away. Let's investigate further before merging. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Also note the linter errors in CI
runtime/drivers/duckdb/duckdb.go
Outdated
return nil, err | ||
} | ||
// 1 extra for meta connection to be used for metadata queries like catalog and dry run queries | ||
db.SetMaxOpenConns(cfg.PoolSize + 1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be db.SetMaxOpenConns(cfg.PoolSize)
so we don't create more connections than expected (this can be useful when debugging). Instead, make the semaphore size:
semSize := cfg.PoolSize - 1
if semSize < 1 {
semSize = 1
}
In the case where cfg.PoolSize
is 1, it means the meta calls may block a while, but that's fine (since for prod use cases, we will use pool size > 1).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
using the built in pool so semSize not needed anymore, for now removed metaConn altogether. Will probably handle that separately
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when using built in pool, we will have to create and keep metaConn
explicitly as we don't have control over the pool
runtime/drivers/duckdb/duckdb.go
Outdated
go func() { | ||
err := conn.Close() | ||
if err != nil { | ||
c.logger.Error("error releasing connection", zap.Error(err)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we just panic here ?
if err != nil { | ||
return err | ||
} | ||
defer func() { _ = release() }() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why ignore the error from release ? Should we log it in case there is any connection leak ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess we should. Looking in database/sql
, it looks like the only error it can return is if you try to close the conn twice, so not handling it shouldn't lead to any leaks currently
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess Go code does not throw any runtime exceptions/errors like Java so it can be ignored and in case of exceptional situations like low memory etc. it should already panic and print in the logs? Only caveat is if in the future, the API changes and starts throwing new error but not a priority to handle now, can be added in the backlog.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, panics will always propagate. Generally, it's good to handle all errors and only ignore specific named errors, since as you mention, more errors may be returned in future. But for defer
statements, I often see people pick simpler code. I added a backlog to add good handling for all defer errors.
pcs = append(pcs, &pc) | ||
i++ | ||
} | ||
defer rows.Close() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we catch and log error from rows.Close()
instead of ignoring
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In a perfect world, yeah. We have this many places, we can add a backlog item for it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is now in a mergable state. I've also done an experience pass, and it seems good. Don't want to merge it until after code freeze, though. Will also do a second review with fresh eyes tomorrow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Second review looks good as well
* Use RefreshedOn in runtime query cache (#1559) * Remove timestamp required from CTA buttons * Dashboard without time dimension * Remove logs * Add lint fixes * Address review comments * Use single container component * Add grid to measures * Increase max size for measures * Metrics View: Value exclusion should keep nulls (#1535) * exclude with nulls * exclude with nulls * exclude with nulls for timeseries * Add explicit is null check instead of coalesce with UUID * fix failing test * Adress review + Resolve filter code duplication Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Remove redundant import * Fix imports * Remove time params * Connection pool for DuckDB (#1405) * connection pooling for duckdb * close channel * set pool size * fix test * fix stopping of pw * formatting * start mulitple jobs are getting unpaused * conn pool dequeue * fix test * better concurrency test of priority worker * comment * Merging with context affinity * Pass pool size through DSN * Formatting * Added a priority semaphore * Update duckdb driver to use priority semaphore * Maybe fix failing test case * Document priorityqueue.Semaphore * Bind time series to one connection * Use sqlx.Conn + fix hanging errors * Temporarily committing spending benchmark in examples * fix failing test * formatting * Commit js benchmark * Removing benchmarks * duckdb driver fix, tests with pool size > 1, separate meta connection * use conn from pool in migrate * use single conn in migrate * use built in connection pool * fix conn release race condition * fix linter errors * fmt * gofmt fix * gofmt fix * fix tests * upgrade duckdb driver * Meta and OLAP sems; ensuring safe release * Use WithConnection for temporary tables * formatting * Review Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Improve handling of time ranges (#1560) * Improve handling of time ranges (maybe) * Run prettier * Update tests * Update web-local/src/lib/temp/time-control-types.ts Co-authored-by: Hamilton Ulmer <[email protected]> * Make `rill init` Fail When Passed Arguments (Probably By Accident) (#1566) Make `rill init --example <example>` fail instead of quietly using the "default" example project when used instead of `--example=example`. The latter form is required due to a bug in cobra. See #1398 (comment) * Left align measures * Change copy, add tooltips * Remove CTA from metrics no timeseries icon * dyanamic number of columns upto 3 based on measures * Fix nightly builds * Remove old runtime release CI * more from r to f for integer formatting in summary numbers (#1572) * Show error on refresh failure (#1492) * Show error on refresh failure * Improving error display in sources * Fix lint * Fixing navigation blocked during profiling (#1561) * Release notes 0.18 (#1565) * release notes for 0.18 * Update 0.18.md Co-authored-by: Marissa Gorlick <[email protected]> * Handle long labels * Increase margin top to 20 * For measures with timeseries align center * Align measures on the left side * Align measures with timecharts * Align measures from the top * Increase gap between measures * use observer in measures container * changes the edit tooltip (#1575) * When a model query is blank, hide the table & inspector (#1568) * adds in a placeholder when a model is blank * ensures preview table is hidden when model is empty * makes a more dramatic yet more subtle style for empty models * Fix S3 Region not recognised (#1583) * changing aws.region to region * fixing ci * Add S3/GCS region to docs (#1581) * Add region to docs As proposed in #1577 * Update project-files.md * Update project-files.md * Check rows.Err() after all relevant queries (#1540) * check rows.Err() after all relevant DB queries * removed extra lines * fixed test cases * requested changes * adding err check for drivers.Result * revert deleted code * Use measure height and prevent overflow * Dispatch trigger for nightlies (#1586) * Testing trigger dynamics * Enable manual nightly trigger * Typo * Improve comments * Glob support for local_file, S3 and GCS (#1578) * initial commit * download plus ingestion support * adding config for limit * linting issues * linting issues * const name declaration * ut fix * config fix * config fix * batch mode fix * read parquet changes * ingestion by folder * review comments * unused code * relative local paths * local invalid path handling * review nit picks * review nit picks * Update error messages Co-authored-by: anshul khandelwal <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Adding gci for import grouping (#1587) * adding gci for import groupin * cleanup requested changes * Run DuckDB tests in CI (#1584) * fix olap test * run duckdb olap test always * Reflow measures on window resize * Fix spinner alignment * reflow on resize * Use max content for measures Co-authored-by: Benjamin Egelund-Müller <[email protected]> Co-authored-by: Egor Riashin <[email protected]> Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Parag Jain <[email protected]> Co-authored-by: Hamilton Ulmer <[email protected]> Co-authored-by: Christian G. Warden <[email protected]> Co-authored-by: Aditya Hegde <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: rakeshsharma14317 <[email protected]> Co-authored-by: marcelteraflow <[email protected]> Co-authored-by: Anshul <[email protected]> Co-authored-by: anshul khandelwal <[email protected]>
* queries-caching-impl * queries-caching-impl * caching for time grain query * caching: column numeric histogram * caching: column numeric histogram * caching: table cardinality fix * caching: rug histogram * caching: time range * caching: time range * caching: column cardinality * caching: rollup interval * caching: column with all nulls * caching: code style * caching: rug * caching: code style * caching: ts fix * caching: ts fix * caching: ts fix * caching: code style * caching: timeseries * caching: table columns * caching: metricsview totals * caching: metricsview toplist * caching: metricsview toplist * caching: metricsview timeseries * Making metrics dashboard less strict * adds rudimentary dashboard support for no time series * Removing model path filter (#1488) * Adding support for reading public buckets (#1491) * Refresh when local file changes (#1489) * Refresh when local file changes * Fixing test failure * spaces in timestamp column name (#1490) * spaces in timestamp column name * spaces in timestamp column name * spaces in timestamp column name Co-authored-by: egor-ryashin <[email protected]> * npm install * Temporarily disable docker releases * Setup golangci-lint in rill-developer (#1417) * golangci-lint initial commit * added new line * adding .golangci.yml config * latest version and comment GH action on pull_request * go version update * go version update + prettier * for current branch * typo * run with config file * adding timeout * commenting disable all * default run * setup go changes * go setup changes * lint version latest * Adding golangci.yml file * with config arg * adding goreportcard-action * removed some linters from enable list * fix suggested by golangci linters * updaing GH action args with config and verbose * errors fix by linters * trigger ci check * trigger ci check * trigger ci check * trigger ci check * fixed errcheck issues * on push main branch and pull_request * adding golangci-lint-setup for test * golangci-lint error fix * more fixes * fixed statuscode const etc * fixes after merging with main * PR requested changes * Fixed PR changes and other errors * prettier on go-test.yml * Final changes * fixed PR requested changes * fixed some more changes after merge with main branch * reverted errcheck and gofumpt and fixed the changes * gofmt * updated CONTRIBUTING.md for golint setup * updated GH actions for golint * test action * fixed some more errors from linters * updated GH action and fixed typo * udpated CONTRIBUTING.md for golint instructions * changes in GH actions for golint * Release notes 0.17 (#1497) * release notes for 0.17 * fixing static image in docusaurus * Maybe fixes builds Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Update 0.17.md * Fix suppress tooltip not being reactive (#1493) * [Dashboard] Fix jarring rearrange when include/exclude is toggled from filter pills (#1494) * Fixing misused older types * Fixing the jarring rearrange on toggling include/exclude * Update help links to new docs structure (#1499) Co-authored-by: Marissa Gorlick <[email protected]> * Move design system to `web-common` (#1486) * Move files from `web-local` to `web-common` * Move files out of design system and into app * Move utils into `web-common` * Add typescript & eslint config files to `web-common` * Update imports (design system) * Delete blank file * Update imports (application) * Move duckdb data types to `web-common` * Fix import of chip component * Fix two missing imports * Edit path in the menu component's README * Add `svelte` as a `web-common` dependency * Remove old paths from typscript and vite configs * Fix imports in `/dev` routes * Add back imports to fix lint * Add `web-common` to tailwind config * Move to one top-level `eslint` file * Move `data-types` into `web-common/components` * Move `data-graphic` into `web-common/components` * Bugfix: show nav border * Add more data file extensions to `.prettierignore` * Fix prettier warning * Publish nightly docker image (#1500) * golint improvements (#1502) * skip proto files and only-new-issues is set true * testing with adding few errors * revert errors and commented dupl * adding dupl * dupl with thresold setting * removed dupl linter * removing only-new-issues * Improved dimension validations * Addressing PR comments * Enable dashboards with no time dimension (#1544) * Use RefreshedOn in runtime query cache (#1559) * Remove timestamp required from CTA buttons * Dashboard without time dimension * Remove logs * Add lint fixes * Address review comments * Use single container component * Add grid to measures * Increase max size for measures * Metrics View: Value exclusion should keep nulls (#1535) * exclude with nulls * exclude with nulls * exclude with nulls for timeseries * Add explicit is null check instead of coalesce with UUID * fix failing test * Adress review + Resolve filter code duplication Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Remove redundant import * Fix imports * Remove time params * Connection pool for DuckDB (#1405) * connection pooling for duckdb * close channel * set pool size * fix test * fix stopping of pw * formatting * start mulitple jobs are getting unpaused * conn pool dequeue * fix test * better concurrency test of priority worker * comment * Merging with context affinity * Pass pool size through DSN * Formatting * Added a priority semaphore * Update duckdb driver to use priority semaphore * Maybe fix failing test case * Document priorityqueue.Semaphore * Bind time series to one connection * Use sqlx.Conn + fix hanging errors * Temporarily committing spending benchmark in examples * fix failing test * formatting * Commit js benchmark * Removing benchmarks * duckdb driver fix, tests with pool size > 1, separate meta connection * use conn from pool in migrate * use single conn in migrate * use built in connection pool * fix conn release race condition * fix linter errors * fmt * gofmt fix * gofmt fix * fix tests * upgrade duckdb driver * Meta and OLAP sems; ensuring safe release * Use WithConnection for temporary tables * formatting * Review Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Improve handling of time ranges (#1560) * Improve handling of time ranges (maybe) * Run prettier * Update tests * Update web-local/src/lib/temp/time-control-types.ts Co-authored-by: Hamilton Ulmer <[email protected]> * Make `rill init` Fail When Passed Arguments (Probably By Accident) (#1566) Make `rill init --example <example>` fail instead of quietly using the "default" example project when used instead of `--example=example`. The latter form is required due to a bug in cobra. See #1398 (comment) * Left align measures * Change copy, add tooltips * Remove CTA from metrics no timeseries icon * dyanamic number of columns upto 3 based on measures * Fix nightly builds * Remove old runtime release CI * more from r to f for integer formatting in summary numbers (#1572) * Show error on refresh failure (#1492) * Show error on refresh failure * Improving error display in sources * Fix lint * Fixing navigation blocked during profiling (#1561) * Release notes 0.18 (#1565) * release notes for 0.18 * Update 0.18.md Co-authored-by: Marissa Gorlick <[email protected]> * Handle long labels * Increase margin top to 20 * For measures with timeseries align center * Align measures on the left side * Align measures with timecharts * Align measures from the top * Increase gap between measures * use observer in measures container * changes the edit tooltip (#1575) * When a model query is blank, hide the table & inspector (#1568) * adds in a placeholder when a model is blank * ensures preview table is hidden when model is empty * makes a more dramatic yet more subtle style for empty models * Fix S3 Region not recognised (#1583) * changing aws.region to region * fixing ci * Add S3/GCS region to docs (#1581) * Add region to docs As proposed in #1577 * Update project-files.md * Update project-files.md * Check rows.Err() after all relevant queries (#1540) * check rows.Err() after all relevant DB queries * removed extra lines * fixed test cases * requested changes * adding err check for drivers.Result * revert deleted code * Use measure height and prevent overflow * Dispatch trigger for nightlies (#1586) * Testing trigger dynamics * Enable manual nightly trigger * Typo * Improve comments * Glob support for local_file, S3 and GCS (#1578) * initial commit * download plus ingestion support * adding config for limit * linting issues * linting issues * const name declaration * ut fix * config fix * config fix * batch mode fix * read parquet changes * ingestion by folder * review comments * unused code * relative local paths * local invalid path handling * review nit picks * review nit picks * Update error messages Co-authored-by: anshul khandelwal <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Adding gci for import grouping (#1587) * adding gci for import groupin * cleanup requested changes * Run DuckDB tests in CI (#1584) * fix olap test * run duckdb olap test always * Reflow measures on window resize * Fix spinner alignment * reflow on resize * Use max content for measures Co-authored-by: Benjamin Egelund-Müller <[email protected]> Co-authored-by: Egor Riashin <[email protected]> Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Parag Jain <[email protected]> Co-authored-by: Hamilton Ulmer <[email protected]> Co-authored-by: Christian G. Warden <[email protected]> Co-authored-by: Aditya Hegde <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: rakeshsharma14317 <[email protected]> Co-authored-by: marcelteraflow <[email protected]> Co-authored-by: Anshul <[email protected]> Co-authored-by: anshul khandelwal <[email protected]> * Check for zero heights * address PR comments * Increase column gap and fix node bug Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Hamilton Ulmer <[email protected]> Co-authored-by: Egor Riashin <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> Co-authored-by: rakeshsharma14317 <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Eric P Green <[email protected]> Co-authored-by: Himadri Singh <[email protected]> Co-authored-by: Dhiraj Barnwal <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Parag Jain <[email protected]> Co-authored-by: Christian G. Warden <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: marcelteraflow <[email protected]> Co-authored-by: Anshul <[email protected]> Co-authored-by: anshul khandelwal <[email protected]>
* queries-caching-impl * queries-caching-impl * caching for time grain query * caching: column numeric histogram * caching: column numeric histogram * caching: table cardinality fix * caching: rug histogram * caching: time range * caching: time range * caching: column cardinality * caching: rollup interval * caching: column with all nulls * caching: code style * caching: rug * caching: code style * caching: ts fix * caching: ts fix * caching: ts fix * caching: code style * caching: timeseries * caching: table columns * caching: metricsview totals * caching: metricsview toplist * caching: metricsview toplist * caching: metricsview timeseries * Making metrics dashboard less strict * adds rudimentary dashboard support for no time series * Removing model path filter (#1488) * Adding support for reading public buckets (#1491) * Refresh when local file changes (#1489) * Refresh when local file changes * Fixing test failure * spaces in timestamp column name (#1490) * spaces in timestamp column name * spaces in timestamp column name * spaces in timestamp column name Co-authored-by: egor-ryashin <[email protected]> * npm install * Temporarily disable docker releases * Setup golangci-lint in rill-developer (#1417) * golangci-lint initial commit * added new line * adding .golangci.yml config * latest version and comment GH action on pull_request * go version update * go version update + prettier * for current branch * typo * run with config file * adding timeout * commenting disable all * default run * setup go changes * go setup changes * lint version latest * Adding golangci.yml file * with config arg * adding goreportcard-action * removed some linters from enable list * fix suggested by golangci linters * updaing GH action args with config and verbose * errors fix by linters * trigger ci check * trigger ci check * trigger ci check * trigger ci check * fixed errcheck issues * on push main branch and pull_request * adding golangci-lint-setup for test * golangci-lint error fix * more fixes * fixed statuscode const etc * fixes after merging with main * PR requested changes * Fixed PR changes and other errors * prettier on go-test.yml * Final changes * fixed PR requested changes * fixed some more changes after merge with main branch * reverted errcheck and gofumpt and fixed the changes * gofmt * updated CONTRIBUTING.md for golint setup * updated GH actions for golint * test action * fixed some more errors from linters * updated GH action and fixed typo * udpated CONTRIBUTING.md for golint instructions * changes in GH actions for golint * Release notes 0.17 (#1497) * release notes for 0.17 * fixing static image in docusaurus * Maybe fixes builds Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Update 0.17.md * Fix suppress tooltip not being reactive (#1493) * [Dashboard] Fix jarring rearrange when include/exclude is toggled from filter pills (#1494) * Fixing misused older types * Fixing the jarring rearrange on toggling include/exclude * Update help links to new docs structure (#1499) Co-authored-by: Marissa Gorlick <[email protected]> * Move design system to `web-common` (#1486) * Move files from `web-local` to `web-common` * Move files out of design system and into app * Move utils into `web-common` * Add typescript & eslint config files to `web-common` * Update imports (design system) * Delete blank file * Update imports (application) * Move duckdb data types to `web-common` * Fix import of chip component * Fix two missing imports * Edit path in the menu component's README * Add `svelte` as a `web-common` dependency * Remove old paths from typscript and vite configs * Fix imports in `/dev` routes * Add back imports to fix lint * Add `web-common` to tailwind config * Move to one top-level `eslint` file * Move `data-types` into `web-common/components` * Move `data-graphic` into `web-common/components` * Bugfix: show nav border * Add more data file extensions to `.prettierignore` * Fix prettier warning * Publish nightly docker image (#1500) * golint improvements (#1502) * skip proto files and only-new-issues is set true * testing with adding few errors * revert errors and commented dupl * adding dupl * dupl with thresold setting * removed dupl linter * removing only-new-issues * Improved dimension validations * Addressing PR comments * Enable dashboards with no time dimension (#1544) * Use RefreshedOn in runtime query cache (#1559) * Remove timestamp required from CTA buttons * Dashboard without time dimension * Remove logs * Add lint fixes * Address review comments * Use single container component * Add grid to measures * Increase max size for measures * Metrics View: Value exclusion should keep nulls (#1535) * exclude with nulls * exclude with nulls * exclude with nulls for timeseries * Add explicit is null check instead of coalesce with UUID * fix failing test * Adress review + Resolve filter code duplication Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Remove redundant import * Fix imports * Remove time params * Connection pool for DuckDB (#1405) * connection pooling for duckdb * close channel * set pool size * fix test * fix stopping of pw * formatting * start mulitple jobs are getting unpaused * conn pool dequeue * fix test * better concurrency test of priority worker * comment * Merging with context affinity * Pass pool size through DSN * Formatting * Added a priority semaphore * Update duckdb driver to use priority semaphore * Maybe fix failing test case * Document priorityqueue.Semaphore * Bind time series to one connection * Use sqlx.Conn + fix hanging errors * Temporarily committing spending benchmark in examples * fix failing test * formatting * Commit js benchmark * Removing benchmarks * duckdb driver fix, tests with pool size > 1, separate meta connection * use conn from pool in migrate * use single conn in migrate * use built in connection pool * fix conn release race condition * fix linter errors * fmt * gofmt fix * gofmt fix * fix tests * upgrade duckdb driver * Meta and OLAP sems; ensuring safe release * Use WithConnection for temporary tables * formatting * Review Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Improve handling of time ranges (#1560) * Improve handling of time ranges (maybe) * Run prettier * Update tests * Update web-local/src/lib/temp/time-control-types.ts Co-authored-by: Hamilton Ulmer <[email protected]> * Make `rill init` Fail When Passed Arguments (Probably By Accident) (#1566) Make `rill init --example <example>` fail instead of quietly using the "default" example project when used instead of `--example=example`. The latter form is required due to a bug in cobra. See #1398 (comment) * Left align measures * Change copy, add tooltips * Remove CTA from metrics no timeseries icon * dyanamic number of columns upto 3 based on measures * Fix nightly builds * Remove old runtime release CI * more from r to f for integer formatting in summary numbers (#1572) * Show error on refresh failure (#1492) * Show error on refresh failure * Improving error display in sources * Fix lint * Fixing navigation blocked during profiling (#1561) * Release notes 0.18 (#1565) * release notes for 0.18 * Update 0.18.md Co-authored-by: Marissa Gorlick <[email protected]> * Handle long labels * Increase margin top to 20 * For measures with timeseries align center * Align measures on the left side * Align measures with timecharts * Align measures from the top * Increase gap between measures * use observer in measures container * changes the edit tooltip (#1575) * When a model query is blank, hide the table & inspector (#1568) * adds in a placeholder when a model is blank * ensures preview table is hidden when model is empty * makes a more dramatic yet more subtle style for empty models * Fix S3 Region not recognised (#1583) * changing aws.region to region * fixing ci * Add S3/GCS region to docs (#1581) * Add region to docs As proposed in #1577 * Update project-files.md * Update project-files.md * Check rows.Err() after all relevant queries (#1540) * check rows.Err() after all relevant DB queries * removed extra lines * fixed test cases * requested changes * adding err check for drivers.Result * revert deleted code * Use measure height and prevent overflow * Dispatch trigger for nightlies (#1586) * Testing trigger dynamics * Enable manual nightly trigger * Typo * Improve comments * Glob support for local_file, S3 and GCS (#1578) * initial commit * download plus ingestion support * adding config for limit * linting issues * linting issues * const name declaration * ut fix * config fix * config fix * batch mode fix * read parquet changes * ingestion by folder * review comments * unused code * relative local paths * local invalid path handling * review nit picks * review nit picks * Update error messages Co-authored-by: anshul khandelwal <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Adding gci for import grouping (#1587) * adding gci for import groupin * cleanup requested changes * Run DuckDB tests in CI (#1584) * fix olap test * run duckdb olap test always * Reflow measures on window resize * Fix spinner alignment * reflow on resize * Use max content for measures Co-authored-by: Benjamin Egelund-Müller <[email protected]> Co-authored-by: Egor Riashin <[email protected]> Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Parag Jain <[email protected]> Co-authored-by: Hamilton Ulmer <[email protected]> Co-authored-by: Christian G. Warden <[email protected]> Co-authored-by: Aditya Hegde <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: rakeshsharma14317 <[email protected]> Co-authored-by: marcelteraflow <[email protected]> Co-authored-by: Anshul <[email protected]> Co-authored-by: anshul khandelwal <[email protected]> * Check for zero heights * address PR comments * Increase column gap and fix node bug Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Hamilton Ulmer <[email protected]> Co-authored-by: Egor Riashin <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> Co-authored-by: rakeshsharma14317 <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Eric P Green <[email protected]> Co-authored-by: Himadri Singh <[email protected]> Co-authored-by: Dhiraj Barnwal <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Parag Jain <[email protected]> Co-authored-by: Christian G. Warden <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: marcelteraflow <[email protected]> Co-authored-by: Anshul <[email protected]> Co-authored-by: anshul khandelwal <[email protected]>
* connection pooling for duckdb * close channel * set pool size * fix test * fix stopping of pw * formatting * start mulitple jobs are getting unpaused * conn pool dequeue * fix test * better concurrency test of priority worker * comment * Merging with context affinity * Pass pool size through DSN * Formatting * Added a priority semaphore * Update duckdb driver to use priority semaphore * Maybe fix failing test case * Document priorityqueue.Semaphore * Bind time series to one connection * Use sqlx.Conn + fix hanging errors * Temporarily committing spending benchmark in examples * fix failing test * formatting * Commit js benchmark * Removing benchmarks * duckdb driver fix, tests with pool size > 1, separate meta connection * use conn from pool in migrate * use single conn in migrate * use built in connection pool * fix conn release race condition * fix linter errors * fmt * gofmt fix * gofmt fix * fix tests * upgrade duckdb driver * Meta and OLAP sems; ensuring safe release * Use WithConnection for temporary tables * formatting * Review Co-authored-by: Benjamin Egelund-Müller <[email protected]>
* queries-caching-impl * queries-caching-impl * caching for time grain query * caching: column numeric histogram * caching: column numeric histogram * caching: table cardinality fix * caching: rug histogram * caching: time range * caching: time range * caching: column cardinality * caching: rollup interval * caching: column with all nulls * caching: code style * caching: rug * caching: code style * caching: ts fix * caching: ts fix * caching: ts fix * caching: code style * caching: timeseries * caching: table columns * caching: metricsview totals * caching: metricsview toplist * caching: metricsview toplist * caching: metricsview timeseries * Making metrics dashboard less strict * adds rudimentary dashboard support for no time series * Removing model path filter (#1488) * Adding support for reading public buckets (#1491) * Refresh when local file changes (#1489) * Refresh when local file changes * Fixing test failure * spaces in timestamp column name (#1490) * spaces in timestamp column name * spaces in timestamp column name * spaces in timestamp column name Co-authored-by: egor-ryashin <[email protected]> * npm install * Temporarily disable docker releases * Setup golangci-lint in rill-developer (#1417) * golangci-lint initial commit * added new line * adding .golangci.yml config * latest version and comment GH action on pull_request * go version update * go version update + prettier * for current branch * typo * run with config file * adding timeout * commenting disable all * default run * setup go changes * go setup changes * lint version latest * Adding golangci.yml file * with config arg * adding goreportcard-action * removed some linters from enable list * fix suggested by golangci linters * updaing GH action args with config and verbose * errors fix by linters * trigger ci check * trigger ci check * trigger ci check * trigger ci check * fixed errcheck issues * on push main branch and pull_request * adding golangci-lint-setup for test * golangci-lint error fix * more fixes * fixed statuscode const etc * fixes after merging with main * PR requested changes * Fixed PR changes and other errors * prettier on go-test.yml * Final changes * fixed PR requested changes * fixed some more changes after merge with main branch * reverted errcheck and gofumpt and fixed the changes * gofmt * updated CONTRIBUTING.md for golint setup * updated GH actions for golint * test action * fixed some more errors from linters * updated GH action and fixed typo * udpated CONTRIBUTING.md for golint instructions * changes in GH actions for golint * Release notes 0.17 (#1497) * release notes for 0.17 * fixing static image in docusaurus * Maybe fixes builds Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Update 0.17.md * Fix suppress tooltip not being reactive (#1493) * [Dashboard] Fix jarring rearrange when include/exclude is toggled from filter pills (#1494) * Fixing misused older types * Fixing the jarring rearrange on toggling include/exclude * Update help links to new docs structure (#1499) Co-authored-by: Marissa Gorlick <[email protected]> * Move design system to `web-common` (#1486) * Move files from `web-local` to `web-common` * Move files out of design system and into app * Move utils into `web-common` * Add typescript & eslint config files to `web-common` * Update imports (design system) * Delete blank file * Update imports (application) * Move duckdb data types to `web-common` * Fix import of chip component * Fix two missing imports * Edit path in the menu component's README * Add `svelte` as a `web-common` dependency * Remove old paths from typscript and vite configs * Fix imports in `/dev` routes * Add back imports to fix lint * Add `web-common` to tailwind config * Move to one top-level `eslint` file * Move `data-types` into `web-common/components` * Move `data-graphic` into `web-common/components` * Bugfix: show nav border * Add more data file extensions to `.prettierignore` * Fix prettier warning * Publish nightly docker image (#1500) * golint improvements (#1502) * skip proto files and only-new-issues is set true * testing with adding few errors * revert errors and commented dupl * adding dupl * dupl with thresold setting * removed dupl linter * removing only-new-issues * Improved dimension validations * Addressing PR comments * Enable dashboards with no time dimension (#1544) * Use RefreshedOn in runtime query cache (#1559) * Remove timestamp required from CTA buttons * Dashboard without time dimension * Remove logs * Add lint fixes * Address review comments * Use single container component * Add grid to measures * Increase max size for measures * Metrics View: Value exclusion should keep nulls (#1535) * exclude with nulls * exclude with nulls * exclude with nulls for timeseries * Add explicit is null check instead of coalesce with UUID * fix failing test * Adress review + Resolve filter code duplication Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Remove redundant import * Fix imports * Remove time params * Connection pool for DuckDB (#1405) * connection pooling for duckdb * close channel * set pool size * fix test * fix stopping of pw * formatting * start mulitple jobs are getting unpaused * conn pool dequeue * fix test * better concurrency test of priority worker * comment * Merging with context affinity * Pass pool size through DSN * Formatting * Added a priority semaphore * Update duckdb driver to use priority semaphore * Maybe fix failing test case * Document priorityqueue.Semaphore * Bind time series to one connection * Use sqlx.Conn + fix hanging errors * Temporarily committing spending benchmark in examples * fix failing test * formatting * Commit js benchmark * Removing benchmarks * duckdb driver fix, tests with pool size > 1, separate meta connection * use conn from pool in migrate * use single conn in migrate * use built in connection pool * fix conn release race condition * fix linter errors * fmt * gofmt fix * gofmt fix * fix tests * upgrade duckdb driver * Meta and OLAP sems; ensuring safe release * Use WithConnection for temporary tables * formatting * Review Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Improve handling of time ranges (#1560) * Improve handling of time ranges (maybe) * Run prettier * Update tests * Update web-local/src/lib/temp/time-control-types.ts Co-authored-by: Hamilton Ulmer <[email protected]> * Make `rill init` Fail When Passed Arguments (Probably By Accident) (#1566) Make `rill init --example <example>` fail instead of quietly using the "default" example project when used instead of `--example=example`. The latter form is required due to a bug in cobra. See #1398 (comment) * Left align measures * Change copy, add tooltips * Remove CTA from metrics no timeseries icon * dyanamic number of columns upto 3 based on measures * Fix nightly builds * Remove old runtime release CI * more from r to f for integer formatting in summary numbers (#1572) * Show error on refresh failure (#1492) * Show error on refresh failure * Improving error display in sources * Fix lint * Fixing navigation blocked during profiling (#1561) * Release notes 0.18 (#1565) * release notes for 0.18 * Update 0.18.md Co-authored-by: Marissa Gorlick <[email protected]> * Handle long labels * Increase margin top to 20 * For measures with timeseries align center * Align measures on the left side * Align measures with timecharts * Align measures from the top * Increase gap between measures * use observer in measures container * changes the edit tooltip (#1575) * When a model query is blank, hide the table & inspector (#1568) * adds in a placeholder when a model is blank * ensures preview table is hidden when model is empty * makes a more dramatic yet more subtle style for empty models * Fix S3 Region not recognised (#1583) * changing aws.region to region * fixing ci * Add S3/GCS region to docs (#1581) * Add region to docs As proposed in #1577 * Update project-files.md * Update project-files.md * Check rows.Err() after all relevant queries (#1540) * check rows.Err() after all relevant DB queries * removed extra lines * fixed test cases * requested changes * adding err check for drivers.Result * revert deleted code * Use measure height and prevent overflow * Dispatch trigger for nightlies (#1586) * Testing trigger dynamics * Enable manual nightly trigger * Typo * Improve comments * Glob support for local_file, S3 and GCS (#1578) * initial commit * download plus ingestion support * adding config for limit * linting issues * linting issues * const name declaration * ut fix * config fix * config fix * batch mode fix * read parquet changes * ingestion by folder * review comments * unused code * relative local paths * local invalid path handling * review nit picks * review nit picks * Update error messages Co-authored-by: anshul khandelwal <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> * Adding gci for import grouping (#1587) * adding gci for import groupin * cleanup requested changes * Run DuckDB tests in CI (#1584) * fix olap test * run duckdb olap test always * Reflow measures on window resize * Fix spinner alignment * reflow on resize * Use max content for measures Co-authored-by: Benjamin Egelund-Müller <[email protected]> Co-authored-by: Egor Riashin <[email protected]> Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Parag Jain <[email protected]> Co-authored-by: Hamilton Ulmer <[email protected]> Co-authored-by: Christian G. Warden <[email protected]> Co-authored-by: Aditya Hegde <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: rakeshsharma14317 <[email protected]> Co-authored-by: marcelteraflow <[email protected]> Co-authored-by: Anshul <[email protected]> Co-authored-by: anshul khandelwal <[email protected]> * Check for zero heights * address PR comments * Increase column gap and fix node bug Co-authored-by: egor-ryashin <[email protected]> Co-authored-by: Hamilton Ulmer <[email protected]> Co-authored-by: Egor Riashin <[email protected]> Co-authored-by: Benjamin Egelund-Müller <[email protected]> Co-authored-by: rakeshsharma14317 <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: Eric P Green <[email protected]> Co-authored-by: Himadri Singh <[email protected]> Co-authored-by: Dhiraj Barnwal <[email protected]> Co-authored-by: Nishant Bangarwa <[email protected]> Co-authored-by: Parag Jain <[email protected]> Co-authored-by: Christian G. Warden <[email protected]> Co-authored-by: Marissa Gorlick <[email protected]> Co-authored-by: marcelteraflow <[email protected]> Co-authored-by: Anshul <[email protected]> Co-authored-by: anshul khandelwal <[email protected]>
See details and todos in issue: #1316