Commit Graph
58 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
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
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
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
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
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
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
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 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
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
Bill Oley 886f2b7110 Use RemoteQueryMetricService to write QueryMetrics from QueryMetricsWriter and for metric operations from QueryMetricsBean (#1392) 2022-03-10 16:21:21 -05:00
8f0dcde0ae closes #1225: add uid aggregator that will keep countOnly keys when 0… (#1226)
* closes #1225: add uid aggregator that will keep countOnly keys when 0 or below

* update javadoc to explain count only

* dropped soon-to-be-defunct test case, fixed test names, added test cases

Co-authored-by: Jeffrey Schmidt <[email protected]>
Co-authored-by: Ivan Bella <[email protected]>
Co-authored-by: hgklohr <[email protected]>
2021-08-06 15:00:10 -04:00
evilgandElizabeth Gilbert f7c2c57b83 Fix ingest and flagmaker metrics (#1192)
* Fix ingest and flagmaker metrics. Also enable -ingestMetricsDisabled flag to be overridden for BulkLoader process.

* Fix FlagMetrics formatting

Co-authored-by: Elizabeth Gilbert <[email protected]>
2021-07-06 10:55:36 -04:00
evilgandElizabeth Gilbert 9db1b14518 Expose the timeout configurations for the live flag maker and the datawave table cache (#1158)
Co-authored-by: Elizabeth Gilbert <[email protected]>
2021-04-26 15:20:17 -04:00
Ivan Bella 55207ae970 Merge branch 'release/version2.9' 2020-09-25 14:47:38 +00:00
FineAndDandy d47b69c70b fixes #923 Add JobObservable and notifications during bulk load and live ingest (#924) 2020-09-23 12:11:10 -04:00
Drew Farris 9b7e202af3 FacetHandler ingest code + FacetedQueryLogic Configuration (#793)
* Faceted Ingest & Search for Datawave (#793)

* `FacetHandler` generates facets for data at ingest time.
   * Adds 3 tables: datawave.facets, datawave.facetMetadata, datawave.facetHashes.
   * Adds dependency on `com.clearspring.analytics:stream` for summarization and cardinality estimation.
   * Ingest configurations that add the FacetHandler for tvmaze/myjson data
* Adds FacetedQuery query logic and FacetedQueryPlanner
    * Override hardcoded references to facet metadata in `FacetedQueryPlanner`, `FacetCheck`, `FacetQueryPlanVisitor`.
    * Facet Table test related code added to `AccumuloSetupHelper`.
    * Added build properties for facet tables in `QueryLogicFactory.xml`.
* `FacetedQueryLogicTest` now validates results,needs more work needed for the dynamic computation case.
* Added field name to facet values so they can be distinguished when we're faceting multiple fields.
* `DynamicFacetIterator` rebuilds fixed by having cardinality summaries include a max key.
* Improvements to table value handing in `PrintUtility` test utility.
* Fixes for clarity in `RebuildingScannerTestHelper`.
* Resolved concurrency issue in MergedReadAhead to fix intermittent test failures 
* Added simple unit test to demonstrate properties of probabilistic data structure test.
2020-07-07 09:34:57 -04:00
palindrome b904ff634d Addresses #721. Set groundwork for internally generated evaluation only fields (#800) 2020-04-20 14:31:53 -04:00
Ivan Bella 7e85db2496 Merge branch 'release/version3.0' 2020-02-26 18:36:43 +00:00
Bill Oley ac24f6c8a2 fix #750 Fix BulkResults ( MapReduce API) - broken during Datawave refactoring (#754)
* fixes #750 Fix BulkResults (via MapReduce API) which was broken during Datawave refactoring

* fixes #750 Change property name
2020-02-24 08:33:51 -05:00
Whitney O'Meara 73aec88eb3 Updated the ivarators to be able to use alternate filesystems (#639)
* Updated the ivarators to be able to use alternate filesystems and paths when persisting cached entries to disk.
2019-11-22 15:44:44 -05:00
Whitney O'Meara 707f9d3aef Adds ability to plot geo query geometries on a map via the query metrics endpoint. (#573) 2019-11-22 15:32:36 -05:00
Whitney O'Meara d75727b7ea Made the ivarator range merging logic configurable. (#459) 2019-07-05 11:20:15 -04:00
keith-ratcliffe 8da08a0b4d re #282 - accumulo microservice refactoring (#423)
* Fixes #282 - accumulo microservice refactoring
2019-05-10 09:44:43 -04:00
Bob Whitehurst 2ca1cb570b generation of shard statistics (#415)
* Created a StatsJob which will sample data and generate the selectivity of terms.  These stats will eventually be incorporated into the query planning.
2019-05-09 13:45:04 -04:00
Whitney O'Meara f4b7dbfe43 Added the ability to combine ranges against the same field (#414)
* Added the ability to combine ranges against the same field under an or node into a single ivarator.
* Updated travis config to build microservices.
* Updated DatawaveInterpreter and Arithmetic to support evaluation of ExceededOrThresholdMarkerJexlNodes.
2019-05-06 11:07:02 -04:00
keith-ratcliffe 436ddec16b Updates to simplify DW setup for use with authorization microservice (#416)
* Updates to simplify DW setup for use with authorization microservice

* Removes unused variables
2019-04-25 11:14:34 -04:00
keith-ratcliffe f56753b346 fixes some misconfigurations with the web service deploy and with the quickstart environment 2019-04-23 13:52:06 -04:00
Moriarty ac742dc0f7 Range stream enhancements (#386)
* General code cleanup in preparation for RangeStream refactor.

* Added property to control collapsing uid requests that exceede a threshold.

* Refactored RangeStream for cleaner instantiation of limited scanners, added test for CreateUidsIterator, added comments with example use case.

* Added tests for CondensedUidIterator, RangeStream, and RangeCoalescingVisitor.
2019-04-08 13:52:31 +00:00
keith-ratcliffe 04830e6ba9 * Cleanup of 'NUM_SHARDS' build property usage, which is now deprecated
in favor of 'table.shard.numShardsPerDay'
* HDFS paths uppdated so that everything can be rooted under /datawave
* Quickstart changes:
  - Fixes misconfiguration of Accumulo VFS context
  - Updates to allow for easier customization
2019-03-27 17:40:22 -04:00
FineAndDandy de48346a40 fixes #351: Stop using ConfigurableEventDataQueryFilter (#358)
* Stop using ConfigurableEventDataQueryFilter
* Deprecated ConfigurableEventDataQueryFilter, removed comment
2019-03-08 13:21:30 -05:00
FineAndDandy 79bfdd9390 DATAWAVE-340: Allow configuration of wildfly io/worker threads (#341) 2019-02-15 11:58:08 -05:00