commit | a0da72341b8159c5341af711e6b8991ef1aa7875 | [log] [tgz] |
---|---|---|
author | Diego Zambelli Sessona <diego.sessona@gmail.com> | Mon Jul 10 14:22:29 2023 +0100 |
committer | Diego Zambelli Sessona <diego.sessona@gmail.com> | Mon Jul 10 14:22:29 2023 +0100 |
tree | ccaa2aacdbbb44153960809bd1ca8d6e68b5e71d | |
parent | 3bc24131ee6f62c89509f318665073715457dc05 [diff] |
Add configuration to disable indexes pagination Add NONE option to disable index backend pagination, allowing the user deciding between performance and data consistency. This option needs to be honoured by the indexing backend and this change introduces the correct implementation for Lucene. We should also create the corresponding change on the elasticsearch libModule for throwing an IAE to highlight that the backend doesn't support NONE pagination type. API pagination is not affected by this change and is always preserved. When having pagination, we could encounter some problems in the result set, when moving from one page to the next of the index results: * duplicated entries (when new changes are created) * missing entries (when changes are removed or set to private) * wrong entries status (when changes are switching their state during the page switching) Having duplicates or missing results could have side effects, depending on the use-case of the consumer of the data. For example, since indexes are used to populate some LoadingCache (SearchingChangeCache [1]), inconsistent results returned by the indexing backend may cause the cache loading function to fail or keep an inconsistent state which doesn't reflect the underlying data. For this case, a workaround [2] has been put in place in master and 3.8, however, it will not work for the missing or inconsistent entries. [1]: https://gerrit.googlesource.com/gerrit/+/refs/heads/stable-3.6/java/com/google/gerrit/server/git/SearchingChangeCacheImpl.java#157 [2]: https://gerrit-review.googlesource.com/c/gerrit/+/349995 Bug: Issue 287484350 Release-Notes: Introduce NONE pagination type and its support in Lucene indexing backend Change-Id: I40f87895d9dac951ae30c5562b2ddbf28b34a41a Co-Authored-With: Fabio Ponciroli <ponch78@gmail.com>
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.