commit | 731a0e1e919aa5503a0c96fd441b6cea7228c3a0 | [log] [tgz] |
---|---|---|
author | Prudhvi Akhil Alahari <prudhvi.alahari@linaro.org> | Fri Oct 28 18:10:32 2022 +0530 |
committer | Prudhvi Akhil Alahari <prudhvi.alahari@linaro.org> | Wed Nov 02 21:15:00 2022 +0530 |
tree | 92dce45a8bba2b56898a599965a36b659b5e618c | |
parent | ca1d0005772d7d4da681fc4f599f98bbe39b1f09 [diff] |
Add AndCardinalPredicate and OrCardinalPredicate Before this change, IndexSource derived cardinality from predicate which implement HasCardinality. Since AndPredicate and OrPredicate does not return cardinality, IndexSource defaults to 10 when query comprises more than one predicate. Due to this behavior, AndSource chooses IndexSource almost always when query contains more than one index predicate. Add AndCardinalPredicate and OrCardinalPredicate which implement HasCardinality's getCardinality(). AndCardinalPredicate will return minimum of all the cardinalities of its children. OrCardinalPredicate will return sum of all the cardinalities of its children. Enhance index rewritter to return AndCardinalPredicate when there is at least one predicate which implements HasCardinality. Similarly, return OrCardinalPredicate when all the children implement HasCardinality. This helps AndSource to choose the right source more often. Unfortunately there are no operators which are datasources other than Index in the Core as of now. We at Qualcomm have a datasource operator in a plugin which takes a bug number and queries the bug tracker's DB for changes related to that bug number. Suppose this operator (say issue:123) returns around 15 changes. On a 3.4 test site against LUCENE which contains ~20K open changes, ~2.8M merged changes, the performance of, query "issue:123 status:open age:1d" before: 4.5s, 4.4s, 4.4s after: 0.29s, 0.26s, 0.23s query "issue:123 status:merged age:1d" before: 11m, 11m, 11m after: 0.23s, 0.20s, 0.25s Release-Notes: AndSource chooses right source more often Change-Id: Id79bea6f512c7673f3183f39a187debec7ce34f7
Gerrit is a code review and project management tool for Git based projects.
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.
For information about how to install and use Gerrit, refer to the documentation.
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Please report bugs on the issue tracker.
Gerrit is the work of hundreds of contributors. We appreciate your help!
Please read the contribution guidelines.
Note that we do not accept Pull Requests via the Github mirror.
The Developer Mailing list is repo-discuss on Google Groups.
Gerrit is provided under the Apache License 2.0.
Install Bazel and run the following:
git clone --recurse-submodules https://gerrit.googlesource.com/gerrit cd gerrit && bazel build release
The instruction how to configure GerritForge/BinTray repositories is here
On Debian/Ubuntu run:
apt-get update & apt-get install gerrit=<version>-<release>
NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.
On CentOS/RedHat run:
yum clean all && yum install gerrit-<version>[-<release>]
On Fedora run:
dnf clean all && dnf install gerrit-<version>[-<release>]
Docker images of Gerrit are available on DockerHub
To run a CentOS 8 based Gerrit image:
docker run -p 8080:8080 gerritcodereview/gerrit[:version]-centos8
To run a Ubuntu 20.04 based Gerrit image:
docker run -p 8080:8080 gerritcodereview/gerrit[:version]-ubuntu20
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.