Commit Graph
355 Commits
Author SHA1 Message Date
Kevin Toth c81c9fdc12 Update pom's for 8.6.0-SNAPSHOT 2026-10-29 11:47:11 +00:00
Kevin Toth 095ca160b2 Update pom's for 8.5.0-SNAPSHOT 2026-10-22 15:14:39 +00:00
Moriarty 08cdb9db90 Migrate Spring deployment test to JUnit 5 (#3995) 2026-10-13 13:34:24 +00:00
Kevin Toth 6f5624cc8c Update pom's for 8.4.0-SNAPSHOT 2026-10-13 10:31:37 +00:00
Kevin Toth 46e2ecddc5 8.2.1-SNAPSHOT 2026-10-05 12:23:56 +00:00
Kevin Toth 9bde7da67e 8.2.0 2026-10-05 12:23:35 +00:00
Kevin Toth a68175c01a Update pom's for 8.3.0-SNAPSHOT 2026-10-05 12:19:46 +00:00
Kevin Toth 045de2e906 Update pom's for 8.2.0-SNAPSHOT 2026-09-21 11:07:38 +00:00
Kevin Toth b646acb79b Update pom's for 8.1.0-SNAPSHOT 2026-09-02 15:05:37 +00:00
807d61b52e Migrate to Wildfly 26.1.3.Final (#3508)
Co-authored-by: Ivan Bella <[email protected]>
Co-authored-by: Bill Oley <[email protected]>
Co-authored-by: Moriarty <[email protected]>
Co-authored-by: Claude Opus 5 <[email protected]>
2026-09-02 14:04:28 +00:00
MoriartyandClaude Opus 5 d50e7cc3a4 Make test fork reuse and heap configurable per module (#3904)
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-09-02 11:19:48 +00:00
Kevin Toth c8c648e12a Update pom's for 7.47.0-SNAPSHOT 2026-08-31 16:31:44 +00:00
Kevin Toth ed50f5a76f Update pom's for 7.46.0-SNAPSHOT 2026-08-26 15:39:22 +00:00
hgklohr a3b817a85b Update pom's for 7.45.0-SNAPSHOT 2026-08-13 16:56:05 +00:00
hgklohr 2fa747e48e Update pom's for 7.44.0-SNAPSHOT 2026-08-05 13:44:37 +00:00
hgklohr 3aeffd7c56 Update pom's for 7.43.0-SNAPSHOT 2026-07-21 15:40:23 +00:00
hgklohr 7691b73e6b Update pom's for 7.42.0-SNAPSHOT 2026-06-18 20:06:11 +00:00
Joe Alphonso b3a6bbd133 Setting next Development version to 7.41.2-SNAPSHOT 2026-06-12 17:29:46 -04:00
Joe Alphonso 8bf504e095 Preparing for 7.41.1 Release 2026-06-12 17:29:01 -04:00
Joe Alphonso 22793bd004 Setting next Development version to 7.41.1-SNAPSHOT 2026-06-12 16:24:06 -04:00
Joe Alphonso f522829b14 Preparing for 7.41.0 Release 2026-06-12 16:20:53 -04:00
hgklohr 872f374ec5 Update pom's for 7.41.0-SNAPSHOT 2026-06-09 17:24:05 +00:00
hgklohr d637c2d050 Update pom's for 7.40.0-SNAPSHOT 2026-05-20 11:17:19 +00:00
2e0fc4187b Add ability to enforce concurrent query limits (#3257)
## Configuration
Add the ability to enforce concurrent query limits across a group of
webservers. Zookeeper is used to track active queries and the following
data:
- The query ID
- The user who submitted the query
- The system the query was submitted on
- The query logic the query originated from

Query limit enforcement is done through the `QueryLimiter` class. Given
a user, system, and query logic, it can determine if any of the
following limits have been exceeded:

- The max allowed concurrent queries for the user.
- The max allowed concurrent queries of the query logic for the user.
- The max allowed concurrent queries for the system.
- The max allowed concurrent queries of the query logic for the system.

Limits may be defined and customized on a per-user and per-system basis.
They may also be defined for groups of query logics. The classes
`UserLimitProvider`, `SystemLimitProvider`, and
`QueryLogicGroupLimitProvider` are respectively responsible for
identifying the best limits to enforce for a user, system, and query
logic. They will be initialized in the `QueryLimiter` after providing a
`QueryLimitConfiguration` instance. The following can be configured:

On a system-wide basis:
- The default concurrent user query limit. This applies to the total
number of queries a user may run across all systems. May be overridden
per user.
- The default concurrent system query limit. Primarily to avoid a system
getting overloaded. May be overridden per system.

On a per-system basis:
- The system name/ids the configuration targets. Regex matching is
supported. Pattern uniqueness is enforced.
- The concurrent system query limit. Overrides the system-wide value.
- Whether queries submitted to the system count towards a user's
concurrent query total. This is always true unless specified otherwise.
- The concurrent system query limit for different query logic groups.
Regex matching against group names is supported. Pattern uniqueness is
enforced.

On a per-user basis:
- The user DN.
- The user's concurrent query limit. Overrides the system-wide
configuration.
- The user's concurrent query limit for different query logic groups.
Regex matching against group names is supported.

On a per-query-logic-group basis:
- The group name.
- The query logics included in the group. Regex matching is supported.
Pattern uniqueness is enforced.
- The default concurrent user query limit. This applies to the total
concurrent queries a user may run that originate from a query logic in
the group across all systems.

Given the possibilities for exact matches, partial regex matches, and
wildcard regex matches, the determination of the best limit to use for
any particular system, query logic, or query logic group is done by
sorting matches into the following 'matching buckets' (in best-match
priority):

1. Exact match: We attempt to find an exact match first and use the
associated limit.
2. Partial regex (non-wildcard-only): If we cannot find an exact match,
then we attempt to find all partial matches, and see if any of their
limits are met.
3. Wildcard-only regex: In the case of no exact or partial matches, we
use the wildcard match with the lowest limit.

## Implementation

Checking limits and marking as active/inactive is done through the
`QueryLimiter` class. The three main methods to know are:
- `QueryLimiter.checkForLimits()`
- `QueryLimiter.countQueryTowardsLimits()`
- `QueryLimiter.stopCountingQueryTowardsLimits()`

When a query is marked as active via
`QueryLimiter.countQueryTowardsLimits()`, it will delegate to the
ActiveQueryTracker, which will in turn create nodes in Zookeeper under
the `ActiveQueries` namespace. When `ActiveQueryTracker.trackQuery()` is
called, the following nodes are created:

```
# Container nodes
/users/<userDn>/<queryLogic> # Only for queries on systems that count towards user limit
/systems/<system>/<queryLogic>
/distinctQueryLogics/<queryLogic>  [Only created if it does not exist.]

# Ephemeral nodes. These will auto-delete themselves if their associated Zookeeper connection ever goes down.
/users/<userDn>/<queryLogic>/<queryId> # Only for queries on systems that count towards user limit
/systems/<system>/<queryLogic>/<queryId>
```

`ActiveQueryTracker.trackQuery()` will return a `QueryHeartbeat` that
contain a list of `PersistentNode` (provided by the Apache Curator
library) wrappers around the ephemeral nodes listed above. The
`QueryHeartbeat` will maintain the connection to Zookeeper and attempt
to keep the ephemeral nodes present in Zookeeper until
`QueryHeartbeat.stop()` is called. If `QueryHeartbeat.stop()` is called,
or the webserver crashes, the ephemeral nodes will automatically be
deleted by Zookeeper.

The following error codes have been added:
```
412-20  - Concurrent query limit exceeded
500-164 - Error checking concurrent query limits
```
Closes #3100

---------

Co-authored-by: Bill Oley <[email protected]>
Co-authored-by: foster33 <[email protected]>
Co-authored-by: Ivan Bella <[email protected]>
2026-04-29 16:01:21 +00:00
hgklohr 75e32682d2 Update pom's for 7.39.0-SNAPSHOT 2026-04-27 11:11:00 +00:00
hgklohr d40f3c82cb Update pom's for 7.38.0-SNAPSHOT 2026-03-30 19:41:29 +00:00
hgklohr 06a5cb73d9 Update pom's for 7.37.0-SNAPSHOT 2026-03-11 16:12:52 +00:00
hgklohr 18e3bb7c7d Update pom's for 7.36.0-SNAPSHOT 2026-02-20 15:58:01 +00:00
Bill Oley 89d0f74018 Use correct slf4j impl in wildfly and services, update versions of type-utils, metadata-utils, common-utils, accumulo-utils, base-rest-responses (#3382)
Use correct slf4j impl in wildfly and services, update versions of
type-utils, metadata-utils, common-utils, accumulo-utils,
base-rest-responses in microservice starters, apis, services to track
datawave version

The use of these dependencies under microservices (starters, services,
api) should track the datawave version instead of the version number
from when they were in separate repositories
Because the prior versions used a different groupId, we have the case
where multiple versions of the same artifact are being included in some
microservices.
For instance, this caused a serialization conflict once the
serializationId in BaseType (type-utils) changed in datawave version
7.30.0. When both versions are present on both sides of a serialization,
whether a serialization exception occurs is indeterminate.

gov.nsa.datawave.core:accumulo-utils
gov.nsa.datawave.core:type-utils
gov.nsa.datawave.core:metadata-utils
gov.nsa.datawave.core:common-utils
gov.nsa.datawave.core:base-rest-responses

After this PR is merged, the following should be done to make the
starters, apis, modules, and services depend on released version of each
other.

Release datawave-microservice-service-parent:5.0.8
In all modules with parent datawave-microservice-service-parent, update
to datawave-microservice-service-parent:5.0.8

Release authorization-api:4.0.2
In starter-datawave update to authorization-api:4.0.2

Release starter-datawave:4.0.6
Release query-metric-api:4.1.3
Release query-api:1.0.1
Release accumulo-api:4.0.1
Release modification-api:1.0.1
Release dictionary-api:4.0.6


In hazelcast-common update to starter-datawave:4.0.6
Release hazelcast-common:4.0.3

In hazelcast-client update to hazelcast-common:4.0.3
In starter-audit update to starter-datawave:4.0.6,
authorization-api:4.0.2
In starter-metadata update to starter-datawave:4.0.6 
In starter-query-metric update to starter-datawave:4.0.6,
query-metric-api:4.1.3, authorization-api:4.0.2

Release hazelcast-client:4.0.3
Release starter-audit:4.0.4
Release starter-metadata:3.0.3
Release starter-query-metric:3.0.4

In starter-query update to starter-datawave:4.0.6, query-api:1.0.1,
hazelcast-client:4.0.3, starter-metadata:3.0.3,
starter-query-metric:3.0.4
Release starter-query:1.0.9

In starter-cached-query update to starter-datawave:4.0.6,
hazelcast-client:4.0.3, starter-audit:4.0.4, starter-query:1.0.9
Release starter-cached-query:1.0.11

In mapreduce-query-core-job update to starter-query:1.0.9
Release mapreduce-query-core-job:1.0.5

In query-executor-api update to starter-datawave:4.0.6,
starter-query:1.0.9
Release query-executor-api:1.0.8

In accumulo-service update to starter-datawave:4.0.6, accumulo-api:4.0.1
In audit-service update to starter-datawave:4.0.6,
hazelcast-client:4.0.3
In authorization-service update to starter-datawave:4.0.6,
hazelcast-client:4.0.3, authorization-api:4.0.2
In config-service update to starter-datawave:4.0.6
In dictionary-service update to starter-datawave:4.0.6,
dictionary-api:4.0.6, starter-metadata:3.0.3
In file-provider-service update to starter-datawave:4.0.6
In hazelcast-service update to hazelcast-common:4.0.3
In mapreduce-query-service update to mapreduce-query-core-job:1.0.5,
starter-query:1.0.9
In modification-service update to starter-metadata:3.0.3,
query-api:1.0.1, modification-api:1.0.1
In query-service update to starter-datawave:4.0.6, query-api:1.0.1,
starter-cached-results:1.0.11, starter-query:1.0.9
In query-executor-service update to starter-query:1.0.9,
query-executor-api:1.0.8
In query-metric-service update to starter-datawave:4.0.6,
starter-metadata:3.0.3, hazelcast-common:4.0.3

Release accumulo-service:4.0.3
Release audit-service:4.0.3
Release authorization-service:4.0.5
Release config-service:4.0.2
Release dictionary-service:4.0.10
Release file-provider-service:1.0.1
Release hazelcast-service:4.0.3
Release mapreduce-query-service:1.0.5
Release modification-service:1.0.3
Release query-service:1.0.12
Release query-executor-service:1.0.10
Release query-metric-service:4.1.9
2026-02-10 15:09:20 +00:00
hgklohr 2943ba4b7f Update pom's for 7.35.0-SNAPSHOT 2026-01-15 17:33:02 +00:00
hgklohr eb4739ebc7 Update pom's for 7.34.0-SNAPSHOT 2025-12-15 17:11:31 +00:00
Bill Oley 941c72b565 Remove MapReduce API from the webservice (#3231) 2025-10-28 17:48:19 +00:00
Kevin Toth d841892a62 Update pom for 7.33.0-SNAPSHOT 2025-10-24 11:11:40 +00:00
Kevin Toth 60777ee9fd Update pom for 7.32.0-SNAPSHOT 2025-10-09 13:34:27 +00:00
hgklohr 9ab693dc3c Update pom's for 7.31.0-SNAPSHOT 2025-09-23 12:13:04 +00:00
hgklohr 3070d53c96 Update pom's for 7.30.0-SNAPSHOT 2025-08-26 20:28:20 +00:00
hgklohr 48ce9df489 Update pom's for 7.29.0-SNAPSHOT 2025-08-14 14:17:16 +00:00
Kevin Toth a3d2dc92f0 Update pom's for 7.28.0-SNAPSHOT 2025-07-24 11:26:03 +00:00
hgklohr cdbae5b4fa Update pom's for 7.27.0-SNAPSHOT 2025-07-08 00:46:23 +00:00
hgklohr 1d739589d9 Update pom's for 7.26.0-SNAPSHOT 2025-06-25 20:14:08 +00:00
Kevin Toth 60c2dbbdf3 Update pom's for 7.25.0-SNAPSHOT 2025-06-13 18:16:34 +00:00
hgklohr 9b95c179af Update pom's for 7.24.0-SNAPSHOT 2025-05-30 12:43:20 +00:00
Joseph AlphonsoandJoe Alphonso 0bf2040ed3 Github CI changes to support pom-updates (#2898)
* Github CI changes to support pom-updates

* fix microservice image push

* remove no-op, reorder, add comment

* MR feedback and split microservice container builds out

* use verbose maven args for readability

* split deploy workflow into two jobs, clean up commented code, add job deps

* tweaks

* remove .github workflows from former submodules

* try 2nd task in same job instead

* rename job

* remove dupcliate dep declaration

* disable build-cache since it is not being saved

* fix rebase issues

* speed up test retries

* add skipITs since skipTests is deprecated for the failsafe plugin

* add skip.unit.tests property

* Update tests.yml

* Update tests.yml

* allow integration tests to run separately from unit tests

---------

Co-authored-by: Joe Alphonso <[email protected]>
2025-05-16 15:19:18 +00:00
hgklohr 06caad770f Update pom's for 7.23.0-SNAPSHOT 2025-05-16 12:42:58 +00:00
hgklohr edaa70322b Update pom's for 7.22.0-SNAPSHOT 2025-05-09 13:36:25 +00:00
Joseph AlphonsoandJoe Alphonso 95eef4c744 Pom updates (#2803)
* 1st round

* 2nd round

* update mvn extensions.xml

* more plugin cleanup

* more plugin version bumps

* microservices use parent snapshot for development

* exclude log4j from yarn

* update contrib poms

* exclusions and plugin updates

* remove duplicate entry from dist.xml

* updates

* formatter version bump for in-memory-accumulo

* fix formatter config

* typo

* make formatter config consistent

* junit var and set removeTrailingWhitespace to true

* replace spotify docker plugin with fabric8

* fix web-services deploy

* remove several plugin warnings

* junit fixes

* contrib fixes

* revert datawave-code-style version

* remove several contrib warnings

* use relocated and updated git-commit-id-maven-plugin

* remove javadocVersion property to address warning

* add maven-install-plugin to microservice parent

* use jkube for docker builds on warehouse and web

* use spring-boot-maven-plugin native oci image build

* clean up plugins in in-memory-accumulo

* replace relative paths in quickstart with build-in var

* remove unused exec plugin

* Revert "use spring-boot-maven-plugin native oci image build"

This reverts commit b7b76587f52ee6893669771098bfad7226167e3a.

* fix banned exclusions

* remove deprecated javadoc conf option

* fix junit after rebase

* migrate a few test cases to JUnit5 and fix warnings

* use maven.multiModuleProjectDirectory instead of datawave.root

* revert accumulo version bump

* fix quickstart

* skuzzle plugin version bump

* remove duplicate dep

* remove duplicate repository declarations

* resolve spotbugs findings

* get rid of warning when using build-cache

* cleanup and fix web-service application pom

* revert accumulo version

* remove unused property

* formatting

* make docker rpm include less restrictive

---------

Co-authored-by: Joe Alphonso <[email protected]>
2025-05-05 21:43:36 +00:00
hgklohr 403bef9c62 Update pom's for 7.21.0-SNAPSHOT 2025-04-24 23:48:03 +00:00
0fe36cca21 sonarqube code coverage (#2011)
* sonarqube code coverage

* v 7.18.0

* 7.19

* code coverage plugin changes

* add coverage to microservices

* remove empty plugin blocks

* add jacoco to pluginManagement for micro

* fix unit test assertion

* cleanup

---------

Co-authored-by: Christopher Gross cogross <[email protected]>
Co-authored-by: Joe Alphonso <[email protected]>
2025-04-24 12:56:19 +00:00
hgklohr 104808cfbb Update pom's for 7.20.0-SNAPSHOT 2025-04-16 11:17:22 +00:00
hgklohr 9980af394c Update pom's for 7.19.0-SNAPSHOT 2025-03-27 12:34:30 +00:00