Marco Neumann
e1e3163752
refactor: rework DB init state machine
...
Since adding new features like "sequencer replay" or init retries would
make the current code too complex, a refactor is required:
Config:
The config struct now holds a `DatabaseState` which is a simple linear
state machine representing the different stages of the database init.
Init:
The init module now has a fixpoint-loop which looks at the state,
decides what to do based on it and repeats until either the DB is
initialized or an error occured. This also makes it easier to continue
the init process "in the middle", e.g. when the preserved catalog is
broken or the sequencer (e.g. Kafka) could not be reached.
2021-07-01 13:47:51 +02:00
kodiakhq[bot]
8174af9137
Merge pull request #1856 from influxdata/crepererum/parquet_metadata_protobuf
...
refactor: use protobuf for in-parquet metadata
2021-07-01 08:00:27 +00:00
kodiakhq[bot]
b817ea88dd
Merge branch 'main' into crepererum/parquet_metadata_protobuf
2021-07-01 07:52:39 +00:00
Raphael Taylor-Davies
cc038010cd
feat: add persist_age_threshold to LifecycleRules ( #1853 )
...
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-30 21:27:06 +00:00
Andrew Lamb
cfa06e1497
chore: Add query tests for compacted chunks ( #1861 )
...
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-30 20:59:29 +00:00
kodiakhq[bot]
99093b18fb
Merge pull request #1862 from influxdata/ntran/timeout
...
fix: change timeout to have all tests passed on slow laptop
2021-06-30 20:17:39 +00:00
kodiakhq[bot]
0d24584ed3
Merge branch 'main' into ntran/timeout
2021-06-30 20:10:18 +00:00
Nga Tran
f6731c60d7
fix: change timeout to have all tests passed on slow laptop
2021-06-30 16:04:02 -04:00
Raphael Taylor-Davies
99a15cd452
refactor: single lifecycle error enumeration ( #1859 )
...
* refactor: single lifecycle error enumeration
* fix: fmt
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
2021-06-30 18:35:57 +00:00
Andrew Lamb
817a480cde
refactor: move lifecycle implementations out of db.rs and into their own modules ( #1858 )
...
* refactor: move lifecycle implementations out of db.rs and into their own modules
* fix: clippy
2021-06-30 17:24:04 +00:00
Andrew Lamb
9e1723620c
refactor: rename load_chunk_to_read_buffer to move_chunk_to_read_buffer ( #1857 )
...
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-30 16:53:18 +00:00
kodiakhq[bot]
a849c50749
Merge pull request #1848 from influxdata/er/refactor/gRPC_logging
...
refactor: improve logging level for gRPC errors
2021-06-30 15:49:46 +00:00
kodiakhq[bot]
0beb5a888c
Merge branch 'main' into er/refactor/gRPC_logging
2021-06-30 15:42:03 +00:00
Edd Robinson
1049cb0a2a
refactor: improve logging level for gRPC errors
2021-06-30 16:41:22 +01:00
Marco Neumann
4204127b05
refactor: use protobuf for in-parquet metadata
2021-06-30 16:51:37 +02:00
kodiakhq[bot]
9448b8044e
Merge pull request #1850 from influxdata/crepererum/safer_min_max_sequence
...
refactor: make `MinMaxSequence` safer to use
2021-06-30 14:45:41 +00:00
kodiakhq[bot]
a2246fd890
Merge branch 'main' into crepererum/safer_min_max_sequence
2021-06-30 14:38:37 +00:00
Marco Neumann
043890369f
refactor: make `MinMaxSequence` safer to use
2021-06-30 16:37:48 +02:00
Raphael Taylor-Davies
635e4d0a7d
refactor: plumbing to prevent compaction starving persistence ( #1852 )
...
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-30 13:43:25 +00:00
Raphael Taylor-Davies
530b5cdf22
feat: namespace issues in git-log-prs ( #1849 )
...
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-30 13:35:34 +00:00
pierwill
b86fb88f60
docs: Edit Quick Start ( #1839 )
...
* docs: start editing Quick Start
* docs: edit Quick Start in README
* fix: reorder Quick start steps
* fix: Edit git instructions
* fix: s/values/options
* fix: Add a line
* fix: Edit release mode section
* fix: note that docker is optional
* fix: fix line break
* fix: fix link
* fix: more edits
* fix: s/Quick Start/Get started
* fix: rename API compatibility section
* fix: fix link
* fix: Apply code review suggestions
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* fix: fix link path
* fix: remove rust version check instruction
Co-authored-by: pierwill <pierwill@users.noreply.github.com>
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-30 13:27:49 +00:00
Andrew Lamb
89757d7232
fix: do not print test output to logs except on failure ( #1840 )
...
* fix: do not print test output to logs except on failure
* docs: update CONTRIBUTING.md
2021-06-30 13:20:11 +00:00
kodiakhq[bot]
403f7297e1
Merge pull request #1844 from influxdata/crepererum/no_catalog_on_db_creation
...
feat: do NOT load preserved catalogs on late DB creation
2021-06-30 10:11:17 +00:00
kodiakhq[bot]
983062f6fa
Merge branch 'main' into crepererum/no_catalog_on_db_creation
2021-06-30 10:04:00 +00:00
kodiakhq[bot]
438b65cb94
Merge pull request #1845 from influxdata/er/refactor/read_buffer/table_names
...
refactor: remove table name from Read Buffer API.
2021-06-30 09:50:23 +00:00
kodiakhq[bot]
e5cf08d05c
Merge branch 'main' into er/refactor/read_buffer/table_names
2021-06-30 09:43:41 +00:00
Edd Robinson
d52807eb2b
Merge branch 'main' into er/refactor/read_buffer/table_names
2021-06-30 10:43:39 +01:00
Raphael Taylor-Davies
62d3305923
feat: optimize the dictionaries in the output of deduplicate node ( #1827 ) ( #1832 )
...
* feat: optimize dedup dictionaries (#1827 )
* fix: handle sliced null bitmasks
* chore: review feedback
2021-06-30 09:30:16 +00:00
Edd Robinson
2e430ac7f0
refactor: remove table name from read_filter schema
2021-06-30 09:50:53 +01:00
Edd Robinson
62f274cc1b
refactor: remove table name from column_values
2021-06-30 09:46:54 +01:00
Edd Robinson
5737c9d962
refactor: remove table name from column_names
2021-06-30 09:43:41 +01:00
Marco Neumann
c4e054f909
feat: do NOT load preserved catalogs on late DB creation
...
When a DB is created AFTER the server is initialized, then we can assume
it is a new DB (because the rules file did not exist beforehand). We
shall treat it as a new DB with no data and should not try to load some
leftover / stale / whatever preserved catalog for it. How this catalog
came into existence we do not know and it was certainly not properly
managed by IOx. So we error if there is a catalog.
Furthermore the old implementation was kinda broken since it loaded the
perserved catalog "in-sync" with the gRPC call that issued the DB
creation (we only have a delayed init concept for DBs that are loaded on
instance startup). In production that would very likely provoke nasty
timeouts.
On top of that this new behavior will also be somewhat more sane when we
think about sequencer (e.g. Kafka) replays. We certainly do not wanna do
any replays for newly created DBs.
TLDR: New behavior for DBs created via gRPC is "new empty DB". This does
NOT affect DBs loaded on instance startup (aka existing DBs).
2021-06-30 10:12:38 +02:00
Marco Neumann
58310abfee
refactor: de-duplicate code in `server::db::load`
2021-06-30 10:08:25 +02:00
Andrew Lamb
fef160e24f
feat: Implement data driven query_tests and port explain tests ( #1814 )
...
* feat: Implment data driven query testing and port explain tests
* fix: do not fmt the auto generated cases
* refactor: split setup and parser into separate modules
* refactor: Add log to runner, add end to end tests
* docs: fixu cpmments
2021-06-29 16:09:51 +00:00
kodiakhq[bot]
2deda5b14d
Merge pull request #1795 from influxdata/crepererum/mb_checkpoint
...
feat: implement persistence window checkpointing
2021-06-29 15:33:36 +00:00
kodiakhq[bot]
e10173124f
Merge branch 'main' into crepererum/mb_checkpoint
2021-06-29 15:25:24 +00:00
Raphael Taylor-Davies
eac9261507
chore: print end-to-end output ( #1838 )
...
* chore: print end-to-end output
* chore: clippy
* chore: update CONTRIBUTING.md
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-29 15:09:43 +00:00
kodiakhq[bot]
0f8ce926f7
Merge pull request #1836 from influxdata/crepererum/issue1821
...
refactor: write parquet files w/o holding the transaction lock
2021-06-29 13:56:16 +00:00
Marco Neumann
9d10ac9f6a
refactor: write parquet files w/o holding the transaction lock
...
This allows to prepare writes per-tableXpartition before entering the
database-exclusive section that deals with catalog transactions.
Closes #1821 .
2021-06-29 14:23:06 +02:00
Marco Neumann
ddc9cd49ca
chore: bump preserved catalog version
2021-06-29 14:23:06 +02:00
Marco Neumann
3ebb6a3037
refactor: do not capture txn-specific information in parquet files
...
This helps with #1821 .
2021-06-29 14:22:36 +02:00
Raphael Taylor-Davies
3ae8ac2467
chore: improve wait_for_chunk failure output ( #1835 )
2021-06-29 11:54:32 +00:00
kodiakhq[bot]
dc96f8f9a8
Merge pull request #1834 from influxdata/er/refactor/table_names
...
refactor: remove table_names from Read Buffer
2021-06-29 11:23:12 +00:00
Edd Robinson
4bab274bc1
Merge branch 'main' into er/refactor/table_names
2021-06-29 12:15:41 +01:00
Raphael Taylor-Davies
5287f6a577
feat: print operations on wait_for_chunk failure ( #1809 ) ( #1833 )
...
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-29 11:09:11 +00:00
Edd Robinson
a7198ea78b
refactor: use satisfies_predicate in apply_predicate
2021-06-29 11:58:28 +01:00
Edd Robinson
86e2fe4138
refactor: satisfies predicate
2021-06-29 11:58:28 +01:00
kodiakhq[bot]
fab04acef5
Merge pull request #1824 from influxdata/crepererum/issue1821-cleanup-lock
...
refactor: improve locking around the parquet file cleanup
2021-06-29 10:55:04 +00:00
kodiakhq[bot]
eda9532eb2
Merge branch 'main' into crepererum/issue1821-cleanup-lock
2021-06-29 10:48:43 +00:00
Marco Neumann
48df13de05
refactor: use parking lot for catalog cleanup
2021-06-29 12:47:29 +02:00