8000 using lookahead in zkd by romanatarango · Pull Request #14745 · arangodb/arangodb · GitHub
[go: up one dir, main page]

Skip to content

using lookahead in zkd #14745

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

Merged
merged 68 commits into from
Jan 5, 2022
Merged
Changes from 1 commit
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
c19d549
Bootstrap zkd indexes. Now fill in the details.
Mar 3, 2021
60d6ceb
Added prototype for condition finder.
Mar 4, 2021
63fd0b7
Added helper for Range.
Mar 4, 2021
a43cf14
Fixed double conversion.
Mar 4, 2021
9305dbc
Added wrong but working nextImpl
Mar 5, 2021
14ba135
Extract bounds for iterator.
Mar 5, 2021
3d7d5fc
Fixed extraction logic with reversed operator usage.
Mar 5, 2021
db52b6d
Detect equal operator correctly.
Mar 5, 2021
ede46db
Implemented nextImpl
goedderz Mar 5, 2021
5c78b96
Removed log devel for hot path.
Mar 5, 2021
0b73dcf
Cleanup
goedderz Mar 5, 2021
4fb378c
Added support for partially unbounded queries.
Mar 5, 2021
6948eb6
Do not use index for full collection scans.
Mar 5, 2021
34117f4
Merge branch 'feature/zkd-index' of github.com:arangodb/arangodb into…
Mar 5, 2021
59fd78e
Added tests for ZkdHelper.
Mar 8, 2021
db392e3
Added functional test suite skeleton for zkd index
goedderz Mar 8, 2021
811e660
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Mar 8, 2021
91f5651
Some fixes to double conversions
goedderz Mar 8, 2021
5be1cd2
Fixed bug in double to byte_string conversion.
Mar 8, 2021
34c4324
Added support for denormalized doubles and infinity.
Mar 9, 2021
e2977ff
Test all interesting double values.
Mar 9, 2021
c9042d2
Disallow Nan.
Mar 9, 2021
dd3b8f2
Added more js tests.
Mar 9, 2021
7b879dc
Added a lot of tests.
Mar 9, 2021
6fcf4d1
Cleaned up test.
Mar 9, 2021
5697c52
[zkd] Strict comparsion (#13673)
Mar 10, 2021
1d3522d
[zkd] Cluster support (#13677)
Mar 11, 2021
94dd02e
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Mar 11, 2021
3d1ce4b
Added support for nested fields - excluding expansions. (#13681)
Mar 11, 2021
7618470
[zkd] Unique Constraints (#13691)
Mar 12, 2021
1d4928b
[zkd] Forward Compat (#13694)
Mar 15, 2021
8cabd6f
[zkd] Column Family (#13692)
Mar 15, 2021
bbf25b4
Added zkd index docu block. (#13698)
Mar 15, 2021
caa87ae
Fixed bug in RocksDBKeyBounds and using default cost estimation
Mar 16, 2021
6c6a34e
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Mar 22, 2021
b81f948
[zkd] testInBox speedup (#13798)
Mar 24, 2021
aaddb71
Feature/zkd index speedup getnextzvalue (#13799)
goedderz Mar 25, 2021
10ed61a
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
May 25, 2021
5a1adc3
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
May 26, 2021
584f524
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Jul 1, 2021
d650d3f
Updated CHANGELOG.
Jul 1, 2021
265ed5c
Merge branch 'devel' of github.com:arangodb/arangodb into feature/zkd…
goedderz Jul 6, 2021
3c73e3d
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Jul 15, 2021
41ea5e2
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Aug 5, 2021
fa7d8b0
Fixing iterator.
Aug 6, 2021
5f83c9f
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Aug 12, 2021
dd48bf9
Added review suggestions.
Aug 20, 2021
875c5ae
using lookahead in zkd
romanatarango Sep 7, 2021
4b94de7
added forgotten declaration
romanatarango Sep 8, 2021
a49a331
added forgotten condering of the new option
romanatarango Sep 8, 2021
a55c4c6
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
Sep 9, 2021
60473c5
Applied suggestions from review.
Sep 9, 2021
a185712
Merge branch 'devel' into feature/zkd-index
mchacki Sep 10, 2021
abc823e
Merge commit '8c2374f95334ba0d48ef72ca1fd0784c7150ad1c' into tmp
romanatarango Sep 13, 2021
98e09f4
Merge remote-tracking branch 'origin/feature/zkd-index' into feature/…
romanatarango Sep 13, 2021
3927a6c
Merge branch 'tmp' into feature/zkd-index-lookahead
romanatarango Sep 13, 2021
69311a0
Merge remote-tracking branch 'origin/devel' into feature/zkd-index-lo…
romanatarango Sep 13, 2021
95767fc
removed tryNewIndex option, now decided by lookahead==0
romanatarango Sep 13, 2021
703c6d4
Merge remote-tracking branch 'origin/devel' into feature/zkd-index-lo…
Oct 6, 2021
d4aa992
Merge remote-tracking branch 'origin' into feature/zkd-index-lookahead
romanatarango Nov 5, 2021
8fca628
Merge branch 'feature/zkd-index-lookahead' of github.com:arangodb/ara…
romanatarango Nov 5, 2021
723d0a8
Merge remote-tracking branch 'origin' into feature/zkd-index-lookahead
romanatarango Nov 5, 2021
40673ae
unified default lookaheads for zkd to 1, made one of them const
romanatarango Nov 5, 2021
fac0505
added testing with lookahead 32 in aql-optimizer-zkdindex-multi.js
romanatarango Nov 8, 2021
0fac8b7
Merge commit 'dc6bbbf2dc552fba751e7f818a69d851393b496a' into feature/…
Jan 4, 2022
87a7a5f
Applied clang-format
Jan 4, 2022
2884250
Merge commit 'a6bd3ccd6f622fab2a288d2e3a06ab8e338d3ec1' into feature/…
Jan 4, 2022
3380e72
Merge branch 'devel' of github.com:arangodb/arangodb into feature/zkd…
Jan 4, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge remote-tracking branch 'origin/devel' into feature/zkd-index
  • Loading branch information
maierlars committed Aug 5, 2021
commit 41ea5e29de977970de58ef0420c8765cbde637df
96 changes: 96 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,102 @@ devel
The index implements the relation <=, == and >= natively. Strict relations are
emulated using post filtering. Ranges can be unbounded on one or both sides.

* Fixed a bug, where Coordinators handled plan changes for databases
in heartbeat thread in wrong order. Databases could be listed, but
not used.

* Automatically extend web UI sessions while they are still active.
The web UI can now call a backend route to renew its JWT, so there will not
be any rude logouts in the middle of an active session.

Active web UI sessions (here: sessions with user activity within the last
90 minutes) will automatically renew their JWT if they get close to the
JWT expiry date.

* Reduce memory usage for in-memory revision trees. Previously, a revision
tree instance for a non-empty collection/shard was using 4 MB of memory
when uncompressed. Trees that were unused for a while were compressed on
the fly to use less memory, and later uncompressed again when needed.
Now the uncompressed in-memory version of the revision tree will
dynamically allocate memory as needed. This allows the initial version
of the trees to get away with just 64 KB of memory. Memory usage will
grow lazily when more parts of the trees get populated. The compression
of unused in-memory tree data is still in place.

* Refactored arangobench:
- Updated testcases to show description of them when beginning execution
- Fixed testcase histogram with time measures when batch size > 0
- Integrated testcases with Velocypack for simplification
- Deprecated some testcases
- Internal changes for performance optimization

* Timely update of database server list on health check fixes BTS-505.

* Add 3 AQL functions: COSINE_SIMILARITY, L1_DISTANCE and L2_DISTANCE.

* Updated ArangoDB Starter to 0.15.1.

* Updated arangosync to 2.5.0.

* Fix BTS-453: Download of a HotBackup from remote source doesn't work on macOS

* Honor the value of startup option `--rocksdb.sync-interval` on Windows, too.
Previously, the value was ignored and WAL syncing on Windows was using a
different code paths than on the other supported platforms. Now syncing is
unified across all platforms, and they all call RocksDB's `SyncWAL()`.

* Updated ArangoDB Starter to 0.15.1-preview-4.

* APM-132: Clean up collection statuses
Removes collection statuses "new born", "loading", "unloading" and "unloaded".
These statuses were last relevant with the MMFiles storage engine, when it
was important to differentiate which collections are present in main memory
memory and which aren't. With the RocksDB storage engine, all that was
automatically handled anyway, and the statuses were not important anymore.

The change removes the "Load" and "Unload" buttons for collections from the
web interface. All collections in the web interface will be marked as
"loaded" permanently.

This change also obsoletes the `load()` and `unload()` calls for collections
as well as their HTTP API equivalents. The APIs will remain in place for now
but are changed to no-ops. They will removed eventually in a future version
of ArangoDB. This will be announced separately.

* Include K_SHORTEST_PATHS and SHORTEST_PATH execution nodes in AQL query
memory usage accounting. The memory used by these execution node types was
previously not tracked against the configured query memory limit.

* Reduce default value for max-nodes-per-callstack to 200 for OSX, because on
OSX worker threads have a stack size of only 512kb.

* Make `--javascript.copy-installation` also copy the `node_modules` sub
directory. This is required so we have a full copy of the JavaScript
dependencies and not one that excludes some infrequently changed modules.
In addition, file copying now intentionally excludes .map files as they
are not needed.

* Fixed BTS-408: treat positive or negative signed numbers as constants
immediately during AQL query parsing.
Previously, a value of `-1` was parsed initially as `unary minus(value(1))`,
which was not treated in the same way as a constant value `value(-1)`.
The value was later optimized to just `value(-1)`, but this only happened
during constant-folding after parsing. Any operations that referred to
the unfolded values during parsing thus did not treat such values as
constants.

* Slightly increase internal AQL query and transaction timeout on DB servers
from 3 to 5 minutes.
Previously, queries and transactions on DB servers could expire quicker,
which led to spurious "query ID not found" or "transaction ID not found"
errors on DB servers for multi-server queries/transactions with unbalanced
access patterns for the different participating DB servers.
The timeouts on coordinators remain unchanged, so any queries/transactions
that are abandoned will be aborted there, which will also be propagated to
DB servers. In addition, if a particpating server in an AQL query becomes
unavailable, the coordinator is now notified of that and will terminate the
query more eagerly.

* Add hard-coded complexity limits for AQL queries, in order to prevent
programmatically generated large queries from causing trouble (too deep
recursion, enormous memory usage, long query optimization and distribution
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.
0