Commit Graph
91 Commits
Author SHA1 Message Date
Moriartyandalerman 3c9e0633a3 Limit ContentQuery record IDs (#4038)
Co-authored-by: alerman <[email protected]>
2026-10-19 14:47:16 +00:00
MoriartyandClaude Opus 5 0ac549a3a2 Pre-split the shard table in docker compose (#3885)
The whole sharded schema sat in one tablet, so no number of tablet
servers, scan servers or compactors made any difference to a query.
Splits now come from a checked-in file, the deployment moves to three
shards per day, and verifySplits.sh guards that in CI.

Also fixes the num shards cache, which scanned a metadata table name no
deployment that renames its tables actually uses. The missing table was
swallowed, so a day expanded into no shards and the query silently
returned nothing.

---------

Co-authored-by: Claude Opus 5 <[email protected]>
2026-08-28 11:24:22 +00:00
9b2b652221 Codex assisted: Replace Quickstart container with using the container… (#3856)
…s from NationalSecurityAgency/datawave-stack-docker-images

---------

Co-authored-by: Moriarty <[email protected]>
Co-authored-by: Claude Opus 5 <[email protected]>
2026-08-19 16:36:02 +00:00
Drew Farris c0e9cff9f8 Adds truthmark tables, for storing human-generated annotations (#3686) 2026-07-14 20:08:10 +00:00
d7df805e14 Version7.29 loe1 rebase int (#3306)
Co-authored-by: Drew Farris <[email protected]>
Co-authored-by: alerman <[email protected]>
Co-authored-by: FineAndDandy <[email protected]>
Co-authored-by: Joseph Alphonso <[email protected]>
Co-authored-by: Joe Alphonso <[email protected]>
Co-authored-by: hgklohr <[email protected]>
2025-12-15 15:40:50 +00:00
Bill Oley 941c72b565 Remove MapReduce API from the webservice (#3231) 2025-10-28 17:48:19 +00:00
344e5e26f2 simple annotation ingest (#3243) (#3245)
Dan was having github issues so I pushed this for him in case anyone has
questions about this PR

---------

Co-authored-by: d-hwang <[email protected]>
Co-authored-by: Joseph Alphonso <[email protected]>
2025-10-27 17:04:24 +00:00
Drew Farris 3a60df6354 Annotation manager web service (#3173)
This builds on the framework in #3170 to provide a web-services layer
for managing annotations and performing general CRUD operations.
2025-10-27 16:35:08 +00:00
Bill Oley a29242adb3 Better handle case where IvaratorRunnable gets stuck during yield / suspend (#3220)
Better handle case where IvaratorRunnable gets stuck during yield /
suspend

If an IvaratorRunnable is being suspended on a yield and an Accumulo
scan prevents it from checking suspendRequested for greater than 60
seconds, then the suspend request will return, the yield will be
processed, and

the IvaratorRunnable will likely get an exception when using the
Accumulo source and print an ERROR log
To limit unnecessary ERRORs in the log, we should log at INFO if the
suspendRequested AtomicBoolean is set and ERROR otherwise

While some code is in place to make maxYields configurable, it is not
coded throuth to the query logic configuration the same way that the
yield threshold is. We should fix this and sen the maxYields to 20 which
would then be > 60 minutes at which point the query will time out in the
webservice.
2025-10-06 16:07:37 -04:00
Moriarty aff2a28e98 experimental sharded index (#3127)
proof of concept for a sharded global index
2025-09-29 16:51:16 +00:00
674fb299b0 Bulk v2 accumulo 4894 rebased (#3092)
Co-authored-by: keith-ratcliffe <[email protected]>
Co-authored-by: Daniel Roberts ddanielr <[email protected]>
2025-08-13 15:25:01 +00:00
Joseph AlphonsoandJoe Alphonso 54eb6157ca fix docker registry handling (#3060)
renamed `docker.image.prefix` to `docker.registry` to make purpose clear
resolves image push failures

---------

Co-authored-by: Joe Alphonso <[email protected]>
2025-07-29 18:05:34 +00:00
Joseph AlphonsoandJoe Alphonso 14756eb4a6 cleanup quickstart and jkube docker configuration (#2998)
* cleanup quickstart and jkube docker configuration

set compose prefix

stop boostrapping maven twice

add default back for microservices since they do not load the properties files

add latest tag to compose tests

# Conflicts:
#	contrib/datawave-quickstart/docker/docker-build.sh
#	contrib/datawave-quickstart/docker/pom.xml

# Conflicts:
#	microservices/microservice-parent/pom.xml

* remove cdn download from pom and set file urls to local paths

* fix file paths

* testing

# Conflicts:
#	microservices/microservice-service-parent/pom.xml

* cleanup and add quickstart web tests back to CI

* update quickstart ci test

* testing fixes

* fix bug

* address compose warning

* bugfix

* dev profile clean up and docker-entrypoint.sh fix

* bootstrap only when install is called

* kill process when there is a fatal error

* update maven to a version we actually have

* install maven via os pkg mgr to start

* move quickstart jdk check to the install.sh scripts

* copy maven from latest maven-3 image at container build time

* remove maven download and bootstrap code

* fix returns and exits so we terminate quickstart build upon first fatal error

* remove quickstart ci job

* remove broken maven download from inside quickstart

* remove obsolete arg

* bump microservice-parent version in child poms

* bump microservice-service-parent version in child poms

* use mvn --settings arg

* rename vars and add to pom for warehouse docker image

* add web tests to CI

* reenable compose snapshot ci job

* add missed mvn --settings arg

* testing

* fix bug

* remove testing changes

* fix web tests

* fixes so users can use scripts outside of the container

---------

Co-authored-by: Joe Alphonso <[email protected]>
2025-07-24 12:40:52 +00:00
6064bdc5a7 Add query field rule (#2672)
* Add query field rule

* Add QueryPlanningStage (missed in first commit)

* updates to allow rules to access node lineage

* Make parseRules public

* Delete warehouse/query-core/src/main/java/datawave/query/planner/QueryPlanningStage.java

remove unused class

* Delete warehouse/query-core/src/main/java/datawave/query/jexl/visitors/QueryFieldsRuleVisitor.java

remove unused class

* move members to impl

---------

Co-authored-by: hlgp <[email protected]>
Co-authored-by: Moriarty <[email protected]>
2025-07-22 09:02:07 +00:00
Ivan Bella da3a4a1271 Revert "Updated so that the dev and compose profiles can build the docker images"
This reverts commit 22f406a9ac.
2025-06-05 13:44:37 +00:00
Ivan Bella 7fe18e05a8 Revert "Apparently updating the compose profile breaks the pipelines"
This reverts commit e795743112.
2025-06-05 13:44:24 +00:00
Ivan Bella e795743112 Apparently updating the compose profile breaks the pipelines 2025-06-05 12:27:20 +00:00
Ivan Bella 22f406a9ac Updated so that the dev and compose profiles can build the docker images 2025-06-04 19:18:01 +00:00
alermanandpalindrome beab63acad Update kubernetes properties (#2529)
Co-authored-by: palindrome <[email protected]>
2025-05-20 15:11:02 +00:00
Bill Oley eee4940e95 Add abilty to yield in Ivarators, AndIterator, OrIterator and return metrics before yield (#704) (#2042)
* Add abilty to yield in Ivarators, AndIterator, OrIterator and return metrics before yield (#704)

* Improvement to debug and trace logging in QueryIerator.seek() (#704)

* Feedback from MR comments (#704)

* Add collectTimingDetails and yieldThresholdMs to spring-boot-starter-datawave-query

* Allow yieldThresholdMs < 50ms to work and check for values <= 0

* MR fixes for toStringImpl, toStringNoQueryId in Ivarator and subslasses; add some documentation

* Fix spotbugs issues

* Add yieldthresholdMs to application-query.yml for docker-compose configuration

* Add collectTimingDetails to application-query.yml
2025-05-15 19:43:20 +00:00
Ivan Bella 83e587fbf2 Feature/separate webservice hdfs config (#2453)
* fixes #2452: Added a local ivarator cache dir configuration
2025-03-28 08:41:04 -04:00
jeff a4750b1f4a Store active job cache pointer in Zookeeper (#2681)
* Store active job cache pointer in Zookeeper

* Reuse zookeeper jar function
2025-01-14 11:55:37 -05:00
053e1f210c Add workflow that creates publishes accumulo versions to Github Packa… (#2581)
* Add workflow that creates publishes accumulo versions to Github Packages and generates datawave docker images using the updated accumulo

* Fix Property

* Updates from PR comments

* PR comment: Update checkout version

* Add defaults for workflow

* PR comments. Add Cache. Update version name

* Update .github/workflows/build-accumulo.yml

Co-authored-by: Christopher Tubbs <[email protected]>

* Update .github/workflows/build-accumulo.yml

Co-authored-by: Christopher Tubbs <[email protected]>

* Update .github/workflows/build-accumulo.yml

Co-authored-by: Christopher Tubbs <[email protected]>

* Update .github/workflows/build-accumulo.yml

Co-authored-by: Christopher Tubbs <[email protected]>

* Update .github/workflows/build-accumulo.yml

Co-authored-by: Christopher Tubbs <[email protected]>

---------

Co-authored-by: Christopher Tubbs <[email protected]>
Co-authored-by: Daniel Roberts <[email protected]>
2024-10-11 13:07:37 +00:00
34229b5705 Task/locking (#1411)
* #1406: Add locking to load-job-cache

* #1406: Add file_locker.sh to assemble pom to populate variable from properties

---------

Co-authored-by: Elizabeth Gilbert evgilbe <[email protected]>
Co-authored-by: datawave-bot-builder <[email protected]>
Co-authored-by: palindrome <[email protected]>
2024-09-12 12:14:15 -04:00
Adam Lerman 942965247b Update uuid view properties 2024-09-06 16:28:12 +00:00
Moriarty c2f5550fa9 Remove functionality and deprecate shardsPerDay and eventPerDay thresholds (#2447) 2024-06-27 13:53:06 -04:00
Bill Oley a13d7d06ad Fix remote service redirects so that they will work in docker-compose/consul or in kubernetes (#2408) 2024-06-07 15:40:30 -04:00
9dadf7b2c6 Feature/query microservices (#2192)
* Modified a couple of things and fixed a few tests with the integration merge.

* pulling in latest audit changes

* pulled in latest audit updates

* Fixed metrics version in docker compose

* Updated accumulo utils and datawave starter versions.

* Updated the audit api and audit starter versions

* Updated authorization api version

* Updated accumulo api version.

* Updated config service with latest changes

* updated dictionary and accumulo utils version

* Updated hazelcast version

* bumped query metric api version

* Updated pki for query microservices docker deployment.

* Fixing the docker compose bootstrap to avoid duplicate extra hosts issue.

* adding latest datawave changes

* updated metadata utils

* updated docker compose to use the latest version of each service.

* Added a cached results spring boot starter and updated associated classes accordingly.

* fixing spotbugs error

* fixed install-ingest.sh for datawave.

* Updates to get bulk results map reduce query working again.

* formatting

* Updates per a race condition discovered in the kafka variant of the
query executor tests.

* Update README.md

* accumulo service merge from main

* fixed a test that broke after merging integration

* Added logic from Datawave Principal Login Module to the datawave spring boot starter.

* Updated datawave to 5.4.0-SNAPSHOT

* Updated ProxiedUserDetails to use dynamic type for newInstance method.

* updated audit service to stop intermittent test failures.

* Updated the query results publisher and setup the kafka manager to create topics manually.

* Added github actions for some submodules

* Updated github actions to avoid running out of disk space.

* Updated import sorting for microservices using impsort plugin.

* fixing merge conflicts

* updated metadata utils

* Moved Query, QueryImpl to query-api

* Removed usage of zookeeper stringutils

* added package-info.java for Query, QueryImpl

* updated modification service logic to use ProxiedUserDetails.

* Removed unnecessary jackson annotations to address enunciate issues

* Updated profile ids for submodules

* changes to get the github actions working again

* attempting to fix github actions

* typo

* udpated kafka config

* removed banned dependency

* bumped release version

* formatting

* fixing docker compose kafka setup

* updated deploy poms to work with the latest version of maven

* bumped version for some modules

* bumped microservice service parent version

* Updated with latest changes from main/integration

* fixed the composite query logic for the query microservices

* updated submodules

* Added v1 to the model path

* For this branch we need to checkout all submodules when building tests.

* Added alerman's run cache settings for docker

* Updated github actions to build query microservices correctly

* fixed build cache config typo

* Updated query service to use pool header, and allow for admin override via parameter

* Updated github ci to make sure it runs against the queryMicroservices branch

* Updated lookup uuid to accept multiple terms per field

* Updated confirm ack configuration for query metric service, and added configuration to make rest metrics updates possible

* Added support for long running queries

* Added configcheck command line utility

* updated next call logic for long running queries

* updated query metric service and starter submodules

* Added some plugins to the config check service

* Updated configcheck tests to trim whitespace

* fixing unit tests for config check

* Changed from max long running query timeouts to long running query
timeout

* Updated the query starter submodule

* updated submodules

* fixed composite query logic test

* Refactored query scripts to use common code

* Updated quickstart docker-maven-plugin to not cleanup old tagged releases

* updated common-utils submodule

* Updated LookupService to behave the same as the webservice

* Fixed TypedValue (de)serialization, and added a result post processor to handle things like counts

* reset docker-compose quickstart to just be accumulo, not web

* Changed how the result postprocessor runs to support result aggregation for long running queries

* Renamed aggregateResults to reduceResults

* Added junit-jupiter engine to datawave core pom

* Updated query logic factory to add logic map

* Updated EdgeQueryLogicFactory configuration

* Removed unused RemoteQueryLogic and cleaned up RemoteEventQueryLogic class definition:

* Implemented authorization and query federation for the query microservices

* Fixed copy constructor parameter assignment in QueryData

* Formatting job fix

* Fixing build/formatter issues for latest changes pulled in from integration

* Fixed SSDeepIngestQueryTest

* Updated usage of remote user operations for query microservices

* Fixed QueryPlan constructor

* Moved filtering and delegating query logic functionality into datawave-core-query so it can be used by the microservices

* formatting

* Updated submodules

* Updated package names for commons.lang3 classes due to type-utils fix

* Moved the AuthorizationsPredicate class to authorization-api

* Removed hadoop dependencies from pom

* Updated edge configuration to reset param variables before loading new values

* Excluded log4j from our maven plugins

* Updated in-memory-accumulo javadoc plugin to exclude log4j

* Updated microservice-parent maven-dependency-plugin to exclude log4j

* Removed infinispan from query starter

* Remove validation call from LoadModel

* fixed formatting

* Updated datawave ingest jar libs

* QueryMetricQueryLogic must copy runAsMetricsAdministrator setting in copy constructor

* Revert query metric query logic back to it's original state

* pr feedback

* PR feedback

* PR Feedback

* PR feedback

* PR Feedback

* PR feedback

* PR feedback

* PR Feedback

* PR Feedback

* PR feedback

* PR feedback

* PR feedback

* pr feedback

* PR feedback

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* PR feedback

* PR feedback

* pr feedback

* pr feedback

* Updated in-memory-accumulo commit

* in-memory-accumulo

* formatting

* query starter

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* Remoted CachedQueryStatus mechanism

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* pr updates

* pr feedback

* pr review: found duplicate properties between configurations and the
super GenericQueryConfiguration class.  Removed redundant copies in
ShardQueryConfiguration checkpoint copy constructor

* review comments

* review comments

* Reverted path changes in dictionary service

* pr review updates

* updated executor to use QueryStatusUpdateUtil

* updated query microservice submodule

* make github action tests match integration

---------

Co-authored-by: Ivan Bella <[email protected]>
Co-authored-by: GitHub Actions <[email protected]>
Co-authored-by: Bill Oley <[email protected]>
2024-05-20 16:33:34 +00:00
Whitney O'Meara 0a262b9a2d Updated dictionary redirect for docker compose deployment 2024-04-29 10:52:41 -04:00
alerman 0e1f2f3b60 Update kubernetes.properties (#2330) 2024-03-29 13:28:30 -04:00
Whitney O'Meara d17f6fe704 Added missing property to compose.properties to fix the docker compose quickstart deployment 2024-03-08 16:59:56 +00:00
alerman 5b1587638c Fix kubernetes properties for defined views (#2294) 2024-03-05 05:51:21 -05:00
keith-ratcliffe 53596ddcf3 For performance reasons, revert BulkIngestMapFileLoader
back to 1.x API temporarily until precomputation of load plans
is feature-complete

This reverts commit 569f29aa90.
2024-02-29 15:17:06 +00:00
12cc1f9a92 re #2270: Iimplementation of a record filter for the ingest processing (#2271)
* Created an event predicate for discarding events during ingest processing
* Created a discard interval and future discard interval predicates
* Updated tests to test hit and miss on the interval predicates
* Add default for DISCARD_FUTURE_INTERVAL event

Co-authored-by: foster33 <[email protected]>
Co-authored-by: Keith Ratcliffe <[email protected]>
Co-authored-by: hlgp <[email protected]>
Co-authored-by: palindrome <[email protected]>
Co-authored-by: matthpeterson <[email protected]>
2024-02-20 13:00:59 -05:00
Whitney O'Meara 8ce986f81a Updated uuidTypes for docker compose properties 2024-02-16 21:01:23 +00:00
Ivan Bella c26273c908 Updates to try and avoid hanging ivarators (#2093)
* Updates to try and avoid hanging ivarators
* fixed configuration issues of the thread pools
* Updates to allow value to be set via properties.
2024-02-12 11:10:18 -05:00
alerman 655b71d6ca Change definedView to be a map definedViews (#2227) 2024-02-09 10:58:40 -05:00
alerman 58746b93bc Create docker images in CI (#2264) 2024-02-07 12:31:49 -05:00
Whitney O'Meara 20ddf129c8 Feature/compose (#2224)
* initial commit

* Updated query metric service/starter

* cleaning up a bit

* Fixed some bash syntax errors and added to default properties

* Updated query metric service version for docker compose
2024-01-26 15:01:25 +00:00
Keith Ratcliffe 569f29aa90 Improvements to BulkIngestMapFileLoader / BulkIngestMapFileLoaderTest (#1864) (#2212)
- Updates for Accumulo 2.x bulk api
- Improved junit verification of bulk load via MiniAccumuloCluster integration
- Minor bug fixes to start-loader.sh script
- Quickstart updates to configure bulk ingest
2024-01-23 14:26:41 -05:00
Keith Ratcliffe c2558a5253 Closes #1994 - Update webservice XMLNS (#1995) 2023-06-16 13:49:28 -04:00
Moriarty 896b6acb0b optionally disable creating uids for the global index (#1969)
* optionally disable creating uids for the global index

* relocated uid flag to shard-ingest-config.xml, rework create uid logic

* remove return statement

* use shardIndexCreateUids directly
2023-06-13 08:55:05 -04:00
Ivan Bella aa5cf4c26d Added some documentation of properties, and keep alive values for tests 2023-05-31 21:31:29 +00:00
Ivan Bella b1042c9336 Feature/federate user operations (#1825)
* re #1821: Added a remote user operations implementation
  * Updated the authorization mechanisms to validate against the overall
     user (which may include the remote authorizations) and then the reduce
     by the query authorizations.  This allows the auths returned by the list
     effective authorizations which include remote auths to be used for local
     query logics as well.
  * Added optional flag to the listEffectiveAuthorizations avoid federation
  * Updated Query to now know about a remote user operations
  * logics will use the remote user operation if set for query auths
  * Composite Query Logic will recalculate query auths for each logic
  * Added test cases for new classes and integration tests
  * Updated test cases to handle new query logic getUserOperations call
2023-02-23 13:35:10 -05:00
Ivan Bella fcfdb18144 Response object factory creation and use (#1771)
* Updated to set the response object factory via spring for non-CDI instantiated object (i.e. query logics)
* Updated to fix responseObjectFactory usage various classes
2022-11-28 10:30:02 -05:00
Moriarty db6855e265 QueryLogics can optionally pull accumulo passwords from the environment (#1697)
* QueryLogics can optionally pull accumulo passwords from the environment

* reworked to use single EnvProvider

* Fix AccumuloRecordWriter
2022-10-21 14:39:22 +00:00
hgklohr df8788a4d9 Revert "fixes #1400: Return empty pages to keep Groupby queries alive"
This reverts commit 8ffa1cce73.
2022-04-21 16:30:10 +00:00
cmitchell 8ffa1cce73 fixes #1400: Return empty pages to keep Groupby queries alive
Queries marked as "allowLongRunningQuery" can exceed the 55 minute timeout to return results. This ticket is explicitely for groupBy queries, but it was implemented in a way that can be extending to other types of queries as well. Key changes:

* If a query that's allowed to be long running exceeds 50 minutes to return (so there's no risk of hitting the 55 minute timeout) , an empty ResultsPage is returned with a status of "PARTIAL", and the query continues to execute on the tserver.
* When the query does complete, all results are returned at once with a status of "COMPLETE" .
* The call to getTransformer() in the query logic now returns a singleton instance so that transformers in the list can be updated with the query start time necessary for the logic of this ticket
* The client side and tserver side of the grouping transform were broken out into two separate instances for clarity and maintainability (GroupingTransform and GroupingIterator respectively)
* LongRunningQueryTest tests this logic
2022-04-11 13:15:47 -04:00
Whitney O'Mearaandhgklohr 1159bf125f Fixes #1430 Added separate term threshold limits for use before and after query planning. (#1431)
Co-authored-by: hgklohr <[email protected]>
2022-04-08 11:01:12 -04:00
Bill Oley c0268b107a Use either the QueryMetricHandler or RemoteQueryMetricService to read/write QueryMetrics (#1474) 2022-03-24 16:26:05 -04:00