Detailed Version Log Deephaven 1.20221001

Detailed Version Log: Deephaven v1.20221001

PatchDetails
402DH-18792: Config server deadlock (fishlib push)
401DH-18792: Config server deadlock
400DH-18723: Input Tables cannot paste more rows than number of visible rows
399DH-18622: Fix controller issue for started-then-deleted PQs
398DH-18345: Update USNYSE calendar with national day of mourning for Jimmy Carter
397DH-18166: Avoid lock inversion in OneClickUtils (swing)
396DH-17927: Backport DH-16434, automatic node being at the top of the list, to jackson
395DH-18028: Fix ConnectorWrapper race conditions
394Merge updates from 1.20211129.430
  • DH-17822: Use ubuntu instead of centos for installer tests
  • DH-17890: Fix issue where PQ crashing outside schedule skips next start
  • DH-17822: Update iris-defaults.prop to use python3.8 by default
  • DH-17921: Update GWT-RPC to avoid websocket reuse bug
  • DH-17757: make csv import sensitive to CopyTable schemas
  • DH-17822: fix python setuptools, remove python 3.6 and 3.7
393DH-17995: Pull back filesystem validation in etcdctl.sh
392DH-17990: Lock inversion deadlock in WorkerLeaseHandler
391DH-17974: WouldMatch memo key is incorrect
390DH-17952: Improve Merge DataIndexer consumeTable performance
389Merge updates from 1.20211129.424
  • DH-17707: CART does not schedule reconnection on some failures.
388DH-17717: Check for Connection in com.illumon.iris.db.util.config.TableInputHandler#getTableRaw
387DH-17744: Remove setuptools.extern from legacy python
386Merge updates from 1.20211129.423
  • DH-17518: Fix dependent scheduling stop-time restart issue
385DH-17322: Restrict appendCentral by ACL group membership
384DH-17408: pause tailer connections
383DH-17467: Missed path on handling *-OLD directories
382DH-16827: Parameterized Queries listen for OneClick events (swing)
381DH-17451: Check diskspace before unpacking large tar files
380DH-17353: Deprecate centos7, remove centos nightly tests
DH-17378: Fix monit log file location on rocky/rhel OS
379DH-17372: Fix a bug in internal capacities of UpdateBy
378DH-17377: avoid location subscriptions in closeAndDeleteCentral
377DH-16495: handle reference counts while processing pending request snapshots
376DH-17317: Updates to jackson gen loggers test
375DH-17291: initialize BasicTableEventHandlerFactory earlier
374DH-17295: Make rhel8 nightly tests less flaky
373DH-17273: Manual changes after forward-merge
372Merge updates from 1.20211129.422
  • DH-17289: Put back testSerial and testParallel in main jdk8 build
  • DH-17188: CART does not detect reconnection if source is empty
  • Version log typos.
  • DH-17212: Remove PULL_CNF from jenkins menu
  • DH-17172: Controller Connection Memory Leak
371DH-17221: AggDistinct previous values error
370DH-17172: Controller Connection Memory Leak
369DH-17162: Use dh-mirror for internal VM images
368DH-14625: add release note
367DH-14625: create an optional lenient IOJobImpl to avoid write queue overflow (improvement)
366DH-14625: create an optional lenient IOJobImpl to avoid write queue overflow
365DH-16604: Add controller memory stats to performance metrics
364DH-17138: fix pseudo subscription errors
363Changelog typo corrections.
362DH-17072: Do not write temporary-state DH_ properties to cluster.cnf
361DH-17026: Publish EngineTestUtils (backport of DH-15687)
360DH-17058: Make pull_cnf disregard java version
359DH-16884: Add configuration for default user table format to be parquet
358DH-17048: Fix controller crash and shutdown issues
357DH-17014: Make cluster.cnf preserve original source and prefer environment variable
356DH-17031: Minor corrections and formatting for QA automation How-to
355DH-16936: make recreating schemas watch more efficient
354DH-16717: Add heap usage logging to web api, TDCP, DIS, LAS, controller, and configuration server
353DH-17004: change closeAndDeleteCentral to clean up tdcp subscriptions
352DH-17000: Correct improper test promotion in Jackson
351DH-16888: Preserve original cluster.cnf when regenerating cluster.cnf w/ defaults
350Merge updates from 1.20211129.417
  • DH-16599: Bard Mar 2024 test case updates for qa
  • DH-16986: Update for flaky results from merge test starting at Bard
  • DH-16887: Fix test for DH-11284 starting at Bard
  • DH-16797: Change git location on QA testing systems
349DH-16996: Forward merge of tests fixed in Bard to Jackson
348DH-16992: Promoting Jackson level tests to RELEASED
347DH-16979: Fix for CSV tests Jackson and later
346DH-16663: remove cached data when there are no active subscriptions
345DH-16934: Fix permissions check for writing workspace data
344DH-16908: Fix dry run in iris_keygen.sh
343DH-16851: Improve qa results setup docs
342DH-16826: Select/Deselect All for OneClick Lists in Export dialog (swing)
341DH-15247: Set DH_ETCD_IMPORT_NODE default value to the first config server
340DH-16675: Account for worker overhead in dispatcher memory utilization
339DH-16813: QA testing git update to Jackson
338DH-16818: QA Testing System file relocation and documentation updates
337DH-16072: Jackson Dec2023 test case updates for qa
336DH-16480: Documentation and support for QA_Results system build
335DH-16794: better handle export of nonexistent routing file
334Merge updates from 1.20211129.413
  • DH-16762: Fix C# docfx task (need to pin older version)
  • DH-16584: Make internal installer use correct sudo when invoking iris_db_user_mod
  • DH-16586: Improve qa cluster cleanup script
  • DH-16640: fixes for tests failing on bard and later revisions
333DH-16708: Improve import script on qa results
322DH-16698: Update BHS images to fix a broken rhel8 test
331DH-16752: Fix installer tests getting null clustername
330DH-16605: Use grep before sudo sed to avoid root when migrating monit
329DH-16406: Improve jackson nightly installer test debugability
328DH-16718: Fix test cases based on CommonTestFunctions refactor
327DH-16706: ColumnsToRowsTransform.columnsToRows fillChunk does not set output size
326DH-16700: Ensure QA results setup is maintainable
325Merge updates from 1.20211129.409
  • DH-16469: Bard Feb 2024 test case updates for qa
  • DH-16569: Backport DH-15882 to fix Pandas data frame view bug
  • DH-16149: Improve npm build caching in CI
324DH-11512: handle '*-OLD' directories better
323DH-16672: EmptyToNullStringRegionedColumnSource bypasses index narrowing in grouping
322DH-16623: Unit test fix from .321
321DH-16623: Index and GroupingBuilder .hasGrouping() should only look at locations relevant to the desired index
320DH-16624: ShiftedColumns Interacts with Time Parsing
319DH-16628: whereIn/whereNotIn with Empty Set Tables can Fail
318DH-16597: check for routing to export before opening output file
317DH-16591: Fix reading Parquet files with Mixed dictionaries and Offset Indices
316DH-16443: Add sudo -u DH_MONIT_USER for installer when checking if monitrc needs migration
315DH-16408: Do not use yum on systems with dnf
314DH-15523: Allow config_packager to run as irisadmin when irisadmin is monit user
313DH-14156: improve merge query and dhctl feedback when tailer ports are disabled
DH-14169: Fix message when purge fails
312Merge updates from 1.20211129.406
  • DH-16363: Remove kubectl from VM base images
  • DH-16442: Make ubuntu monit de-rooting use DH_MONIT_USER instead of DH_ADMIN_USER
  • DH-16113: Bard Jan 2024 test case updates for qa
  • DH-16451: upgrade npm to latest lts/fermium version
  • DH-16450: avoid a deadlock due to lock inversion
  • DH-16053: correct minor errors in DataImportChannel
  • DH-16367: Make INTERNAL_PKI=true work correctly on mac
  • DH-16354: Make INTERNAL_PKI=true cert expiry limits configurable
  • DH-15467: Change superfluous gitlab url into github url
  • DH-16107: NPE in whereIn Error Handling
  • DH-16347: add synchronization to getGroup... methods in AbstractDeferredGroupingColumnSource
311DH-16499: improve feedback in 'dhconfig routing export' when there is no routing file in etcd
310DH-15729: Allow resources to be skipped in Test Automation
309DH-16443: Make ubuntu de-rooting grep on monitrc before trying to sed the file
308DH-16418: Fix DiskBackedDeferredGroupingProvider changing post-mutator "No groups found" to "No grouping exists"
307DH-16382: Perform monit migration using systemd override.conf
DH-16206: Remove duplicated gen-keys.sh script in jackson
306DH-16401: Fix Groovy script defined classes imported with db.importClass() break internal formulas
305Merge updates from 1.20211129.396
  • DH-14283: DeephavenNullLoggerImpl should use dynamic pool
  • DH-16237: change user buffer caching to restore backpressure
  • DH-14938: Properly cache downloadDocFx task, to reduce build flakiness
  • DH-16291: Add tags to test with no data and address one breaking test for Bard
  • DH-16273: backport DH-14452 to fix logging error
  • DH-15740: Test certificate fingerprints so we always update certs when they change
  • DH-16262: Wrap calls from groovy to gsutil inside bash -ic
  • DH-16252: Update USNYSE Business Calendar to Include 2026
  • DH-16242: CART Leaks Connections when Snapshots are Slow, Exception can escape in refresh()
304DH-16309: EmptyToNullStringRegionedColumnSource should copy and wrap underlying provider by default
303DH-16309: Fixed loss of grouping when SourceTable.MAP_EMPTY_STRINGS_TO_NULL == true
302DH-16300: Test Automation: have minorversion flow to results summary
301DH-16279: Add MessageListener example implementation to SBEStandAlone jar
300DH-16262: Wrap calls from groovy to gsutil inside bash -ic
299DH-16243: Configure high-cpu integration test box on j17 CI
298DH-16128: Fix grouping propagation when inputs are filtered
297Merge updates from 1.20211129.387
  • DH-16130: Ensure blank line in changelog is handled consistently.
  • DH-16202: QA cluster maintenance script usability
  • DH-15913: Segment parquet tests to an isolated high-CPU box
  • DH-16200: Fix Automation/src/test/resources/testScript/engine/updateby directory duplicity
296DH-16131: update DH revision name map for QA results analysis query
295DH-16087: Add HTTP security headers to Envoy configuration
294DH-16192: Always set DH_ETCD_IMPORT_NODE to a single machine
293DH-16181: Fixed MapCodec ignoring offset and length params
292Merge updates from 1.20211129.383
  • DH-16176: Backport of DH-15469 (Use external SSH executable for git)
  • DH-15157: CART Error Propagation and Reconnect Counting Fixes
  • DH-16128: Fix grouping propagation when inputs are filtered
  • DH-15876: Add Test Automation support for configuring java tests
291DH-15493: Enable version suffixes for DbInternal tables
290Merge updates from 1.20211129.379
  • DH-16114: Test Automation: revert bad test case that was released
  • DH-16055: Fix sed substitution when numbers and wildcards overlap in vm-tools README
  • DH-16103: Remove etcd passwords from log output
  • DH-16014: Test Automation: add test case updates for December
  • DH-16108: Test Automation: fix NPE on template lookup
  • DH-16090: Test Automation: pull back integration logs even on fatal condition
  • DH-16078: Test Automation: run locally via installer
  • DH-15875: Allow disabled tests to run in testAutomation - control by config only
  • DH-15653: Add tagging to Test Automation
  • DH-15157: CART skipping reconnection attempts
289DH-16098: update to test analysis query to remove duplicate data and add MinorVersion field
288DH-16096: Better check for anonymous mysql users before we attempt to fix them
287DH-16039: Reenable rhel9 installer test
286DH-16096: Fix nightly installer test mysql error (anonymous user problem)
DH-14113: Use irisrw instead of root when possible in dbacl_init.sh
285DH-16074: update controller tool tests to sudo use consistent with client env
284DH-15988: fix logging error
283DH-15275: Add release-focused testcases to Jackson July-Dec 2023
282DH-16061: update controller_tool test for null pointer message
281DH-16038: Disable flaky rhel9 installer test
280Merge updates from 1.20211129.369
  • DH-15964: Fix python3.6 in centos 7 base image
279DH-15964: Additional tweaks for base image creation
278Merge updates from 1.20211129.368
  • DH-15964: Improve base image creation process
  • DH-16005: Test Automation: improve readme and env var passthrough
  • DH-15933: Test Automation: add Nov testcases to Bard
  • DH-15964: Build and consume per-release base images
277DH-15964: Add rhel8/9 base images
276DH-16008: Dispatcher allows workers to miss TTL
275Merge updates from 1.20211129.364
  • DH-13351: correct default value in release note
274Merge updates from 1.20211129.363
  • DH-15610: Allow Staging test results to segment exit code
  • DH-15940: Integration Test Logs have Wrong Paths
  • DH-15936: fix bash3 + PS4-subshell bug for mac installer
  • DH-15763: Test case updates for Oct 2023
  • DH-15866: Set republishing to use jdk8 by default
273DH-14989: Use self-signed "internal" PKI for nightly installer tests
272Merge updates from 1.20211129.359
  • DH-15897: Fix JDBC testcases
  • DH-15886: Fix controller stop scheduling issue
  • DH-15475: Segment test automation for more timely FB run completion
  • DH-15854: Test Automation: logging usability tweaks
271DH-15641: Add Reset, close disconnected child panels
270DH-15882: Pandas data frame view breaks when data frame is empty
269DH-15861: Fix double-start of persistent queries
268DH-15838: remove obsolete jvm args from csharp open-api client
267Merge updates from 1.20211129.355
  • DH-13351: corrections to readme and default value
266DH-15827: ReadOnlyIndex should return refcount for tests.
265DH-15827: UpdateBy incorrectly copies Index without clone
264Merge updates from 1.20211129.354
  • DH-15755: Re-enable simplified input table test case
  • DH-15809: Avoid duplicating contents of etcd configuration files
  • DH-13351, DH-11285, DH-15821: make Tailer more resilient to user data storms
  • DH-15808: ShiftedColumnSource Context Reuse
  • DH-15812: TableUpdateValidator result should be composable
  • DH-15806: ReplicatedTable RedirectionIndex shift uses updates linear in table size not viewport size
  • DH-15703: Test Automation: use REPLACE mode for serials to ensure updated test scripts
  • DH-15474: Ensure stderr and stdout are populated in jenkins and binary log for command line tests
  • DH-15614: Test Automation: test case improvements for Sept 2023
  • DH-15761: Backport excludedFilters in test automation
  • DH-15772: Improve Error Messages in PropertyRetriever
263DH-15819: Fix ETCD ACL provider using shared message builders
262DH-15586: Teach iris_keygen to pass -legacy flag when openssl version > 3.0
261DH-15672: Deephaven Launcher 9.07 - DeephavenUpdater honors command line URL over appbase in existing getdown.txt
260DH-15737: More resilient etcd lease and kv error handling in the Dispatcher
259Merge updates from 1.20211129.345
  • DH-15652: Refactor legacy remote client test cases
  • DH-15635: Ensure test automation cluster scripts configured consistently.
  • DH-15684: Developer readme: allow Dnd version to be auto-calculated during upgrade.
  • DH-15600: Fixed Table leak when filtering Pivot widget
258DH-15739: Re-enable forward-merged unit tests
257DH-15607: create tests to validate controller_tool
256DH-15719: added tests for dhconfig:properties
255DH-15697: Update Jackson jetcd to 0.7.5. Configure waitForReady and deadlines for etcd RPCs
254DH-15586: Official support for RHEL9 in installer
253DH-15677: generate-iris-keys and generate-iris-rsa should not overwrite existing files.
252DH-15660: ShiftedColumns must end in Underscore
251Add release note for DH-15606
250Merge updates from 1.20211129.343
  • DH-15627: Promote stable QA tests to released
249DH-15606: Envoy integration fails in environments where IPv6 DNS is enabled
248DH-15626: Improve qa-results dashboard query
247Merge updates from 1.20211129.342
  • DH-15616: Fix a race condition in RegionedPageStore
246DH-15609: Fix JsTable leaking table handles
245DH-15540: better support for loggers with generics
244Merge updates from 1.20211129.341
  • DH-15587: Fix broken README link in cluster setup
  • DH-15274: July 2023 TestCase updates for qa
  • DH-15451: Fixed Wrong Parenthesis on Console Attachment Option
  • DH-15501: Fixed whereDynamicNotIn forwards to wrong method
  • Back-porting DH-15246: Allow commas in ticket list for github PR title
243DH-15584: Create tests to validate generate_loggers script
242DH-15592: Type of ShiftedColumn results in view are incorrect
241Merge updates from 1.20211129.338
  • Changelog typo.
240DH-12084: officially support rhel8
DH-14983: Add DH_USE_EPEL flag to allow disabling epel repo
239Merge updates from 1.20211129.337
  • DH-15541: Percolate integration test exit codes back to jenkins
  • DH-15352: add release notes for .331 change
  • DH-15562: Make internal deployer use apt update before apt install
  • DH-15545: Don't use symbol tables when rollups and constiuents
238DH-15414: Only use fully qualified /usr/bin/systemctl to control monit, never use service monit
237DH-15544: make NullLoggerImpl pool sizes configurable
236DH-15513: print less of QueryScope in MergeData
235Merge updates from 1.20211129.333
  • DH-15160: Avoid calling sudo in prepare_filesystem if we can test files without it
234DH-15524: add code path to lenient schema import
233DH-15463: JdkInternals getUnsafe() doesn't work with ManifestClassPath jar (Windows IntelliJ) and Java 8
232Merge updates from 1.20211129.332
  • DH-15497: Test Automation README improvements
  • DH-12216: Use new QA sql server for JDBC import test
  • DH-15425: Improve automation test README for developer workflows
  • DH-13869: Enable more test cases in automation
  • DH-15454: Do not let npm write bin-links (preventing jenkins build instability)
  • DH-14671: Write shell test stdErr stdOut to file
  • DH-15399: Ensure test case metadata is not overwritten by default.
  • DH-15352: port Bessel correction from community to Enterprise
  • DH-15413: Add Logging for newInputTable Fails Silently
  • DH-15160: Allow installing as irisadmin if irisadmin is also DH_MONIT_USER
231DH-15470: Fix superusers unable to create some query types from Web UI
230Merge updates from 1.20211129.328
  • DH-15440: Use temurin (adoptium) jdk repos for ubuntu installs
229Merge updates from 1.20211129.327
  • DH-15419: Use packages.adoptium.net instead of adoptopenjdk.jfrog.io
  • DH-15432: Fix broken syntax in installer's new TarDeployer()
  • DH-15369: Fix MultiSourceFunctionalColumn Prev issue
228DH-15403: Reenable BinaryStoreWriter C# publishing
227Merge updates from 1.20211129.325
  • DH-15271: Test Automation: allow skip-dependencies mode
  • DH-14688: re-enable csharp with updated dockerfile / dotnet version
  • DH-15280: One click ranges cause illegal argument range exception
226DH-15348: Allow admins to view script of query types they can't edit
225DH-15294: Do not overwrite user configuration files when reinstalling deephaven
224Merge updates from 1.20211129.323
  • DH-15314: Fix failing automation test for addManySchemas
  • DH-14167: Plots sometimes do not draw when they have ranges set with OneClick
  • DH-15202: ACL Editor Namespace/Table ComboBoxes are aware of additions and removals (swing)
  • DH-15252: Add instrumentation to Input Tables
  • DH-15318: Do not use swing-components to calculate max viewport in non-swing processes
223Merge updates from 1.20211129.318
  • DH-15309: Allow removal of "Help / Contact Support ..." via property (swing)
  • DH-15305: Avoid using RecomputeState.PROCESSING to determine viewport row staleness (swing)
  • DH-15310: Optimize allocations and copies for SortedRanges.insert when it is effectively an append
222DH-15302: Add a stand-alone SBE Java in StandaloneJavaSbeClient.jar
221Merge updates from 1.20211129.315
  • DH-14742: May-June 2023 test case updates for qa
  • DH-11925: ofAlwaysUpdate not setting MCS Correctly
  • DH-15299: Improve SortedRanges.insert for append case
  • DH-15256: Update USNYSE 2025 calendar
220DH-15306: GroupingBuilder should return empty grouping for empty input index
219DH-14482: trim values in user and password config files
218DH-15291: Remove parallelism bug in dh_install
217DH-11758: Add installer tests for customer users + plugins
216DH-15270: Use manually-recursive chown in some prepare_filesystem.sh calls
215DH-5698: dhconfig support exporting single tables
214DH-15219: Launcher 9.06 - correct error in prop file location
213Fix release note typo.
212Merge updates from 1.20211129.311
  • DH-15215: Add DataCodeGenerator additional interfaces
211Launcher 9.05
  • DH-15099: script change to allow Deephaven Launcher to exist in a path with spaces
  • DH-14600: accept new custom certs on an existing instance
  • DH-14496: better reporting when "new" PKCS12 file cannot be parsed by "old" java version
  • DH-15082: --insecure command line option for Deephaven Updater, to accept self-signed certificates
  • DH-15019: command line options to set instance and workspace roots
  • DH-15216: Add options button to show hidden context menu choices
  • DH-15219: add IrisConfigurationLauncher.connectionTimeoutMs property
210DH-13649: Fix the etcd dispatcher user/config migration scripts.
DH-13651: Make readonly etcd keys usable by dbquerygrp.
209Merge updates from 1.20211129.310
  • DH-15193: Make IRIS_VCS_VERSION build in CI w/ newer versions of git
  • DH-15123: Avoid hang when filtering from bottom of large table (swing)
  • DH-15191: Reduce max table display size (swing)
  • DH-14593: Fix duplicate unit test enum class names
208Merge updates from 1.20211129.306
  • DH-15169: Fix bad quoting in internal deployer
207DH-15096: Produce better log output for null socket getAddress result
206Merge updates from 1.20211129.305
  • DH-15170: Fix build-info-extractor build issues
205Merge updates from 1.20211129.304
  • DH-15166: Update testcontainers dependency
  • DH-15131: Fix internal installer typo
  • DH-14948: Internal deployer learn deephaven install needs more sudo -u irisadmin
  • DH-15139: Unit test should just use assertSorted
  • DH-15139: Don't mark grouped partitions as sorted ever.
204Merge updates from 1.20211129.300
  • DH-15085: Don't hold merged intraday partitions in WorkspaceData queries
  • DH-14949: Use Rocky8 in Jenkins
  • DH-15093: ConstructSnapshot Logging is Too Verbose
  • DH-15080: Potential Race in satisfied() lastCompletedStep Set
  • DH-15078: Backport DbArray toArray should use fillChunk (DH-13881)
  • DH-15062: writeTable with out of order grouping fails
  • DH-14999: Ensure PQs identify stability correctly.
  • DH-14951: Null Status fails to Write Test Information
203DH-15128: Update package-lock.json for jupyter-grid
202DH-15075: Fix failing test introduced as part of DH-15022
201DH-15071: Fix Grouped AbstractColumnSource#match() breaking with empty input list.
200DH-15022: Fixed java 8 compilation error introduced in previous version .199
199DH-15022: Add support for .zst (ZeeStandard) file compression
198DH-15039: instance and workspace roots not correctly read from prop files
197DH-14974: Widen Byte and Short jpy CallableWrapper Returns to Integer
196DH-12299: Added Release notes for updated readCsv features introduced in DH-12299
195Merge updates from 1.20211129.293
  • DH-14960: TestingAutomation needs to count released vs unreleased tests separately
  • DH-14916: Improve installer docs on upgrade
194Correct merge error.
193Merge updates from 1.20211129.291
  • DH-14947: Custom Formatting Long Column Loses Precision
  • DH-14764: Make jdk8 jenkinsfile actually use jdk8
  • DH-14874: backport DH-11489 (IntradayLoggerFactory shouldn't write listener classes)
192Deephaven Launcher 9.03
  • DH-14942: Deephaven Launcher uses corrected URL after creating a new instance
  • DH-14945: Correct installation java validation error
  • DH-14850: require instance in DeephavenUpdater.sh and DeephavenUpdatesr.bat
  • DH-14807: better feedback when launcher fails to start
191Merge updates from 1.20211129.288
  • DH-13936: Fix broken jenkinsfile
  • DH-13936: Use the installer for integration tests
190DH-12662: add upgrade support for server_java_version
189DH-14841: Check Sharing permissions from New Tab Screen
188Merge updates from 1.20211129.286
  • DH-14899: Do not write jenkins cache for PR Check jobs
  • DH-14018: Min/max values are ignored when doing a redraw plot
187DH-14699: Fixed NPE on selecting Copy ProcessInfoId from the status bar context menu when worker is disconnected
186DH-14873: Make TestPidFileUtil test more deterministic
185DH-14841: Do not display user list when sharing a dashboard
184Merge updates from 1.20211129.284
  • DH-14797: Fix controller PQ/dispatcher failure deadlock
183DH-14878: Disable flaky test - slow update call
182DH-14615: Update version of node/npm used by gradle plugin
181DH-14842: Optionally Filter User and Group Lists for Web
180DH-14708: Fix bug introduced earlier that failed to throw exception when pid file modification time was less than system uptime
179DH-14708: Attempt to delete existing pid file when system uptime is less than file modification time
178DH-14820: Prevent controller-connectivity hang in Swing telemetry
177Merge updates from 1.20211129.283
  • DH-14796: Set new tests enabled by default
  • DH-14670: Use testcase id in log output
  • DH-14178: Feb-Apr test case updates for QA
  • DH-14799: installer quote escaping
  • DH-14759: fix installer log file permissions
176DH-14715: Do not return published Table in remote mode.
175Merge updates from 1.20211129.282
  • DH-14595: Correct MergeData future construction race.
174Release notes update.
173DH-14729: Fix shared dashboards from deleting links
172Create Launcher 9.02
  • DH-14609: IrisConfigurationUpdater improvements - better logging, script to run it
  • DH-14769: create new instance by giving a url on the command line
  • DH-14621: IrisConfigurationUpdater will fail on headless systems if DISPLAY environment variable is set
171Merge updates from 1.20211129.281
  • DH-14782 sphinx (documentation generator) needs to allow versions <= 7.0.0 for python3.6
  • DH-14765: Do not allow sphinx to use urllib3 v2+
  • DH-14773: Make -PskipLauncher=false work on all branches
170Create Launcher 9.01
  • DH-14766: Updated copyright text and new branding images in Launcher and Installer and also added support for overlaying copyright text on Splash screens
169Merge updates from 1.20211129.280
  • DH-14771: Make artifactExists use DH_JAVA_VERSION instead of JDK_VERSION
168Update fishlib version to 25.20221001.006 to include:
  • DH-14643: Remove all references to gitlab from jenkinsfiles
  • DH-13275: Fix double-persistence in fishlib PersistentHashtable
  • DH-13149: Allow blank password file property
  • DH-14718: Correct file computation error in StreamLoggerImpl
167DH-14715: Convert Enterprise R to use Remote Groovy
DH-14682: R integration needs a close method
166Update Web UI to v0.13.12
  • DH-14732: Arrow keys not selecting next autocomplete item in console
165Merge updates from 1.20211129.279
  • DH-13935: Using installer for deploy branch
  • DH-13935: Make treasureplus use frozen jenkins branch release/20200928
164DH-14667: Fix file explorer selection when you have thousands of files
163DH-14701: Preview checking should not coalesces tables
162DH-14695: R integration is slow converting DateTimes and Booleans
161Edits to Jackson release notes
160DH-14687: Disable csharp builds until we can fix upstream apt repository issues (jackson+ changes)
159Merge updates from 1.20211129.278
  • DH-14687: Disable csharp builds until we can fix upstream apt repository issues
158Merge updates from 1.20211129.277
  • DH-14683: ClockFilter dependency bug in Replay queries
157DH-14669: Fix error handling in LogAggregatorService
156DH-14668: Fix rare dispatcher worker startup race condition
DH-14673: Fix dispatcher assignment permit loss
155Merge updates from 1.20211129.276
  • DH-10348: Backport ii Previous Use Fix from Bard.065beta
  • DH-14650: Update the java doc in SimpleMaxValue and SimpleMaxValueCARQ
154DH-14654: Update persistentQueryStatusMonitor to use ProcessInfoId
153DH-14225: Don't download MySql connector when etcd ACLs is enabled
152DH-14626: Time Filter Mode For SyncTableFilter
151Merge updates from 1.20211129.274
  • DH-14641: Index regression found in DHC 2517
  • DH-14616: Do not upload tar file with rsync until after root_prepare is run
150DH-10286: Use a 1MB buffer size for Parquet compression and decompression
149Merge updates from 1.20211129.273
  • DH-14618: Fixed Bucketed UpdateBy not resetting shared contexts
  • DH-14617: correct null handling error in LAS stream combination code
148DH-12141: Fix eslint error from previous Pandas fix
147Merge updates from 1.20211129.271
  • DH-14586: Change Unit Test Parameters to Trim Jenkins Time
146DH-12141: Fix Pandas dataframes not being opened in Web UI
145DH-7166: correct NPE in about dialog
DH-14502: update Deephaven Launcher version and copyright
DH-14515: make IrisConfigurationUpdater use system and instance trust stores like the Launcher
DH-14600: Deephaven Launcher allows trust override on launch, in addition to add instance
144DH-14585: Reduce concurrent test startup
143DH-14278: Combining skipLines and skipFooterLines in a CSV import results in UOE
142DH-14543: Use SerialTest category for TestParquetTools
141Merge updates from 1.20211129.270
  • DH-14392: Use current values for satisfied swap listener instantiation.
140Merge updates from 1.20211129.269
  • DH-14560: Make internal installer use higher limits on all VMs
  • DH-14037: Prevent installer from adding monit processes to standalone etcd nodes
  • DH-14558: Fix installer bug where fully-generated cnf + etcd on non-infra nodes doesn't set up monit
139DH-14572: Writing Parquet with empty strings can lead to BufferOverflow
138Merge updates from 1.20211129.268
  • DH-14548: Fix typo from forward merge of DH-12630
137DH-14543: Fix TestParquetTools OOME
136Merge updates from 1.20211129.267
  • DH-12630: Add vmUp/vmDown gradle tasks/scripts for using installer
135DH-13694: Add Option for Suffix to IntradayLoggerBuilder
134DH-14524: git ScriptRepository Log can be misleading
133DH-14510: Allow ctrl-v paste to Excel
132DH-14495: DispatcherClient should send state changes immediately, not wait a full refresh cycle
131Merge updates from 1.20211129.266
  • DH-14474: PR checks shouldn't run the whole pipeline
  • DH-14467: Fix UpdateBy using raw group indices.
  • DH-14067: Fix to include shutdown hooks for inWorker methods
  • DH-14249: Concurrent modification exception from workspace.
  • DH-14272: Fix integer overflow while writing to Parquet
  • DH-14371: Error reading previous values from ungrouped static data
  • DH-14340: BinaryLogFileManager needs JavaDoc
130Introduce new Deephaven Launcher 9.0
  • DH-11578: Launcher uses system trust stores on Windows and Mac
  • DH-7166: add Launcher version to IrisConsole help/about
  • DH-14267: expand instance log file location in Launcher dialog
  • DH-11519: save selected JDK when it is selecting during launch, correct representation so it works correctly on Windows
  • DH-14424: allow instance certificates to be used even when there are trust issues
  • Use instance truststore to update the instance
129DH-14460: Allow disabling xDS envoy routes for COMM/swing via property
128DH-14427: Web api server java proc hang on first login
127DH-14410: Unit test fix for .126
126DH-14410: Fixed ParameterizedQueryClientImpl#fetchResult() not associating deflated viewport with root table causing a resource leak
125DH-14288: WorkerTtlCheckJob uses wrong parameter, missing lock
124DH-14409: Backported Parquet compression improvements.
123DH-14407: Disable Swing remote-telemetry by default
122DH-14187: Add Swing telemetry
121DH-14316: Bumping dhc csv library to pick up a deadlock fix
120DH-14199: Web does not send Param Query Apply as a concurrent query
119Merge updates from 1.20211129.260
  • DH-14173: Error when auto ranging plots with a one click (OneClick) range
  • DH-14203: Support worker scope plugin dependencies
118DH-14291: Parallelize Parquet merge across partitions
117Merge compilation fix.
116Merge updates from 1.20211129.259
  • DH-14210, DH-14227: Enable github PR check workflows on treasureplus.
  • DH-14222: Tailer failing on DBDateTimeOverflowException when no timePrecision set
115Merge updates from 1.20211129.258
  • DH-14261: Fix etcd_prop_file logging for gRPC showing up on stdout when running the tool
  • DH-14269: Back-port PQ Draft saving fix DH-13770 from Jackson
114DH-14277: CSV (and other?) builders are missing skip footer lines option
113DH-12241: IrisConsole fails to lock the workspace in newer JREs
112Merge updates from 1.20211129.256
  • DH-14073: Fix dhconfig logging configuration making some log lines disappear
111DH-14250: change password dialog must honor envoy ports
110DH-14241: StringContainsFilter with any is Unacceptably Slow
109Merge updates from 1.20211129.255
  • DH-13874: Fix NPE on failed auth in JDBC tests.
  • DH-13824: Dec 2022 test case updates for qa
  • DH-14179: Fix TableLoggerUtil.logTable javadoc
  • DH-14046: SelectableDataSet of min/max axis fails to use the values correct.
  • DH-14071: Fix command line tests for java11
  • DH-14145: Ensure proper snapshot of InputTable rows
108DH-14146: Fixed bug that introduced intradayType for strings when data type is present
107DH-14146: Fixed Schema Editor to allow renaming a column for LoggerListener
106DH-14199: Parameterized Queries now use the Shared lock instead of exclusive. Has a new option to use no lock.
105DH-14197: Fix controller logging issue
104DH-14033: Daily backup script
103DH-14136: Allow null Kafka record values
102Merge updates from 1.20211129.253
  • DH-14157: Test automation - add more status logging
  • DH-14155: Fix integration test installation
  • DH-14137: Preserve custom-column formatting and column-location
  • DH-14134: Revert InputTable snapshot portion of DH-12140.
  • DH-14053: Ensure idempotent runs of test automation by restarting controller
  • DH-13648: Avoid NPE when Date component of ParameterizedQuery DateTime component is empty (swing)
  • DH-14116: Avoid AIOOB in ColumnChooser dialog (swing)
101DH-14146: Fixed Schema Editor to allow renaming a column
100DH-14039, DH-13575: add webapi cert to truststore-iris.p12 to support self-signed and internal PKI certificates
099Merge updates from 1.20211129.251
  • DH-14014: Remove extra logging messages for long GC
  • DH-14115: ShiftedColumnSource Leaks Contexts
  • Backport IDS-8077: varargs method matching causes array index out of bounds.
098DH-14074: BooleanSingleValueSource missing Index.NULL_KEY Check
097DH-12469: Kafka resumeFrom should fail when previous checkpoint does not exist
096Merge updates from 1.20211129.248
  • DH-12140: Avoid conflict when serializing tables in parallel
  • DH-14060: Infinite Loop in Inverse/WrappedIndexRedirectionIndexImpl toString()
  • DH-13957: avoid an NPE during RemoteTableDataService reconnect loop
095DH-14025: Reduce permissions used to create auth-user symlinks
094DH-13961: Update kafka SchemaDiscovery unit-tests to expect a partitioning-column
DH-13930: Update unit-test to initialize filter
093DH-14015: Fixed TableBuilder not resetting row count on reset()
092DH-13961: Require partitioning-column in kafka SchemaDiscovery builder
091DH-13930: Add release notes for StaticGroupFilterGenerator
090Merge updates from 1.20211129.247, Changelog Formatting
  • Changelog formatting.
089DH-13930: Added StaticGroupFilterGenerator class
088Merge updates from 1.20211129.246
  • DH-13945: Installer: allow optional latency to avoid dns cache corruption
087Merge updates from 1.20211129.245
  • DH-13954: Only checkpoint Kafka offsets which have been consumed
086DH-13953: Add JVM arguments for java 17. Fixed a couple of arrow bugs
085DH-13949: Make sure DeferredLocations do not undefer when they are marked.
084DH-13938: Fix auth server reload tool script path
083DH-13942: Added Java version check to irisdb.R for R integration compatibility with Java 17
082Merge updates from 1.20211129.244
  • DH-13941: Update .gitignore with .java-version
  • DH-13769: dns_lock.sh should use /bin/bash not /usr/bin/bash
  • DH-13877: Make dh_monit invoke ./dh_users relative to dh_monit parent dir
  • DH-13885: Include ClientHostName in InputTable setField update
  • DH-13916: When uploading for the installer, ensure gsutil can be found from the user's path
081DH-13929 Fix JavaDoc for MergeData merge method
080Merge updates from 1.20211129.243
  • DH-13872: Fix NPE in test automation on failed pq import
  • DH-13877: dh_monit should not use latest link to source dh_users
  • DH-13850: Create DH_ADMIN_USER before DH_MONIT_USER so we get preferred uids
  • DH-13884: CSVImportProcessor should use getSourceOrDefault()
079Update release note formatting.
078DH-12458: Apache Arrow support
077DH-13881: Fix TableTest unit tests
076DH-13871: correct tcdp host setting back to localhost (add release note)
075DH-13867: stop web-api from connecting to dispatcher via envoy
DH-13871: correct tcdp host setting back to localhost
074DH-13881: DbArray toArray should use fillChunk
073DH-13882: Change log level for class push message to INFO
072DH-13837: ParameterSession should not manage DynamicNodes that arent live
071DH-13873: ParquetFileWriter should put Parquet magic string at the beginning of files
070DH-13667: Re-enable unit tests that were merged forward
069Merge updates from 1.20211129.241
  • DH-7883: Untangle overloading of the word language
  • DH-13282: Allow all supported queries to be enabled.
  • DH-13813: Untangle language overloading - logger for powell
  • DH-13790: Cleanup qa setup scripts
  • DH-13870: ColumnRegionStringSet must override getDictionaryValuesRegion
  • DH-13861: Fix TestSymbolTableCombiner test
068DH-13846: Python Auto-Provision Scripts Require Sudo
067DH-13845: Fix failing integration tests in java 11/13
066Merge updates from 1.20211129.238
  • DH-13842: Re-enable disabled tests
065Merge updates from 1.20211129.237
  • DH-13789: Jenkins only report on released tests
  • DH-13610: Nov 2022 test case updates for qa
  • DH-13382: Label test results by jdk
  • DH-13697: Fix forward merge conflict from t+ to powell
  • DH-13709: Stop Building JDK11 and JDK13 for T+ and TPNR.
  • DH-13697: Create unit-test for "early detection" of DH-13697 going forward
  • DH-13697: Update TotalsPanel to be aware of CountDistinct (swing)
  • DH-13778: Fix ParquetTools not respecting TableDefinition codec for columns
064Update Web UI to v0.13.10
  • DH-13580: Fix Linker shortcuts not working correctly
  • DH-13599: Fix null in links on grouped columns
063DH-12971: Fix focus on first invalid input in PPQ submit
062DH-13800: Fix controller state synchronization
061DH-13770: Fix QueryMonitor selection changing when scrolled out of the viewport
060DH-13786: Update commons text to 1.10.0
059DH-13782: Edit vulnerability scan configuration
058Revert .057.
057DH-13513: increase default dsa key size to 2048 and default signature algorithms to SHA256withDSA
056DH-13665: Fixed --alt-cert-dir handling for iris_keygen
055Merge updates from 1.20211129.235
  • DH-13729: Install tests print useful message if DeephavenCombined jar is not built
054DH-13728: Fix iris-defaults.prop hardcoded irisadmin in set_iris_endpoints_prop.sh
053Merge updates from 1.20211129.234
  • DH-13727: Fix broken test after removal of DH_SSH_CONF merged forward
  • DH-13726: NPE in TableMapTest
052DH-13695: Improved query validation and controller state handling
051DH-13723: Fix HtmlTable incorrectly formats bg color.
050Merge updates from 1.20211129.232
  • DH-13717: Fix releasing the wrong table handle when releasing a table map
  • DH-13668: fix pidFileDirectory for sultan upgrade tests
  • DH-13646: do not require gcloud beta to use installer
049Release note update.
048Release note update.
047DH-13645: correct grpc schema error handling
046DH-13665: Make iris_keygen more friendly for containerized installations
045DH-13702: Correct log messages with missing endl()
044DH-13695: Improved error handling when exporting persistent queries
043DH-13700: Stop Building ICE Images in Jenkins
042Merge updates from 1.20211129.230
  • DH-13700: Stop Building ICE Images in Jenkins
  • DH-13701: Correct log messages that are missing endl()
  • DH-13696: Correct log messages that are missing endl()
  • DH-13684: Fix TableMaps incorrectly managing non-live maps on deflate
041DH-13693: etcd client creation migration scripts should use return instead of continue
040DH-13529: Catch makeModelParam exceptions, exclude empty params on Submit
039Update Web UI to v0.13.9
  • DH-13548: Fill in optional digits in DateTimeInputs
  • DH-13511: Ignore empty EditableList input
  • DH-13509: Change EditableItemList to multiselect, fix disabled delete button
038Merge updates from 1.20211129.226
  • DH-13684: Fix TableMaps incorrectly managing non-live maps on deflate
037Fix missing segment from ClusterMap in merge.
036Merge updates from 1.20211129.225
  • DH-13657: Improve concurrent accesses to file manager cache
  • DH-13656: Omit DataImportServers with disabled tailing from DataRoutingService.getDataImportServerDestinations
  • DH-13666: Faster TPNR build by eliminating Java unit tests.
  • DH-13663: Fix integration test failures after forward merge
  • DH-13662: Add import statement
  • DH-13655: Encode persistent query config string data if it contains invalid xml chars
  • DH-13598: Ignore ReplicatedTable warning when closing a table (swing)
  • DH-10481: Preserve column-ordering when applying filters (swing)
  • DH-13341: October 2022 test case updates from qa
  • DH-12491: Support qa workflows
  • DH-13609: test automation wait for controller
  • DH-13555: Make sure etcd is installed on config server nodes, and other installer improvements
  • DH-13662: Encode persistent query config string data if it contains invalid xml chars
035DH-11983: Fix linting issues for export/import queries
034Merge updates from 1.20211129.224
  • DH-13527: Fix toolTip in DateTimePicker (swing)
033DH-13380: Add support for Envoy configuration via installer flags
032DH-12016: Centered HtmlTable's table tooltip
031DH-12016: HtmlTable respects formatting
030DH-13211: Make sure to always include etcd acl keys in config_packager tars
029DH-13557: Only enable assertions in dev builds of JS API
028Merge updates from 1.20211129.223
  • DH-13560: Dhmonit wait for OK on conf and auth
  • DH-12481: Prevent copy-of-resource-files when reinstalling the same version
  • DH-11599: Add assertion for range of region in getRegion.
  • DH-13136, DH-13545: Usability enhancements for ColumnChooserDialog (swing)
027DH-13567: fishlib Log current link fails on v9fs
026DH-13597: Provide default query description for remote processing requests
025DH-11983: Web - Export/Import query functionality in Query Monitor
024DH-12581: Web - expand first row of rollups on initial load
023Merge updates from 1.20211129.222
  • DH-13501: Correct data validation issues when running locally
  • DH-13498: Swing- using long type x values in a catPlot results in an empty plot
  • DH-13503: withColumnDescription modifies Parent Table
  • DH-13342: Installer fixes and improvements
  • DH-13527: Fix NPE in TimeSpinner
  • DH-13491: Memoize ACL Operations
  • DH-13440: Report schema listener compilation errors better, optionally validate listener code on import
022DH-13495: Fresh install of Jackson doesn't grant correct membership for the dbmerge user
021DH-13514: RQD Jetty SSL Paremter Ignored when RQD WebServer is Disabled
020DH-13517: Kafka Json Adapter fails without autoValueMapping
019DH-13494: dbacl_init uses installed sql files instead of copies from previous version
018Update Web UI to v0.13.8
  • DH-13043: Fix advanced filters not validating input correctly
017DH-13144: Improve worker termination handling, mainly for k8s workers
016DH-13383: Installer does not have support for Java 17 - fix wrong centos8 reference
015Merge updates from 1.20211129.218
  • DH-13438: Fix CompilerTools caching timeouts
  • DH-13418: Increase Jenkins agent size, and change targeting, for artifact republishing job
  • DH-13424: De-duplicate links for a target during workspace-save
  • DH-13418: Increase Jenkins agent size for artifact republishing job
  • DH-13397: Fix issues with bin scripts when trying to use log4j
014DH-13395: Improve version log generation.
013DH-13383: Add installer support for Java 17. Switch to OpenJDK for Java 1.8 and 11 on CentOS.
012DH-13421: Fix ChartPanel not functioning as a Linker target
011Merge updates from 1.20211129.215
  • DH-13227: Fix columnVersion race introduced by version.507
  • DH-13154: QA tests added for Sept 2022
  • DH-8092: Fix CompilerTools IllegalStateException
  • DH-13271: Fix ListenerRecorder not notifying parent MergedListener on errors
  • DH-13330: Promote test cases running green in jenkins
  • DH-13327: Remove batch-mode from test output
  • DH-13293: Fix DownsampleImport Inefficient reads and writes- further improve writing
  • DH-13293: Fix DownsampleImport Inefficient reads and writes
  • DH-13349: Fix tailer PollWatchService finding files twice
  • DH-13335: Option To Limit Number of Concurrent Columns in MergeData (actually use property)
  • DH-13335: Option To Limit Number of Concurrent Columns in MergeData
  • DH-13321: Fix MergeData clearing column caches too early
  • DH-13292: Report test results for only official branches
  • DH-13227: Allow T+ to read data written by future versions ignoring grouping and indexing
  • DH-13315: Performance Overview does not correctly parse LTMs
  • DH-13295: Allow TimePanel date to be set as epoch day
  • DH-13295: Replace 2-digit year with 4-digit year in TimePanel, default date to today
010DH-13178: Bulk enable/disable queries
009DH-11253: Update Query Monitor dependent options on dependent/temporary array changes
008DH-13398: Fix IrisDbUserMod handling of group membership with overwriteExisting
007DH-13395: Format Developer Friendly Change Log into Margaret Friendly Version Log for deephaven.io
006DH-12971: Focus first invalid input on parameterized query submit
005DH-12970: TableInput support in ParameterizedQueryPanel
004DH-12965: Date and DateTime input support in ParameterizedQueryPanel
003DH-12969: EditableItemList support in ParameterizedQueryPanel
002DH-13378: Bad ACL for WorkspaceData Username Filter in new installs
001Initial release creation

Detailed Release Candidate Version Log: Deephaven v1.20210805beta

PatchDetails
332Merge updates from 1.20211129.210
  • DH-13337: Replace a stray yum update with yum makecache
331DH-13336: Prefer using lsb functions over init.d functions
330DH-13334: De-parallelize the running of dh_keygen.sh and etcd_configure.sh to prevent a race condition
329DH-13329: Suppress superfluous python warnings
328DH-13333: Remove test workaround
327DH-13277: Updates needed to K8SWorkerControl, iris, cus, etc to run Jackson in a kubernetes cluster
326DH-13326: Align tests for command line message improvements
325Merge updates from 1.20211129.209
  • DH-13324: Ignore 3rdParty warnings on java11
324DH-12882: Added support for either of -replace_existing or -overwrite_existing with -import_all_acls
323DH-12725: Disable pipefail so we don't fail to remove deephaven-jpy
322Merge updates from 1.20211129.208
  • DH-13285: Schema import changed error messages, bringing test case comparison into line
  • DH-13296: Schema import changed error messages, bringing test case comparison into line
  • DH-13063: dhctl should fail fast when auth or config server is down
  • DH-12647: improve error reporting when properties cannot be loaded, remove more junk logging from dhctl
  • DH-12694: change some messages from WARN to INFO
  • DH-12599: increase default monit start timeout for CUS
  • DH-13063: add missing IntradayControlImpl.deletePartition 4-arg method
  • DH-13275: Fix double-persistence in fishlib PersistentHashtable
  • DH-12646: Command line check for disallowed output
  • DH-13146: remove deprecated ssl call to allow multiple certificates in keystores
  • DH-13055: Handle MatchFilter of UUIDs in swing
321Update Web UI to v0.13.7
  • DH-12970 TableInput component for Parameterized Queries
  • DH-12965 Date/DateTime inputs
  • DH-12969 Add EditableItemList component
  • DH-13043 Filter validation fixes and nulls in Advanced Filters
320DH-13313: Dispatcher Failing to Renew Lease Leaves it in a Zombie State
319DH-13294: Allow etcd ACL export to retrieve passwords
318DH-13284: Corrected key matching for table column ACLs using etcd
317DH-13119: aggressively close permission filter providers
316Merge updates from 1.20211129.203
  • DH-13185: FunctionalColumn fillPrevChunk was looking at current instead of previous
  • DH-13183: Prevent chart from losing updates after GC
  • DH-13231: SortListener Description Should Include Columns
  • DH-13175: Avoid console hang on Reconnect
  • DH-12707: In-worker DIS Fails with V1 Binary Store Files and Row Batch
  • DH-13197: Prevent FreezeTable from preserving columns on model change since it is already done by MainTable
315DH-13191: Add table and column name to the Parameterized Query API for DeephavenTable parameters
314Merge updates from 1.20211129.198
  • DH-13209: Fix dhconfig issues when configuration server is down
  • DH-13205: Right Incremental aj() Sequential Builder Capacity Bug
  • DH-13195: Fix erroneous sanity-check in ColumnChooser
  • DH-12954: QA tests added for Aug 2022
313DH-13228: migrate_acls script is not migrating local (passwd table) users
312DH-13193: Docker worker impl environment variable updates
311Merge updates from 1.20211129.197
  • DH-12021: Enable new UserAdmin plugin
  • DH-13090: WriteReplace Snapshot Loses Attributes, Interacts with Custom Action Auto Deflate
  • DH-13149: Allow blank password file property
  • DH-13137: Fix very rare MergeData synchronization issue
  • DH-13148: post_install.sh should respect DH_SKIP_ALL_MONIT flag
  • DH-13127: Plot with xBusinessTime() beyond known calendar shows failure reason
  • DH-13139: Viewport close race condition
  • DH-13134: Fix csv-export from pivotWidget with numeric column-names
  • DH-13121: Fix fatal dispatcher race condition
  • DH-13132: Fix ReplicatedTable improperly setting cell populations on Update
  • DH-13130: Fix NPE from hidden column (root cause of DH-13106)
  • DH-13120: anomalygateway for ConfigurationServer
  • DH-13143: Preserve rollups on PQ restart
  • DH-13110: Provide toString for RemoteOperatorApply
310DH-13192: Upgrade fishlib version to handle Swing console auth in containerized environments
309DH-13177: Migrating from mysql to etcd in java 17 is throwing java.lang.IllegalAccessError
DH-13188: IrisDbUserMod incorrectly rejects replace_existing option when used with import_all_acls
308DH-13059: Use node name for internal partition
307DH-13151: Fix TableBuilder regression
306DH-13126: Add missing short time zone codes from DbTimeZone to JsTimeZone
305DH-13131: Fix broken sphinx build from the JPY changes
304DH-12725: Remove deephaven-jpy in favor of community-built JPY
303Merge updates from 1.20211129.193
  • DH-13111: Periodic Statistics of PreemptiveUpdatesTable Counts
  • DH-13108: Provide toString for SortedFirstBy and SortedLastBy
  • DH-13106: Improve error-handling of workspace load/save
  • DH-13107: aj loses attributes
  • DH-13105: sort of intraday table has terrible hash performance
  • DH-13102: Backport ZipTables
  • DH-13103: Augment LTM logging with timing for the refresh, notification, and terminal notification parts
  • DH-13100: InputTable ComputeRawQuery should be concurrent
  • DH-12958: Keep viewport populated-cells up to date with populated-rows (backport from Bard)
  • DH-8033: Property to automatically enable untracked by for refreshing ACLs on add-only tables.
  • DH-8033: Untracked First and Last
  • DH-13086: sendNewQuery should PresentDelegateTokens
  • DH-13076: TailInitializationFilter Dependency Problem with Uncoalesced Table
  • DH-13067: snapshotIncremental option to flatten input
  • DH-13109: Add assertions for invalid symbol offset parameters
  • DH-13078: LocalTableMap should check for TableDefintion compatibility, not equality
  • DH-13018: Prevent stale table-handle in rollup editor
302DH-13093: Remove set() operations from DataColumn
301DH-13064: Ensure SimpleServerSelectionProvider correctly uses max per-worker-heap property
300DH-13023: RemoteQueryDispatcher.etcdLeaseTtlSeconds property name conflict
299Merge updates from 1.20211129.189
  • DH-12986: Limit max number of selected rows for value-based filtering
  • DH-12822: Check if installer already deleted machines dir before stopping machines
  • DH-13026: ReplayGroupedTable is notifying during init
  • DH-13025: disable bad checkin of test not ready for automation yet
  • DH-13022: Check for Duplicate Names in Configuration Processors
  • DH-12653: July 2022 test case updates for QA
  • DH-12995: Check that old-version confs/illumon.d exists before attempting root-removing find
  • DH-11798: Add git root path(s) as locations for sourced groovy scripts in Web
  • Multiple improvements to error reporting and dhconfig
  • DH-12943: check namespace set of empty namespace better during import
  • DH-12810: improve prop file validation
  • DH-12925: improve error message presentation when swing console connection fails
  • DH-12801: better error reporting in 'dhconfig schemas'
  • DH-12797: improve exception reporting in xml schema discovery
  • DH-12989 Fix reinstalling the same version when DH_LINK_RESOURCES is used
  • DH-12822: Move installer tests to deephaven-testing google project, use DNS locking
  • DH-12944: Make installer test machines always shutdown after every test
  • DH-12823: Create and use a dns-locking algorithm to prevent concurrent dns transactions
  • DH-12962: Fix duplicate systemctl command in enable_dh_etcd_systemd.sh
  • DH-12905: configure resources, hostconfig, overrides and hotfixes with cluster cnf
  • DH-13019: Allow null values in QueryPerformanceLog validation for EndTime and Duration fields
  • DH-13020: Persistent queries should require scheduling
298DH-11525: Fix failing unit tests from previous DH-11525 change
297DH-12039: Add python 3.9, drop python 3.6
296DH-11525: Separate fetching servers for console from servers for PQs
295DH-12973: Enhancements to run-as section of AclEditor
294DH-12890, DH-12981, DH-13017: remove locations via TableDataService after deleting via DIS, prevent timeout when rescanning
293DH-12946: Add JS API for query configuration types
292DH-12891, DH-12874: checkpoint validation caught a coding error - fixed
291DH-12991: Fix gradle intradayLoggerFactory task
290Merge updates from 1.20211129.186
  • DH-12936: Fix Sync/LeaderTableFilter not setting current refresh step on subtables.
  • DH-12952: correct error in single-internal-partition truncate/delete commands
  • DH-12950: improve handling of long running truncate/delete commands
  • DH-12958: Keep viewport populated-cells up to date with populated-rows
289DH-12984: Fix proto:build gradle target (broken after gradle 7 changes).
288DH-12975: Prevent query-server crash when using run-as
287DH-12967: Fix DeephavenCombined pom (change implementation to compile)
286DH-11394: Automated Query Server Selection in Web UI
285Merge updates from 1.20211129.182
  • DH-12936: SourceTable should not rewind itself to previous step.
  • DH-12906: Small timeout bump for flaky j11 tests
284DH-12583: Fix unit tests for Parameterized Query UI
283DH-12659: SimpleServerSelectionProvider should disallow configurations with invalid groups
DH-12886: SimpleServerSelectionProvider Reload Errors, Catch Conflicting Server and Server Class
DH-12892: Error message when a user is not permitted to create a worker lacks some information
DH-12893: Available query servers in the swing console does not appear to be based on iris.db.n.consoleGroups
282DH-12799: Feature for table fetches in parameterized queries within user context
281DH-12583: Parameterized Query UI
280Update Web UI to v0.13.5
  • DH-12901: Fix title overlap on twin Y charts in Enterprise
279Merge updates from 1.20211129.180
  • DH-12928: Make metadata index include locations with size=0
278DH-9164: Display "-" for websocket and worker ports instead of "-1" in Query Monitor
277DH-12923: Fix shadowed build broken under gradle7
276DH-12907: Fix New Tab Screen when shortcuts list is empty
275Merge updates from 1.20211129.179
  • DH-12900: Add forward compatibility ofAlwaysUpdate to Sultan
  • DH-12898: Optionally use writeReplace so all Tables are Serializable
  • DH-12870: MergeData makes bad sorting Assumptions
  • DH-12894: SelectOrUpdateListener could close update before processing it
  • DH-12852: Prevent NPE for null ColumnConfigAttribute in InputTable
  • DH-12897: fix to drag and drop behaviour in rollup editor when editing broken rollup
  • DH-12895: IllegalArgumentException when merging two adjacent Rsps in SequentialBuilder.appendIndex.
  • DH-12734: improve shutdown handling in DIS import processor
274DH-12636: turn off xtrace in installation scripts around password generation
273DH-12882, DH-12883, DH-12512, DH-12513: Various fixes for iris_db_user_mod
272DH-12875: fix dhctl command line parsing errors
271DH-12887: Fix Java 9+ garbage collection logging options
270Update Web UI to v0.13.4
  • DH-12754 Fix filter set capture failing on timestamp column advanced filters
269DH-12881: Promptly Terminate Workers on Dispatcher Shutdown
268DH-11244: command to force DIS to see new intraday partitions - correct error in command line parsing
267DH-12476: Boolean TestSources Don't Actually Handle getBoolean
266DH-12826: remove inappropriate static property check
265Merge updates from 1.20211129.173
  • DH-12683: Resolve flaky test failures on dependent queries
  • DH-12785: Fix batch row user tables listener package name
  • DH-12807: WindowCheck Should not Allocate Queue Based on Table Size
  • DH-12803: Fix flaky timeout bard new testcase
264DH-5720: Web UI allow creation of batch and live merge queries
263DH-12821: Avoid NPE in un-committed Kafka broker topics
262DH-12806: Add UpdateBy jsons to repo, regenerate python
261DH-12398: Apply workaround jvm args to tests on java 17
260Fix merge error.
259Merge updates from 1.20211129.171
  • DH-12390: Setup bard python support default 3.6
  • DH-12747: Fix iris-defaults re-import failure on upgrade
  • DH-12746: dhconfig command line processing improvements
  • DH-12574: add more examples to dhconfig help
  • DH-12320: improve schema configuration error reporting
  • DH-11284: add validate option to 'dhconfig routing'
  • DH-12434: in 'dhconfig schema import' do not apply namespace restriction to copy table sources
  • DH-7033: improve error handling in Schema Editor XML discovery
  • DH-12345: make etcd timing logging configurable
  • DH-2987, DH-12602, DH-12214: improve schema validation in import paths
  • DH-12287: synchronization change to prevent race in testing
258Merge updates from 1.20211129.169
  • DH-12614: fixing merge issue from .167
  • DH-12798: StaticSymbolTableChunkedOperatorAggregationStateManager crashes with single null key
  • DH-12614: allow editing of invalid rollup on workspace load
  • DH-12784: Expose GUI table object to custom actions
  • DH-12758: Prevent possible class-loading deadlock (swing)
  • DH-12606: Fix histPlot with oneClick (swing)
  • DH-12669: Do not throw exception in Column-Chooser when typing regex (swing)
  • DH-12360: Add DH_ETCD_IMPORT_NODE to specify only one node to update system files in etcd
  • DH-11424: Make etcd admin_init.sh retry spurious failures
  • DH-11005: Installer should not blow away already-setup-but-unhealthy etcd
  • DH-10507: Fix etcd import randomly failing in update_system
  • DH-6820: admin_init.sh should not spam piles of scary warnings
  • DH-12198: Installer should continue if etcd is installed but unhealthy
  • DH-11261: Always use --etcd when updating etcd from installer
  • No changes, force rebuild.
  • DH-12728: Add EmaControl and BadDataBehavior to python exports
  • Parallel LTM is broken in lastBy DIS
257DH-12358: JS API for query export/import
256DH-12729: Make Publishing.groovy handle jdk17, and throw if not jdk8/11/13/17
255Merge updates from 1.20211129.160
  • Fix merge compilation error.
254Merge updates from 1.20211129.159
  • DH-12727: Backport DH-11649: Improve Memory Usage of Sparse Static Table update()s from Powell
253Merge updates from 1.20211129.158
  • DH-12720: Where Refilter with Shifts Causes Invalid Update
252DH-9185: Better feedback when opening dashboard tables without access permission
251DH-12726: Fix python generation errors
250Merge updates from 1.20211129.157
  • DH-12696: make dhconfig fail fast when authentication server is down
  • DH-12721: disable envoy timeout for /iris/* path
  • DH-12716: Prevent I/O operations on EDT in TotalsTable (swing)
  • DH-12717: Fixed inconsistent python doc generation and regenerated docs
  • DH-12699: Fixed Symbol table caching at incorrect level
249DH-12710: Re-add error icon after GoldenLayout updates the tab
248Merge updates from 1.20211129.152
  • DH-12708: dhconfig should fail fast when configuration server is down (note: already present in this branch)
247Merge updates from 1.20211129.151
  • DH-12506: Search panels and tables from initial panels menu search bar
246Merge updates from 1.20211129.150
  • DH-12695: OffsetLookupCaches break tables larger than 2B rows.
245DH-12711: Don't show the number of rows in the failed table panel tooltip
244DH-12689: Disable unsupported widgets in the Panels menu
243DH-12697: Fix stale metadata when copying items in the File Explorer
242DH-5720: Web show Script tab for all queries with scripts
241DH-12698: JS Range API Casts to an Int
240Fix import error with .239 merge
239Merge updates from 1.20211129.149
  • DH-2888: clean up terminated BinaryLogQueueSink objects in the LAS
  • DH-12687: improve code around autoclosing mysql connections, results, prepared statements
  • DH-12688: Fix broken shadowJar task in publishing stage for non-java8 builds
  • DH-12593: add envoy.xds.extra.routes.<name>.exactPrefix property and finer control over trailing slashes in prefix replacement
238DH-12623: Add export/import acl tables capability
237DH-12685: Commit checkpointed offsets to Kafka broker
236DH-12682: Replace react-spring with react-spring/web
235DH-11779: SingleClickItemList selection based on ids, multi selection fix
234Merge updates from 1.20211129.147
  • DH-12673: Fix python installation failures
  • DH-12672: Array in whereClause does not Properly have ComponentType in Formula
233DH-12679: Add basic DHC worker support.
232DH-12678: Dispatcher should correctly indicate total heap
231DH-12674: Fix publishing failure in jackson
230DH-12675: Fix typo in ConstraintType definition
229DH-12618: Include parameter name in stringified error messages
DH-12619: Check value is valid type even if constraints are unconstrained
DH-12634: Wire up props through Parameters in JS API
DH-12640: Allow nulls for optional parameters
228Merge updates from 1.20211129.146
  • DH-12643: Fix CsvFileSplitter bug that results in skipped records
  • DH-12667: scheduler interrupts waiting driver threads during shutdown
  • DH-12666: Remove unnecessary selectDistinct from whereIn and whereNotIn for Static Tables
227DH-4071: commands to enable DIS and TDCP to notice removed/added/resized table locations
226DH-12398: Get build working in Java 17, fix IllegalAccessException in JdkInternalsLoader
225DH-12556: Cannot delete rows with primitive keys from InputTable
224Merge updates from 1.20211129.143
  • DH-12652: tweak pq times bard support
  • DH-12426: Decrease default PQ times in test automation
  • DH-12649: Make sample plugin build reliably on all releases
223Merge updates from 1.20211129.141
  • DH-12620: Cache old FontAwesome builds in JFrog
  • DH-12642: Setup numba in qa automation
  • DH-12418: April-June test case updates for qa
  • DH-12532: fix NPE in swing console
  • DH-12631: Using index in a formula fails
  • DH-12658: Static leftOuterJoin fails to read null RHS rows
  • DH-12575: Allocate Parquet PageCache on demand. Allow small initial size + growth to final LRU state.
222DH-12568: Add protobuf/kafka ingester
221DH-12577: Explicitly check for null environment variables.
220DH-12654: Fix controller deadlock getting dispatcher usage
DH-12659: SimpleServerSelectionProvider should disallow configurations with invalid groups
219DH-11525: Web work for PQ-only servers
218DH-12657: Fix npm install on latest version of npm
217DH-12577: Fix race condition in Dispatcher worker monitor, improve logging.
216DH-12442: Write encoding metadata with Parquet files to enable symbol table use
215Update Web UI to v0.13.2
  • DH-12627: Fix Aggregations formatting when only one operation on a column
214DH-12577: Use etcd bootstrap properties if present.
213DH-12639: Test worker using golang
212DH-12403: byExternal Memory Usage Improvements
211DH-12577: Bundle dispatcher etcd key into auth package; add migration scripts
210Fix unused imports in AclObject and AclConstant breaking > Java 8 build
209DH-12577: Replace Dispatcher Comm Protocol With etcd and HTTP
208DH-12571: Enable reading of mixed symbol table and non symbol table columns
207DH-12626: Disabled Kubernetes/ICE container builds for JDK 8
206Update Web UI to v0.13.0
  • DH-11788: Fix aggregation formatting when only one aggregation is applied
205DH-12514: Add support for etcd instead of MySql/mariadb for ACL data
204DH-12621: Update OSHI shadow lib to support M1 Macs
203DH-12158: Implemented general ticking support for updateBy
202DH-12511: Fix clear column filter error with aggregations
201DH-12615: Include auth-user directory in config_packager's auth-creation
200Merge updates from 1.20211129.138
  • DH-12467: Use yum makecache instead of yum update
  • DH-12594: Do not check /usr/illumon/latest/etc/JAVA_VERSION until after code is unpacked.
  • DH-12611: Download tls.crt and tls.key direct from google storage (for tests)
  • DH-12600: Make iris_keygen.sh create truststores with multiple certificates using --alias-suffix
199DH-12125: JS API for Parameterized Queries
198DH-12601, DH-3174: Split BinaryStore into Writer and Reader Modules, Remove ILF LastByIntradayLoggerFactory
197Merge updates from 1.20211129.136
  • DH-12552: Fix the DelegatingBinaryStoreBufferProcessor passing through a -1 appVersion, and process listener elements properly.
  • DH-12524: Fix Waiting for Plugins message on the Login screen
196DH-12542: Add ProcessInfoId to Web Summary
195DH-12521: Fix null appearing as black in Query Monitor
194Merge updates from 1.20211129.134
  • DH-12552: Add support for instrumentation to Batch listeners and fix generation bug with batching enabled by default
  • DH-12579: Fix improper line-endings in ILF
  • DH-12566: Avoid NPE seen in TDCP shutdown
  • DH-12551, DH-12558: Preserve additional attributes for a number of table-ops
  • DH-12567: PropertyInputStreamLoaderTraditional optional file-based priority setting
  • DH-12588: correct logging in dhconfig/dhctl
  • DH-12589: Improve Kafka resumeFrom Logging
  • DH-12565: Add tab tool-tip to parameterized queries
  • DH-12509: add InputTable.remove() method, DH-12508: allow closeAndDeleteCentral for removed schema
193DH-12308: dhconfig logging improvements
192DH-12501: add support for resource items in clean_targets(_resource) during Launcher file synchronization
191Fix changelog digit transposition for DH-12573.
190DH-12555: Make Epsilon (for 0-rounding) configurable in swing
189DH-10241: Grid panels were not persisting isStuckToBottom state
188DH-12573: QueryMonitor broken for non-superusers, call failed on server
187Update Web UI to v0.12.0
186DH-12473: Allow copy/paste of null or empty values in InputTable
185Merge updates from 1.20211129.129
  • DH-12544: Invalid Index Built When Oring RSP Containers into Full Span
  • DH-12545: Add unit test to detect duplicate packages
  • DH-12545: Fix web UI packages being duped causing type mismatches
184DH-12233: Save rollups, aggregations, selectDistinct in filter sets
183DH-12165: Improve NewTabScreen performance
182Update Web UI to v0.11.9
  • DH-10111: Fix missing horizontal scroll bar for single column tables
181DH-12547: Fix syntax error in config_packer.sh
180Merge updates from 1.20211129.126
  • DH-12522: Fixed a bug where, when appending, the dictionary for Symbol table columns would not be read properly.
  • DH-12522: Add more checks to ensure correct type is returned when saving workspace data
  • DH-12005: C# Open API - Attempt to catch exceptions in callbacks
179DH-10222-1: Fix stale shortcut overrides when switching users without a page refresh
178DH-12525: Fix assorted tests
177Update Web UI to v0.11.8
  • DH-12233: Save rollups, aggregations, selectDistinct in filter sets
  • DH-12435: Fix exception on right-click in the empty space of the table
  • DH-12387: Fix CSV download formatting
  • DH-12498: Swap vsIssues icon for vsWarning icon
  • DH-10208: Fix arrow up at top of history loading empty history commands
  • DH-12387: Unable to override query formatting via the custom format menu
176Merge updates from 1.20211129.123
  • DH-12461: InputCellEditor uses model-aware call to getValue
  • DH-12502: Improved error-handling for invalid Calendar BusinessPeriods
  • DH-12482: Make stdout.isatty a function in PythonLogAdapter
  • DH-12482: Add encoding property to PythonLogAdapter
  • DH-12461: Fix LITE updates when filtered
  • DH-12470: InputTable paste-rows dialog improvements
  • DH-12484: Option to permit long-dated calendar logic to guess when beyond last known holiday
  • DH-12454: Backport installer changes from powell to tpnr
  • DH-12413: Add configurable warnings for large object transmission
  • DH-12520: Cherry Pick DH-12174 Fix QueryMonitor crash when Use Git source checkbox is checked
  • DH-12490: validate partition names in additional methods that can create new partitions
  • Update web packages
  • DH-12387: Fix CSV download formatting
  • DH-12302: Support BigDecimal and BigInteger in formatting of numbers
  • DH-12480: Pass Active Tab Model to App Level Plugin
  • DH-12474: Allow configuration of RQD worker starting ID
  • DH-12302: Add BigDecimal/BigInteger formatting support to JS API
175DH-12489: Refactor tests to eliminate proprietary dependency.
174DH-12282: add DH_SHARED_QUERY_GROUP/dbquerygrp and change web-key permissions
173DH-12507: Fix Incorrect authorization when starting a worker via Web IDE
172DH-12498: Swap vsIssues icon for vsWarning
171DH-11609: Improve error message when allocating console from Web
170DH-12495: Fix FileExplorer toolbar height
169DH-12424: Fix PropType warning on SharedDashboardUpdateListener
168DH-12487: Fix NPE when reloading workspace with oneClick plots
167Merge updates from 1.20211129.115
  • DH-11858: Implement hashCode() and equals() for com.fishlib.io.sched.SSLContextHolder.Params
  • DH-12425: Add sys.stdout.isatty attribute to python stdout
  • DH-11252: add API to remove a single column partition of a centrally managed user table
  • DH-12446: correct merge error to avoid NPE in 'dhconfig checkpoint'
  • DH-12444: Fix getFormat in snapshots from JS API
  • DH-12464: Two missing jpy Decrefs in PyLib
  • Reapply DH-12410, DH-12416: Push region creation to Locations to better support per-region symbol table existance
  • Revert DH-12410, DH-12416: Push region creation to Locations to better support per-region symbol table existance
  • DH-12410, DH-12416: Push region creation to Locations to better support per-region symbol table existance
166DH-11004: Controller Multi-PQ Action Provides No Feedback After First PQ
165DH-12166: Fix linter issue with truncate numbers with pound
164DH-12166: Truncate numbers with pound instead of ellipsis
163DH-11370: correct NPE in audit logging
162Update Web UI to v0.11.4
  • DH-12166: Allow truncating number columns with pound symbol
  • DH-10111: Display cell overflow
  • Update node to v16, npm v8
161DH-12462: Delete tests that fail sometimes in :Plot:test
160DH-12299: Replace readCsv apache csv parser with DHC fast csv parser
159Merge updates from 1.20211129.109
  • DH-12453: Fix DelegatingLoggerImpl double-setting default StreamLoggerImpl
  • DH-12420: correct error in reference counting in MergeData
  • DH-11457: Restrict update/where parallelization to non-threadpool threads to fix deadlocking.
  • DH-12452: correct output in 'dhconfig schemas list' command
  • DH-12409: Allow rollup-definition copy between tables
  • DH-12271: Store refresh token as a cookie
  • DH-12339: Allow configuration-defined default column-formats (backport)
  • DH-12445: Update Bard Community Dependency for Test ID Changes
158DH-12451: correct dispatcher websocket-enabled setting when envoy is not enabled
157DH-11244: correct unit test missed in .153
156Merge updates from 1.20211129.101
  • DH-12189: Feb-Mar 2022 test case updates for qa
  • DH-12440: Make cus/bin/cus owned by irisadmin and ignore ownership of /etc/monit.d/logging
  • DH-12219: PEL csv interceptor- remove trailing new line in log entries
  • DH-12372: Publish shadowVersion to a text file for end user reference
  • DH-12071: Do not allow the creation of a PQ with Double.NaN or NULL_DOUBLE in long columns
  • DH-12370: Fix hard-coded shadow-oshi version
  • DH-12188: Add Javadoc test to feature-branch
  • DH-12427: Missing IncRef For Unwrapped jpy Return Values
  • DH-12334: Allow saved rollups to include extended-columns
  • DH-5843: Ensure logging of exceptions when constructing Calendars
  • DH-12393: Fix 'Download worker not provided' warning in QueryMonitor
155DH-12392: Fix BasicModal PropType error
154Merge updates from 1.20211129.094
  • Correct changelog for 183.
  • DH-12397: Deferred Condition Filters Did not Properly Rename Variables
  • DH-12379: Decrease batch size to help Java11 Java13
  • DH-12326: update USNYSE calendar for 2024
  • DH-12384: Fix race-condition when applying column-filter in swing
  • DH-12204: Attempt to preserve column-ordering when updating Rollups
  • DH-12404: Fix Parquet actions log info messages as errors
  • DH-12406: Aggregation on empty symbol table failed with assertion
  • DH-12402: byExternal Uses an Inordinate Amount of Time Creating Tables
  • DH-12369: JS API should treat includedAdditions as potentially modifies
153DH-11244: command to force DIS to see new intraday partitions
152Revert .151
151Update Web UI to v0.11.4
  • DH-12166: Allow truncating number columns with pound symbol
  • DH-10111: Display cell overflow
150Merge updates from 1.20211129.088
  • DH-12376: Make the no-root installer work from mac machines
  • DH-12374: Fix bad grep in dh_root_prepare (and don't call uniquify on a single group)
  • DH-12378 Make KeygenScript use mac-friendly arguments to mktemp
  • DH-12386: Fixed infinite loop chance in ValueType (ParameterizedQueries)
  • DH-12375: Bard changes to DhFormulaColumn re-added Lambdas, which causes failures with Zing 13
  • DH-12342: Fix numba for py38 refactors
149DH-12161: improve envoy configuration feedback
148DH-12377: Fix Jackson upgrade failure due to new required property
147Merge updates from 1.20211129.084
  • DH-12323: correct shutdown issues leading to incorrect checkpoint records
146DH-12328: Uplift MySQL dependencies
145Merge updates from 1.20211129.083
  • DH-12354: Avoid sudo in auto_provision unless necessary
144Merge updates from 1.20211129.082
  • DH-12333: move qa automation away from tmp
  • DH-12349: Cleaning up find logic
  • DH-12368: Change the shadowed build to get shadow plugin from https://plugins.gradle.org/m2/
  • DH-12351: Tweaking jenkins loggging in automation.
  • DH-12258: Fix App level shortcuts not work after invoking context menu
143DH-12339: improved unit-test coverage for configuration-defined default column-formats
142DH-12339: Allow configuration-defined default column-formats
141Fix some unit tests .140 broke
140Merge updates from 1.20211129.080
  • DH-12341: Revert DH-11834: Conditional Formatting JS API: not merged forward
139DH-12240: Reset FileList selection on delete
138Merge updates from 1.20211129.079
  • DH-12326: update USNYSE calendar for 2024
  • DH-11994: Add DH_SKIP_ALL_MONIT flag in install generator
  • DH-12325: Fix JDK check failure on some Macs
  • DH-12336: fix path to iris-defaults.prop in set_iris_endpoints_prop.sh
  • DH-11757: Make OS users and groups configurable
  • DH-12327: Make OS users and groups configurable in powell
  • DH-12203: Add ability to apply filters by-level without a retree operation.
  • DH-12324: Fix jpy JNI Global Reference Leak when using varargs
  • DH-12226: Remove SultanUpgradeTest
  • DH-12338: Fix incorrect matching of boxed types in ImporterColumnDefinition default processing
  • DH-12313: Add forward declarations to jpy headers so we can build python on mac
  • DH-12283: Fix Javadoc and Test error
  • DH-12283: Added static EMA to updateBy
  • DH-12331: Update JS Plugin Filters to use Timezone
  • DH-12329: OuterJoinTools javaDoc
137DH-12087: Allow better handling when disconnected web UI
136DH-9276: ConsolePanel should remove panel from tracked itemIds when panel is closed
135DH-12340: Remove dependency on MXJ library which is no longer maintained.
134DH-12337: Unable to create a chart using Chart Builder
133Update Web UI to v0.11.2
  • DH-12087: Allow better handling when disconnected
  • DH-9064: Truncate file-explorer name overflow, and tooltip
  • DH-11189: Add rowCount tooltip to table panel tab
  • DH-11658: Don't flip card on filter set apply
  • DH-10082: Fix unexpected time input behaviour
132DH-12322: Exclude test configs in default vulnerability scan, update dependencies.
131Merge updates from 1.20211129.069
  • DH-12269: Speed up DIS shutdown.
  • DH-10254: Run shutdown tasks in parallel
  • Backport DH-10299 (IDS-7296): Address deadlock issue with DIS shutdown racing with tailer disconnection, by eliminating unnecessary call to DataImportChannel.close() from DataImportStreamProcessor.close()
  • Backport DH-12078: Fix conditions in Tailer and DIS that can result in abandoned connections and data delays
  • DH-11740: use mktemp to avoid installer collisions of transferred keys
130Merge updates from 1.20211129.068
  • DH-12311: SingleRange Index.subIndexByPos Bug
  • DH-12266: Fix race condition updating viewport while snapshot is in progress.
  • DH-12290: PQ restart scheduling panel fixes
  • DH-9653: Validate that deephaven java also has javac (is a JDK, not a JRE)
  • DH-12297: disable gpg_repocheck for yum installer tests
129DH-12150: Improved error message for improper sudo privileges
128DH-12305: Add ProcessInfoId to the Query Config panel in Swing console
127DH-12310: SingleValue ColumnSource get() Does not Properly Handle Index.NULL_KEY
126DH-12307: Fix broken LasSpammer integration test
125Merge updates from 1.20211129.067
  • DH-12296: resolve new exceptions to match test asserts
124DH-10161 Support query by ProcessInfoId for performance overview queries
123DH-12273 FormulaArrayAccess changes for where clause
122Merge updates from 1.20211129.066
  • DH-10096: Remove log4j dependency
  • DH-12290: PQ restart scheduling panel fixes
  • DH-12291: fix static invocation of Configuration.getInstance()
  • DH-12288: Merge(Static, Static, AddOnly) should be AddOnly
  • DH-12263: improve checkpoint (crcat) tools
  • DH-12267: Enable more test cases in automation
  • DH-12277: Correct snapshotIncremental errors
121Merge updates from 1.20211129.063
  • DH-12235: Change Python MapReduce to use workers as a pool and not in batches
  • DH-12280: Fix Compile Failure in Bard after Forward Merge
  • DH-12272: correct behavior in (deprecated) DbTableLocation.getTableDefinition
  • DH-12257: Use Object as component type for results of applyToAllBy() formulas that produce arrays.
  • DH-12251: fix local development worker path
  • DH-12249 Load JS Plugin Before Applying Custom Columns
  • DH-11130: Support python 3.8, 3.7 and 3.6, drop 2.7
  • DH-10087: Fix web decimal formatting rules created from settings not working
120DH-12279: Remove abandoned calendars
119Fix javadoc escape sequences.
118DH-12150: Allow RemoteQueryDispatcher to spawn workers as different system-users
117DH-12148: Formula Constant Offset Array Fields could be Detected and Optimized
116DH-12254: remove NettyServerHandler debug messages
115Merge updates from 1.20211129.058
  • DH-7837: Trigger PQs in batches in automation
  • DH-12246: correctly report exceptions during schema service initialization
  • DH-12167: LeaderTableFilter fails with "Out of order keys" error
  • DH-12243: Fix gitlab URLs to all use deephaven.io (t+)
  • DH-12215: Use gitlab.deephaven.io everywhere
  • DH-12238: Also fixup the names of the jfrog/gitlab kubernetes secrets
  • DH-12238: Add jenkins_only tolerations for jenkins pod yaml
  • DH-12111: Fix for ConnectionAwareRemoteTableTest failing when size=0
  • DH-12242: Add toString to RollupHelper for more descriptive log messages
  • DH-12224: Use single quotes instead of double quotes when setting up test machines
  • DH-12224: Ensure root user has ALL:ALL permissions on no-root tests
  • DH-11648: Read parquet files without explicit TableDefinition
  • DH-10579: Support reading parquet files that do not have legal DH column names
  • DH-10567: Support reading parquet files with mixed dictionary columns
  • DH-11187: Support INT96 Timestamp columns
  • DH-10586: Support Parquet MILLIS, MICROS, NANOS timestamp encodings
  • DH-11640: Incorporate Deephaven Community parquet improvements
  • DH-3114: Add more safety checks within TableManagementTools
  • DH-11648: Fixed TableManagementTools delegation to ParquetTools.
114DH-9064: truncate and tooltip text overflow in pq name, pq list and file-explorer
113DH-12259: Ignore onRunning state when subscription already closed
112DH-12261: Fix being unable to open table from console
111Update Web UI to v0.11.1
  • DH-11342: Conditional formatting UI
110DH-12202: Fix race conditions for ACL Editor launch failure
109DH-12093: Update to latest fishlib version
108DH-12195: Refactor DaemonThreadFactory from DB to Util for reuse
107Merge updates from 1.20211129.055
  • DH-11689: Add proper Python binding for UpdateByClause
106DH-11189: Show number of rows in widget panel tooltips
105DH-12185: Dispatcher hang when worker startup hangs
104Merge updates from 1.20211129.054
  • DH-12222: Fix build for :Generators:generateMultiSeriesAssert
  • DH-12211: Join Type Checking is Too Strict
  • DH-12191: Improve logging of connection to Configuration Server
  • DH-12025: Jan2022 Testcase updates for QA
  • DH-11756: Remove old, dead scripts we no longer need.
  • DH-12190: Remove superfluous } from install script; use newer versions of jdk13
  • DH-10087: Fix Decimal/Integer default column formatting in web
  • DH-12212: Fix undefined message in the FileExplorer error dialog
  • DH-11877: large upload crashes WebClientData query
  • DH-12044: Fix threading and events for: NPE while a console has a script from a PQ open (toggle git / non-git)
103Fix bad reversion of Kafka fuzzy matching in .096 of .092.
102DH-12220 Add support for NumberFormat of BigDecimal and BigInteger in the web client
101DH-12116: sort dhconfig list output, DH-12117: disallow removeNamespace on non-empty namespaces
100Update Web UI to v0.9.3
  • DH-12038: Visually distinguish null vs blank string and char
  • DH-10115: Add temporary success state to save custom column button
  • DH-12099: IrisGrid canToggleSearch should allow override by layoutHints
  • DH-10241: Persist grid isStuckToBottom state
  • DH-11655: Fix active filter set after edit
099DH-12212: Fix undefined message in the FileExplorer error dialog
098DH-12174: Fix QueryMonitor crash when Use Git source checkbox is checked
097DH-5877: Add processInfoId to uniquely identify workers in the AuditEventLog, ProcessEventLog, and PersistentQueryStateLog
096DH-12201: Add BooleanSingleValueSource to support boolean value Constant formulas
095DH-12206: Handle behavior change in Avro lib after version update
094Merge updates from 1.20211129.049
  • DH-12199 Fix ModifiedColumnSet in ShiftedColumnOperation to include All Source Columns + Shifted Columns
  • DH-12193: non-daemon thread pool factory in KVClientEtcd was causing shutdown delay
093DH-12145: remove deprecated class RemoteDatabase:GetTable
DH-12179: remove BinaryRowSetter.getValue
092Merge updates from 1.20211129.047
  • DH-12162: LAS failed to merge compatible streams in presense of String with simple encoding
  • DH-12160: Allow App Level Plugin to Add Menu Items to the Web UI
  • DH-12172: Debug assertions for ArrayIndexOutOfBoundsException in byExternal
  • DH-12168: Turn off some verbose debug log in fishlib
  • Fix Javadoc error from .044
  • DH-12044: Fix repeated events for: NPE while a console has a script from a PQ open (toggle git / non-git)
  • DH-11689, DH-12157, DH-12177, DH-12178: Implemented static updateBy for Fill, Sum, Prod, Min/Max and scaffolding for ticking versions of each,
  • DH-12033: Kafka ingestion - case-insensitive match of values fields to table columns.
  • DH-11338: Fix missing headers in CSV export
  • DH-12144: Fix session language in Command History search
  • DH-12097: Update LanguageParser to special-case python vararg-call
  • DH-12154: Permit csv-import of null BigDecimal values
  • DH-12030: Implement ShiftedColumnOperation & ShiftedColumnSource
  • DH-12131: MergeData changes to permit repeated N to 1 merging
  • DH-11977: Improve real and apparent configuration server startup time
  • DH-11498: Expose db.i that takes Set<String> for Internal Partitions
091DH-11933: Constant Value Formulas should use a SingleValueColumnSource
090DH-11370: dhctl logging improvements
DH-11373: dhctl usability improvements
089DH-12164: Use gray warning icons for disconnected panels
088Merge updates from 1.20211129.036
  • DH-12142: Fix multiple errors on logout and attempted re-login
  • DH-11455: change Validate-with-delete to delete via DIS commands by default
  • DH-12128: Fix various problems with updated grouping.
  • Fixed Grouping being written with symbol tables
  • Fixed grouping being written with incorrect Index codec
  • Fixed overeager reading of checkpoint records
  • Avoid using Checkpoint record as part of reading groups
  • Add Column version to metadata index
  • Write metadata indexes with version numbers adjacent to previous versions to maintain backwards compat
  • Use a custom sized ForkJoinPool when processing groups in parallel instead of default one
  • Generate TableDefinition when reading groupings to avoid extra file access
  • Read first grouping parallel to avoid doing extra work when groups are not present
  • DH-12126: Fix issues found in ColumnTools during testing
  • DH-12137: Add util to verify non-nullable arguments are not null
  • DH-12078: Fix conditions in Tailer and DIS that can result in abandoned connections and data delays
  • DH-12132: Snapshot incorrectly manages static table
  • DH-12020: For Bard Web UI, no JVM profile is applied until you change the selected profile
  • DH-10087: Update Web UI to use server configured decimal/integer formats
087DH-9050: Show warning icon on failed table panels
086DH-11856 Add --debug or similar to iris script so xtrace can be enabled when calling it
085DH-10222: Make keyboard shortcuts user customizable
084DH-12098 add layoutHints support for setSearchBarAccess
083DH-12143: Remove some Dead Aggregation Code
082DH-12121: Upgrade dependencies
081DH-11931: Update multiViewPivotWidget to use MultiJoin
080DH-12086: Fix Send to Console
079DH-9531: Remove unused Scala Script Session
078Merge updates from 1.20211129.029
  • DH-12113: avoid warnings from oshi.util.FileUtil
  • DH-12108: ConnectionAwareRemoteTableTest issues
  • DH-12042: Update Web UI to use server configured time zone
  • Fix JavaDoc for MutableSchema
  • DH-12075: Change jcenter() to mavenCentral(), move where BinaryStore C# is built to allow jenkins to build
  • DH-12080: Allow sultan to build in new jenkins ( jenkins.deephavenci.com )
  • DH-12031: remove another FINE level netty message
  • DH-12075: Change jcenter() to mavenCentral()
  • DH-12032: add properties file validation to dhconfig
  • DH-7902: Keep jenkins box on failure
  • DH-12052: Check multiple results for command line tests
  • DH-12027: Correct CART default reconnect time
  • DH-11806: Add ColumnTools to support column-level changes to historical Deephaven tables
  • DH-12081: Move gc time bench support from BenchmarkSupport module to Util module.
  • DH-12049: Handle getCompletionItems fail scenarios inline
  • DH-12069: Fix Code Studio settings not saving
  • DH-12077: Fix Web UI format settings for IrisGrid and Chart
  • DH-12044: NPE while a console has a script from a PQ open (toggle git / non-git)
  • DH-12088: MultiJoin Missing Modifications
077DH-12094: Upgrade grpc, protobuf and netty versions
076DH-11867: Change JS property name to showSearch
075DH-12085: Update (mostly) shadowed dependencies and suppress erroneous reported vulnerabilities
074Update Web UI to v0.9.0
073Merge updates from 1.20211129.022
  • DH-12073: Update Fishlib to avoid AIOOB in StatsCPUCollector
  • DH-12011: Large Preemptive Modified Indices Make Web UI Unstable
  • DH-12070: Migrate Jetty to v9.4.44.
  • DH-12057: Fix notebook script language settings
  • DH-12050: Handle negative zeros when sorting a table.
  • DH-12036: Fix regression in get/find index operations in Bard
  • Add support for tracking gc count and millis for JMH benches. Tweak IndexGetFindBench.
  • DH-12027: Enable CART automatic reconnect if disconnected without a query failure.
  • DH-12037: Configurable retry attempt limit and timeout for CART
  • DH-11532: Increase tests runs in automation
  • DH-11794: Nov 2021 test case updates for qa
  • DH-11989: correct inefficiency in "dhconfig schemas list"
  • DH-12024: Fix RegionedColumnSourcePartitioning handling of NULL_KEY
  • DH-11902: Refactor tests to functional areas
  • Fix a bug in RSP Index binary search introduced with the last singleton span change.
  • DH-12036 Allow specifying a serialized index file in IndexGetFindBench.
  • DH-11956: Add web support for scriptSessionProviders
072DH-12076: Update dependency versions.
071DH-12072: Add vulnerability scan task for dependencies
070DH-11917: add ui.search.show prop to ServerConfigValues
069DH-10183: More unnecessary project dependency reduction
068Merge updates from 1.20211129.012
  • DH-12036: Add full span metrics to IndexCounts.
  • DH-12036: Add JMH Benchmark for Index.get and Index.find.
  • DH-12023: Propagate grouping for static ZipJoin
  • DH-11938: Fix AggCount created programmatically on rollup
  • DH-12009: Improve envoy routing
  • DH-9488: Route /iris to the client_update_service
  • DH-12018: enable dhconfig to read prop files from disk, and specify prop file to use
  • DH-12028: Fix missing Superuser Mode switch
  • DH-11984: Fix exception in CommandHistoryTooltip
067Revert .066
066Accidental Squash Merge
065DH-10183: Small subproject dependency change related to 0.63
064DH-11600: Export UI and server versions to logs
063DH-10183: Factor test utils out of DB to new EngineTestUtils subproject
062Update Web UI to v0.8.1
061Update Web UI to v0.8.0
  • DH-11715: Support ability to freeze columns via context menu
  • DH-10208: Better console history handling of multi-line commands
060DH-12026: Fix Controller/PQ Error Updating From Bard
059Update web UI to v0.7.2
  • DH-11747: Use @deephaven/dashboard, get rid of DashboardContainer in Enterprise
  • DH-11786: Cursor inconsistent between dragging dashboard and dragging panel
  • DH-11913: Aggregation/floating rows cover the last row in a table
  • DH-11661 Refresh viewport on IrisGridTableModel.handleTotalsUpdate
  • DH-11962: Entering text in numeric column quick filter crashes table
  • DH-11991: Filter Bar Does Not Restrict By Column
  • DH-11906: Custom Column Does Not Delete
  • DH-12008: Aggregation column formatting is incorrect
  • DH-10112: Make AutoResizeTextArea explode on resize
  • DH-11788: Enable count aggregations for non-rollups
  • DH-11364: Odd wingding in Code Studio text entry box
058DH-12010: Add query status and ability to restart to panels menu
057DH-5928: Clean up wrapping on console connection screen
056DH-12014: Fix GroupingBuilder not reinterpreting types when loading from metadata
055DH-11964: Improve and refactor test ColumnSources and data generation
054DH-11949: Use the correct default JVM profile from the server
053Revert bad commits.
052Merge updates from 1.20211129.006
  • Merge fix for GroupedRedirectionIndex
  • Merge fix for InverseIndexRedirectionIndexImpl
051Merge updates from 1.20211129.005
  • DH-12006: Make Replicated tables reclaim rows that exit the viewport
  • DH-11934: Force all work-units to be executed remotely in parallel-worker utility for Python
050DH-11979: Fix panelState init in QueryMonitor
049DH-9282: Fix send to active notebook not sending to PQ Editors
048Merge updates from 1.20211129.004
  • DH-11944: Add support for leftOuterJoin
047Merge updates from 1.20211129.003
  • DH-11986: Simplify Jenkins Test Hierarchy
  • DH-11833: Refactor environment setup
  • DH-8170: Add support for SQL-style outer joins
  • DH-11996: Values other than 1, 2, 4 should not be allowed to be imported for RestartUsers.
  • DH-11657: Fix mirrored input filters
  • DH-11872: JS API should handle shifts and additions in the same delta
  • DH-11752: Fix UI Prop Definition for Permissions
  • DH-11752: Allow JS Plugin to Provide UI Visibility Permissions
  • DH-11932: Bug fix when overriding the ConfigurationType of a persistent query from "Script" to "Merge" when no TypeSpecificFields are present
  • DH-11876: Improve PQSL tracking related to controller shutdowns - fix race condition
046DH-11937: Throw an error if multiple formats of same type set
045DH-12003: update support docs link
044DH-11786: Cursor inconsistent between dragging dashboard and dragging panel
043DH-12001: Add missing forwardRef on QueryEditorPanel
042DH-12000: Added Chunked Download example
041DH-11998: Update icon for new tab screen sorting
040DH-11993: Fix version bump script for zero padded versions
039DH-11903: Add all GWT time zones to JS API
038DH-11980: Tweak Unit Tests to Reduce Runtimes
037Merge updates from 1.20211129.001 (release creation)
036Merge updates from 1.20210201.238beta
  • DH-11951: Handle null booleans in PQ configs for web
  • DH-11963: Fix early Index close in aj
  • DH-11947: Fix AIOOB Exception in Swing Gui when adding an ExtraEnvironmentVariable to the overrides.xml file
  • DH-11958: We should not allow "RestartUsers" to equal ANY invalid value in a PQ's imported xml file
  • DH-11941: Allow install generator uses to specify DH_SSH_CONFIG so they can control ssh settings without touching ~/.ssh/config
  • DH-11922: set_iris_endpoints_props.sh should not produce malformed prop files for machines with multiple ip addresses
  • DH-11950: Fix loadPanelState in IrisGridPanel
  • DH-11952: Fix unusable FilterSetManager
  • DH-11961: Validate modified and added do not overlap
  • DH-7960: multiJoin
035DH-11965: Make currentTime() consistent with DBDateTime.now() and return micros.
034DH-11946: TickSuppressorTest chunk tracking.
033Merge updates from 1.20210201.233beta
  • DH-11904: update USNYSE calendar to include Juneteenth for 2022 and 2023
  • DH-11340: Test Automation Normalization
  • DH-11907: Use Shared Context Within Formula, RedirectionIndexLockFree micro optimizations
  • DH-11905: IndexUtilies.equals bug
  • DH-11934: Add upper-bound of sub-workers in parallel-worker utility for Python
  • DH-11886: Extend the Java API example with a few more relevant examples
  • DH-11911: Add a few customer requested timezones
  • DH-11914: Add naturalJoin and leftJoin Javadoc
  • DH-11711: Allow native python import and exec of Notebook from WorkspaceData
  • DH-11776: Add extra debug information to UnionSourceManager merged listener.
  • DH-11888: Implement a ZipJoin feature to zip table columns together.
  • DH-11940: Correct error in property file name
  • DH-11936: TestWindowCheck Takes Inordinate Amount of Time
032Merge updates from 1.20210201.230beta
  • DH-11876: Improve PQSL tracking when controller shutdowns occur
  • DH-11921: Add info icon to console status bar
  • DH-11915: install command handlers before acceptors in RQD
  • DH-11692: Fix error when converting date columns to the same type with rename
  • DH-11910: Update construction of IrisTablePanel
  • DH-11508: add server side message size overrides
  • DH-11730: Import files in File Explorer
  • DH-11853: delay starting controller web service until handlers are set
  • DH-11892: Fix bad Assertion in new singleton AggUnique Operator
  • DH-11891: Use more expensive but more accurate Hash vs. Sparse Heuristic for JoinControl
  • DH-11899: prevent envoy from timing out large file downloads via CUS
  • Update web UI to v0.6.1
  • DH-11336: Support Layout Hints on web
  • DH-11725: Ctrl+Home and End keys in Web UI grid scroll to top/bottom
  • DH-11843: Copy column header from web UI
  • DH-11632: Handle LayoutHints frozen columns in Web UI
  • DH-11526: Fix OHLC plots in web
  • DH-11853: Envoy - web service needs restart after reboot
  • DH-11871: Envoy - inconsistent console errors after controller restart
  • DH-11862: Web api is incorrectly connecting to controller through Envoy
031Fix Javadoc paragraph tag.
030DH-11935: ModifiedColumnSet incorrectly propagates ALL to ALL
029DH-11267: Dry run for persistent query controller import tool
028DH-11530: PQs that fail due to execution timeouts should more clearly report that they were killed due to timeout
027Merge updates from 1.20210201.217beta
  • DH-11885: Fix replicate logic
  • DH-11880: Fix our csharp client's broken apt repo in our mono docker image
  • DH-11864: Add option to merge process to allow force to replace an existing partition after creating the new column files
  • DH-11842: Add fallbackType parameter to python->java type conversions to allow proper handling of empty python collections
  • DH-11861: Permit configuring SoftRecycler default sizes for Array and SparseArray column sources
  • DH-11857: Fixed Schema Editor exception when setting merge format to Parquet with a specified codec.
  • DH-11855: Protect against leaked remote table-handles in getRecord(...)
  • DH-11647: Fixed Parquet unconditionally writing dictionary columns
  • DH-11836: Improve AggUnique Memory Usage for Singleton Values
  • DH-11716: Allow overrides when importing persistent query config xml.
  • DH-11710: Add time zone to server config values
  • DH-11834: Conditional Formatting JS API
  • DH-11868: requestRefresh Bugs
  • DH-11873: Update branding on login screen
  • DH-11852: NewItemModal validation fix
  • DH-11802: Fix missing notebook extension
  • DH-11782: message overflow using websockets
026Merge updates from 1.20210201.208beta
  • DH-11830: Fix NPE when missing dependent PQ
  • DH-11397: aug-oct 2021 test case updates for qa
  • DH-11793: Fix bug in TreeIndex.union when argument is self.
  • DH-10118: Fix web quick filters for Char columns
  • DH-11690: Add parallel-worker utility for Python
  • DH-11813: Backport DBDateTime and DBTimeUtils improvements from DH-11692
  • DH-10118: Fix char filters in web UI
  • DH-11741: Explicitly ignore poweredby.png lighttpd file ownership
  • DH-11312: Enable Swing over Envoy
  • DH-11831: Fix 1px mis-alignment on query monitor unselected panel
  • DH-11635: Check for queued notifications after dependnecy satisfaction.
  • DH-11801: Add a more flexible favicon redirect to jetty
  • DH-11635: Increase debug checks around parallel where and update.
  • DH-11692: Fix bug with changing timezones in ZDT reinterps.
  • DH-11692: Fix Javadoc errors from previous merge that jenkins did not catch
  • DH-11692: Add support for Java Time types natively, improve reinterpretation support.
  • DH-11772: Update manifest of example Java API viewport utility
  • DH-11772: Add example of Java API viewport usage
  • DH-11784: Reduce the scope of log-file-ownership-requirements
  • DH-11783: Add serviceName and Configuration Server support to irisdb.R, so R integration will work with current Deephaven versions.
  • DH-11796: Remove IE from browserlist, was never supported
  • DH-11731: Export files from File Explorer and Notebook/PQ editor
025Merge updates from 1.20210201.196beta
  • DH-11780: Truncating of UPL EntryDescription in case it exceeds BinaryStoreMaxEntrySize
  • DH-11775: Check for existence of source directory before moving it in CompilerTools
  • DH-11746: TickSuppressor should be able to ignore some columns
  • DH-11770: Fix null time zone issue
  • DH-9641: Hide Save without restart option on non-running queries
  • DH-11768: Update web ui branding and favicon
  • DH-11753: Detect and use GNU sed when available
  • DH-11765: Turn Systemic Object Tracking on By Default
024Merge updates from 1.20210201.191beta
  • DH-11687: Add support for SelectColumns that always evaluate updates, regardless of if dependency columns were touched (backport from 1.20210401.099)
  • DH-11744: Reorder Column Chooser buttons to original order
023Merge updates from 1.20210201.190beta
  • DH-11668: Operate-As in Console connection is honored during token-creation
  • DH-11736: Be more Parsimonious with Chunks during Cross Join
  • DH-11738: Use Binary Search to Improve LeaderTableFilter Initialization Times
  • DH-11721: Index update error from LeaderTableFilter after query initialization
  • IDS-8032: Suppress noisy logging from io.grpc.NameResolverRegistry and LoadBalancerRegistry (backport)
  • DH-11576: Update Copyright Info on error web page to 2021
  • DH-11652: Optimize getTimeZone call in JS API
  • DH-11663: Fix hard coded pid file locations in scripts
  • DH-11679: Disable auto-reconnect for temporary/single-use PQ-Client connection
  • DH-11674: Improve BaseTable validations.
  • DH-11377: Remove ModifiedColumnSet empty equal to modified empty assertion from index validation (backport from 1.20210401.063)
  • DH-11695: Allow JS to Save to Workspace
  • DH-11612: Create option to disable search bar by default
  • DH-11687: Add support for SelectColumns that always evaluate updates, regardless of if dependency columns were touched
  • DH-10118: Fix char filters in Web client
  • DH-11649: Improve Memory Usage of Sparse Static Table update()s
  • DH-9462: Controller Dynamic Reload Doesn't Pass Property Override
  • DH-11614: Add option for all worker heap allocations to be pre-allocated (Xms = Xmx, at least)
  • DH-11676: Update web packages to v0.5.1
  • DH-11686: Fix monaco theme issues
  • DH-11657: Fix mirror image view on small Dropdown Filter panels
  • DH-11737: Fix dead scroll corner in grid
022DH-11489: IntradayLoggerFactory shouldn't write listener classes
021Merge updates from 1.20210201.187beta
  • DH-11673: Fix Bard build failure in Generators:generatePythonIntegrationStaticMethodsAssert
  • DH-11650: Do not download with curl inside Dockerfiles
  • DH-11656: More efficiently null sparse array sources
  • DH-11654: Fix invalid deep-link after logout then login
020Merge updates from 1.20210201.184beta
  • DH-11666: Configuration Switch to Disable naturalJoin Sparse Redirections
  • DH-11638: Fix NPE when setting table attributes
  • DH-11634: Fix NPE from dis/las when anomalygateway is enabled
  • DH-10497: Fix ErrorNotification race condition during DynamicTable write & potentially swallowing errors.
  • DH-11608: Support Import from STDIN through CSV importer
  • Update web packages to v0.4.0
  • DH-11388: Fix Ctrl+S displaying save success on regular tables
019Merge updates from 1.20210201.182beta
  • DH-11605: Preserve scrollbar when unfreezing last column
  • DH-10032: update USNYSE calendar for 2023
  • DH-11596: Warn when calendars approach last holiday-date, exception when using business-calendar logic beyond last holiday-date
  • DH-11631: Missing toStrings in Agg Factories
  • DH-11583: Shadow Jackson Databind JSON parser
  • DH-11475: Fixed ParQ link editor "Edit All" null reference
  • DH-11418: Fixed reverse search in control panel
  • DH-11477: Fixed ParQ tab not coloring in link editor
  • DH-11479: Fixed ParQ panel sending null filters
  • DH-11480: Added "Remove All Links"
  • DH-11476: Fixed Workspace saving of fixed list selection when backed by a table
  • DH-11426: Fixed items not being removed when dependent panels closed
  • DH-11607: Upgrade groovy to 3.0.9
  • DH-9448: Remove fishPdht dependency from Controller's gradle
  • DH-9461: Remove Python import/merge scripts* .018 DH-11630: Move replicate into a self-contained package
017DH-11074: Remove ChunkChunk and associated unused code.
016DH-11625: WouldMatch IndexWrapperColumnSource should Override match
015Merge updates from 1.20210201.177beta
  • DH-11606: Fix merging tables that contain only Partitioning and Grouping Columns
  • DH-11620: wouldMatch ColumnSource fillChunk Bug
  • DH-11594: C# Open API - Update sample-program for 20210401-specific changes
  • DH-11574: C# Open API - Permit same login to connect to workers and PQs
  • DH-11441: Display an error message if the API cannot load
  • DH-11593: Improve instructions to set up for local web development
  • DH-11594: C# Open API - Update sample-program for 20210401-specific changes
  • DH-11336: layoutHints API support and optimize totalsTableConfig (UI work to follow)
  • DH-11574: C# Open API - Permit same login to connect to workers and PQs
014DH-10172: Add option to restart PQs if they have been started manually
DH-11328: Web Work for PQ Restart Option
DH-11582: Expose queryScheduler.restartWhenRunningDefault in the JS API
013DH-11598: Javadoc Build Issues
012Merge updates from 1.20210201.171beta
  • DH-11594: C# Open API - Update sample-program for 20210401-specific changes
011Merge updates from 1.20210201.171beta
  • DH-11574: C# Open API - Permit same login to connect to workers and PQs
010Merge updates from 1.20210201.171beta
  • DH-11581: Input.setField works with display-table LITE
  • DH-11558: Redirected select can not be serialized; dont redirect flat tables; fix PQ revert data query to be flat.
  • DH-11438: TableMapProxy with right hand side table does not respect rhs dependency.
  • DH-11580: JoinListener Descriptions Incorrect
  • DH-11513: change etcd table name validator to match existing rules
  • DH-11504: C# Open API - Implement Worker-Wide connection watchdogs for C# OpenAPI client
  • DH-11560: InputTable.setField does not need to request full row-data
  • DH-11453: Ensure waitForData before waitForPopulation reapplied
  • Revert DH-11453: Ensure waitForData before waitForPopulation
  • DH-11221: Fix jupyter grid and web api caching issue
  • DH-11103: Fix java.util.NoSuchElementException: KeyedObjectHash Iterator on connect to PQ
  • DH-11532: reverting tests due to concurrency
  • DH-11506: current only index on static by conflicts with DbArray getPrev
  • DH-11467: Integer Overflow in RegionedColumnSources
  • DH-11532: increase tests run in jenkins
  • DH-11531: C# Open API - Support Nullable getters from columns
  • DH-11533: Error in ClusterMap Default Value
  • DH-11379: Case-insensitive dashboard search and sort
  • DH-11389-1: Fix clear all filters shortcut in Web UI
  • DH-11551: Update web packages to v0.3.0
  • DH-11442/DH-11396 update jetty URL rewrite config and revert .152 (dashboards deep-linking)
009Merge updates from 1.20210201.166beta
  • DH-11406: Allow specific email domain
  • DH-11527: MultiInputFileStream bug fix
  • DH-11511: Fix tailer NPE where lastFileProcessed is null
  • DH-11453: Ensure waitForData before waitForPopulation
  • DH-11456: Add a flag to skip database permission requirements requirements
  • DH-11505: Add startsWith/endsWith options to string filtering in swing
  • DH-11396: update jetty URI filters for deep-linking URL support
  • DH-11514: Add script to bump the version
  • DH-10159: Filter Set Manager
008DH-11497: Port Add Only Sorted First and Sorted Last Operators from OSS
007DH-10150: Provide mechanism for PQ-only query servers
006DH-11118: Add support for automated query server selection
DH-11408: Remove Dispatcher's Interactive Worker Logic
005Merge updates from 1.20210201.162beta
  • DH-11490: Fix references to craco script on build machines
004Merge updates from 1.20210201.161beta
  • DH-11490: Improve development process with importing DHC packages
  • DH-11378: Disable copy for blank unsaved dashboards
  • DH-11368: Incorrect dashboard type in cloned Query Monitors and Code Studios
003Merge updates from 1.20210201.158beta
  • DH-11484: Fix exception type.
  • DH-11484: naturalJoin does not detect duplicates when right table is live and left is static
  • DH-11473: Update iris_user_db_mod to permit proper user-creation and password-updating
  • DH-11335: enable ABS_SUM aggregations in our web API
  • DH-11464: SchemaService api accepts namespace set as a string
  • DH-10221: Ensure that snapshot versions are unique per web-api run
002DH-11169: Engine updates to utilize groupings as table. Major refactor of Grouping
001Initial release creation from 1.20210201.154beta

Python 3.8 is the oldest supported Python version

Even though Python 3.8 has already reached EOL, on some versions of Deephaven, this is the newest built + tested version of Python.

As of Bard version 1.20211129.426, Python 3.8 is the only Python version built, and iris-defaults.prop changes the default from Python 3.6 to 3.8.

If you still have virtual environments setup with Python 3.6 or 3.7, you should replace them with Python 3.8 venvs. To use newer versions of Python, upgrade to a newer version of Deephaven.

For legacy systems, you can change the default back to Python 3.6 by updating your iris-environment.prop to set the various jpy.* props to the values found in iris-defaults.prop, inside the jpy.env=python36 stanza:

# Legacy python3.6 locations:
jpy.programName=/db/VEnvs/python36/bin/python3.6
jpy.pythonLib=/usr/lib64/libpython3.6m.so.1.0
jpy.jpyLib=/db/VEnvs/python36/lib/python3.6/site-packages/jpy.cpython-36m-x86_64-linux-gnu.so
jpy.jdlLib=/db/VEnvs/python36/lib/python3.6/site-packages/jdl.cpython-36m-x86_64-linux-gnu.so

The new iris-defaults.prop python props are now:

# New iris-defaults.prop python3.8 locations:
jpy.programName=/db/VEnvs/python38/bin/python3.8
jpy.pythonLib=/usr/lib/libpython3.8.so
jpy.jpyLib=/db/VEnvs/python38/lib/python3.8/site-packages/jpy.cpython-38-x86_64-linux-gnu.so
jpy.jdlLib=/db/VEnvs/python38/lib/python3.8/site-packages/jdl.cpython-38-x86_64-linux-gnu.so

Option close Tailer-DIS connections early, while continuing to monitor files

A new property is available to customize the behavior of the Tailer.

log.tailer.defaultIdlePauseTime

This property is similar to log.tailer.defaultIdleTime, but it allows the Tailer to close connections early while continuing to monitor files. When the idle time specified by log.tailer.defaultIdleTime has passed without any changes to a monitored file, the Tailer will close the corresponding connection to the DIS, and will not process any further changes to the file. The default idle time must therefore be as long as the default file rollover interval plus some buffer.

The new property enables a new feature. When the time specified by log.tailer.defaultIdlePauseTime has passed without any changes to a monitored file, the Tailer will close the corresponding connection to the DIS, but will continue to monitor the file for changes. If a change is detected, the Tailer will reopen the connection and process the changes. This will reduce or more quickly reclaim resources consumed for certain usage patterns.

Optional lenient IOJobImpl to avoid write queue overflow

New behavior is available to avoid write queue overflow errors in the TDCP process. When a write queue overflow condition is detected, the process can be configured to delay briefly - giving the queue a chance to drain.

The following properties govern the feature:

IOJobImpl.lenientWriteQueue
IOJobImpl.lenientWriteQueue.retryDelay
IOJobImpl.lenientWriteQueue.maxDelay

Set IOJobImpl.lenientWriteQueue=true to enable this behavior. By default, the writer will wait up to IOJobImpl.lenientWriteQueue.maxDelay=60_000 ms in increments of IOJobImpl.lenientWriteQueue.retryDelay=100 ms.

This should address the following fatal error in the TDCP process:

ERROR - job:1424444133/RemoteTableDataService/10.128.1.75:37440->10.128.1.75:22015 write queue overflow: r=true, w=true, p=false, s=false, u=false, h=0, rcap=69632, rbyt=0, rmax=4259840, wbyt=315407, wspc=1048832, wbuf=4097, wmax=1048576, fc=0, allowFlush=true

Option to default all user tables to Parquet

Set the configuration property db.LegacyDirectUserTableStorageFormat=Parquet to default all direct user table operations, such as db.addTable, to the Parquet storage format. The default if the property is not set is DeephavenV1.

Deephaven processes log their heap usage

The db_dis, web_api_service, log_aggregator_service, iris_controller, db_tdcp, and configuration_server processes now periodically log their heap usage.

PersistentQueryController.log.current:[2024-05-10T15:00:32.365219-0400] - INFO - Jvm Heap: 3,972,537,856 Free / 4,291,624,960 Total (4,291,624,960 Max)
PersistentQueryController.log.current:[2024-05-10T15:01:32.365404-0400] - INFO - Jvm Heap: 3,972,310,192 Free / 4,291,624,960 Total (4,291,624,960 Max)

The logging interval can be configured using the property RuntimeMemory.logIntervalMillis. The default is one minute.

Automatically Provisioned Python venv Will Only Use Binary Dependencies

All pip installs performed as part of the automatic upgrade of Python virtual environments will now pass the --only-binary=:all: flag, which will prevent pip from ever attempting to build dependencies on a customer machine.

As part of this change, we automatically upgrade pip and setuptools in all virtual environments, and have upgraded a number of dependencies which for pip refused to use prebuilt binary dependencies:

For all virtual environments:
dill==0.3.1.1 is now dill==0.3.3
wrapt==1.11.2 is now wrapt==1.13.2

For jupyter virtual environments:
backcall==0.1.0 is now backcall==0.2.0
tornado==6.0.3 is now tornado==6.1

Tailer configuration changes to isolate user actions

The tailer allocates resources for each connection to a Data Import Server for each destination (namespace, table name, internal partition, and column partition). System table characteristics are predictable and fairly consistent, and can be used to configure the tailer with appropriate memory.

User tables are controlled by system users, so their characteristics are subject to unpredictable variations. It is possible for a user to cause the tailer to consume large amounts of tailer resources, which can impact System data processing or crash the process.

This change adds more properties for configuration, and adds constraints on User table processing separate from System tables.

User table isolation

Resources for User table locations are taken from a new resource pool. The buffers are smaller by default, and the pool has a constrained size. This puts an upper limit on memory consumption when users flood the system with changed locations, which can happen with closeAndDeleteCentral or when back filling data. The resources for this pool are pre-allocated at startup. The pool size should be large enough to handle expected concurrent user table writes.

PropertyDefaultDescription
DataContent.userPoolCapacity128The maximum number of user table locations that will be processed concurrently. If more locations are created at the same time, the processing will be serialized.
DataContent.producerBufferSize.user256 * 1024The size in bytes of the buffers used to read data for User table locations.
DataContent.disableUserPoolfalseIf true, user table locations are processed using the same resources as system tables.

Tailer/DIS configuration options

The following properties configure the memory consumption of the Tailer and Data Import Server processes.

PropertyDefaultDescription
DataContent.producersUseDirectBufferstrueIf true, the Tailer will use direct memory for its data buffers.
DataContent.consumersUseDirectBufferstrueExisting property. If true, the Data Import Server will use direct memory for its data buffers.
BinaryStoreMaxEntrySize1024 * 1024Existing property. Sets the maximum size in bytes for a single data row in a binary log file.
DataContent.producerBufferSize2 * BinaryStoreMaxEntrySize + 2 * Integer.BYTESThe size in bytes of buffers the tailer will allocate.
DataContent.consumerBufferSize2 * producerBufferSizeThe size in bytes of buffers the Data Import Server will allocate. This must be large enough for a producer buffer plus a full binary row.

Revert to previous behavior

To disable the new behavior in the tailer, set the following property:

DataContent.disableUserPool = true

Logger overhead

The default Logger creates a fixed pool of buffers. Certain processes are fine with a smaller size.

The following properties can be used to override the default configuration of the standard process Logger. Every log message uses an entry from the entry pool, and at least one buffer from the buffer pool. Additional buffers are taken from the buffer pool as needed. Both pools will expand as needed, so the values below dictate the minimum memory that will be consumed.

PropertyDefaultDescription
IrisLogCreator.initialBufferSize1024The initial size of each data buffer. Buffers may be reallocated to larger sizes as required.
IrisLogCreator.bufferPoolCapacity1024The starting (and minimum) number of buffers in the buffer pool.
IrisLogCreator.entryPoolCapacity32768The initial (and minimum) size of the LogEntry pool.
IrisLogCreator.timeZoneAmerica/New_YorkThe timezone used in binary log file names.

The default value for IrisLogCreator.entryPoolCapacity has been reduced to 16384 for Tailer processes.

generate-iris-keys and generate-iris-rsa no longer overwrite output

The generate-iris-keys and generate-iris-rsa scripts use OpenSSL to generate public and private keys. If you have an existing key file, the scripts now exit with a failure and you must remove the existing file before regenerating the key.

Added Envoy properties to allow proper operation in IPv6 or very dynamic routing environments

The new properties envoy.DnsType and envoy.DnsFamily allow configuration of Envoy DNS behaviors for xds routes added by the Configuration server.

  • envoy.DnsType configures the value to be set in dynamically added xds routes for type. The default if this property is not set is LOGICAL_DNS. If there is a scenario where DNS should be checked on each connection to an endpoint, this can be changed to STRICT_DNS. Refer to Envoy documentation for more details about possible settings.

  • envoy.DnsFamily configures the value to be set in dynamically added xds routes for dns_lookup_family. The default if this property is not set is AUTO. In environments where IPv6 is enabled the AUTO setting may cause Envoy to resolve IPv6 addresses for Deephaven service endpoints; since these service endpoints only listen on IPv4 stacks, Envoy will return a 404 or 111 when getting "Connection refused" from the IPv6 stack. Refer to Envoy documentation for more details about possible settings.

Since Deephaven endpoint services listen only on IPv4 addresses, and Envoy, by default, prefers IPv6 addresses, it may be necessary to modify the configuration in environments where IPv6 is enabled. To do this:

  1. add an entry to the iris-environment.prop properties file of envoy.DnsFamily=V4_ONLY

  2. edit the envoy3.yaml (or whichever configuration file Envoy is using) and add dns_lookup_family=V4_ONLY to the xds_service section:

    static_resources:
      clusters:
        - name: xds_service
          connect_timeout: 0.25s
          type: STRICT_DNS
          dns_lookup_family: V4_ONLY
    
  3. import the new configuration and restart the configuration server and the Envoy process for the changes to take effect.

Modified Bessel correction formula for weighted variance

The weighted variance computation formula has been changed to match that used in the Deephaven Community engine. We now use the standard formula for "reliability weights" instead of the previous "frequency weights" interpretation. This will affect statistics based on variance such as standard deviation.

Allow removal of "Help / Contact Support ..." via property

A new property, IrisConsole.contactSupportEnabled has been added, which may be used to remove the "Help / Contact Support ..." button from the swing front-end.

By default, this property is set to true in order to preserve current behavior. Setting this to false in properties will remove the menu-option.

Reduce default max table display size

The maximum number of rows that may be displayed in the swing front-end before the red "warning bar" is displayed is now configurable. A new default maximum has been defined as 67,108,864 (64 x 1024 x 1024). Technical limitations cause rows beyond this limit to not properly update. When necessary, the Web UI is capable of displaying much larger tables than Swing.

The previous default max may be configured with the following property:

DBTableModel.defaultMaxRows=100000000

Note that the property-defined maximum may be programmatically reduced based on technical limits.

Python Integral Widening

In the 1.20211129 release, the jpy module that Deephaven's Python integration depends on converting all Python integral results into a Java integer. This resulted in truncated results when values exceed Integer.MAX_VALUE. In 1.20221001, Deephaven is using an updated jpy Integration that returns values in the narrowest possible type; so results that previously were an integer could be returned as a byte or a short. Moreover, a formula may have different types for each row. This prevented casting the result into a primitive type, as boxed objects may not be casted to another primitive.

In 1.20221001.196, Python calls in a formula now widen Byte and Short results to an Integer. If the value returned exceeds, Integer.MAX_VALUE, then the result is a Long. Existing formulas that would not have been truncated by conversion to an int in 1.20211129, behave as they would have in that release.

As casting from an arbitrary integral type to a primitive may be required, we have introduced a utility class com.illumon.iris.db.util.NumericCast that provides objectToByte, objectToShort, objectToInt, and objectToLong methods that will convert any Byte, Short, Integer, Long, or BigInteger into the specified type. If an overflow would occur, an exception is thrown.

Numba formulas (those that are surrounded in the nb function); have the narrowing behavior as in prior versions of 1.20221001.

Changed to use DHC Fast CSV parser for readCsv

TableTools.readCsv calls now use the new DHC High-Performance CSV Parser that uses a column oriented approach to parse CSV files.

The change to DHC parser includes the following visible enhancements

  1. Any column that is only populated with integer surrounded by white space will be identified as an integer column. The previous parser would identify the column as a double.

  2. Only 7-bit ASCII is supported as valid delimiters. This means characters such as € (euro symbol) are not valid. In these cases the following error will be thrown, delimiter is set to '€' but is required to be 7-bit ASCII.

  3. Columns populated wholly with only single characters will be identified as Character columns instead of String columns.

  4. Additional date time formats are automatically converted to DBDateTime columns. Previously, these formats were imported as String columns. All other date time behavior remains unchanged.


    | Format | Displayed Value in 1.20211129 | Data Type In 1.20211129 | Displayed Value in 1.20221001 | Data Type in 1.20221001 |

    | DateTimeISO_UTC_1 | 2017-08-30 11:59:59.000Z | java.lang.String | 2017-08-30T07:59:59.000000000 NY | com.illumon.iris.db.tables.utils.DBDateTime | | DateTimeISO_UTC_2 | 2017-08-30T11:59:59.000Z | java.lang.String | 2017-08-30T07:59:59.000000000 NY | com.illumon.iris.db.tables.utils.DBDateTime | | DateTimeISO_MillisOffset_2 | 2017-08-30T11:59:59.000-04 | java.lang.String | 2017-08-30T11:59:59.000000000 NY | com.illumon.iris.db.tables.utils.DBDateTime | | DateTimeISO_MicrosOffset_2 | 2017-08-30T11:59:59.000000-04 | java.lang.String | 2017-08-30T11:59:59.000000000 NY | com.illumon.iris.db.tables.utils.DBDateTime |

To use the legacy CSV parser, set the configuration property com.illumon.iris.db.tables.utils.CsvHelpers.useLegacyCsv to true.

Remote R Groovy Sessions

The idb.init method now has an optional remote parameter. When set to TRUE, Groovy script code is not executed locally but rather on a remote Groovy session as is done in the Swing console or Web Code Studio. This eliminates a class of serialization problems that could otherwise occur with a local Groovy session serializing classes to the remote server. To enable this, you must pass the remote parameter as follows:

idb.init(devroot=devroot, workspace, propfile, keyfile=keyfile, jvmArgs=jvmLocalArgs, remote=TRUE)

Additionally, you may now call idb.close() to terminate the remote worker and release the associated server resources.

Added new DbInternal.ProcessTelemetry system table and TelemetryHelperQuery

The new ProcessTelemetry table enables monitoring UI performance within the Swing front-end. For each user-initiated action, the console logs the duration between the start of the operation and when the table is ready for use. By aggregating this telemetry, an overall picture of the system's health - as perceived by users - is available. Detailed information can then be used to investigate potential performance problems.

To write these events, the Swing console internally buffers the data and then sends it to the new TelemetryHelperQuery query. If the TelemetryHelperQuery is not running, data is buffered up to a configurable limit, at which point the oldest telemetry data is discarded.

Several new startup parameters define the Telemetry behavior for the console:

[service.name=iris_console] {
    # Identifies if telemetry metrics should be logged in the DbInternal.ProcessTelemetry table. To enable logging to
    # the remote table, set the followig property to `true`. Note that telemetry will still be logged to the local
    # client-logfile unless disabled with the `enableFor` options described below
    Telemetry.remoteTelemetry=false
    
    
    # Defines the frequency for messages to be sent to the server. Events will be batched and sent periodically. The
    # default frequence is 15s
    Telemetry.sendFrequencyMs=15_000
    
    # Defines the initial size of the buffer which stores messages to be sent in a batch, defaulting to 1,024
    Telemetry.initialSendBuffer=1_024
    
    # Defines the maximum number of messages to store and send in a single batch. New messages appended to the buffer
    # after it is full will cause "older" events to be removed. The default maximum value is 10,000
    Telemetry.maxSendBuffer=10_000
    
    
    # A number of classes will attempt to log telemetry locally and to the remote table. Individual classes may be
    # prevented from being logged by setting the following to `false`
    Telemetry.enableFor.DBTableModel=true
    Telemetry.enableFor.IrisTreeTableModel=true
    Telemetry.enableFor.DbOneClickPanel=true
}

A new method, telemetrySummary(), which accepts an optional "Date" parameter, has been added to the default Groovy session. The method will provide summary tables derived from the raw Telemetry data.

For new installations, an ACL is automatically applied to the DbInternal.ProcessTelemetry table. For an upgrade, an ACL editor must create a new "Table ACL" for the raw DbInternal.ProcessTelemetry data to be seen by unprivileged users. The ACL should be similar to the "allusers/ProcessEventLog" ACL, but for the ProcessTelemetry table:

allusers | DbInternal | ProcessTelemetry | new UsernameFilterGenerator("EffectiveUser")

Parameterized Query Lock changes

Parameterized Queries now use the shared LTM lock instead of the exclusive LTM lock. Query writers may also now instruct the query not to use any of the LTM locks with the requireComputeLock on the ParameterizedQueryBuilder.

When using no locks, the query writer must ensure that the Parameterized Query Action does not use any methods that require the LTM lock. If this parameter is set to false incorrectly, then results are undefined.

Add support for worker-scope plugin classpaths

Server processes now search in /etc/sysconfig/illumon.d/plugins/*/worker for server-only plugin jars and classpath entries in addition to searching for path items from /etc/sysconfig/illumon.d/plugins/*/global.

While global dependencies are included on both server and client classpaths, worker dependencies are only be added to server processes (any process using monit or the iris launch script, as well as any jvm started from a server python session). In particular, the client update service does not make JARs in the worker directory available to the Swing console.

Column Rename Support from UI

The Schema Editor now supports ability to rename a column between the application log file and the table schema. The UI changes include how data type is handled for new columns in the Logger/Listener Column Details section. The default data type for new columns is not set and instead inherits the Intraday Type.

Below are example schemas for LoggerListener and a Listener only schema for a table with three columns.

The table below has three columns (Date, Destination and SameName) while The logger has two columns (SameName and Source).

  • Date column is not present in the log file, but rather determined by the logging process.
  • SameName column is in both the log file and table schema, and does not need to be transformed.
  • Source column in the logger is renamed as Destination in the table.

To rename Source column as Destination, the Listener class should include both Source and Destination columns and their attributes should be:

  • Source: A value of none for dbSetter attribute. This indicates that the column is not present in the table. Additionally, the attribute intradayType should be set to the appropriate dataType.
  • Destination: A value of Source for dbSetter to identify its input source. A value none for intradayType means it is not present in the log file, and cannot be used as part of a dbSetter.

Schema with only Listener class

If the table has an externally generated log file (e.g., with a C++ logger), then you only need to define a Listener block to interpret the log file.

<Table namespace="ExampleNamespace" name="RenameColumn" storageType="NestedPartitionedOnDisk" >
  <Partitions keyFormula="${autobalance_single}"/>
  <Column name="Date" dataType="String" columnType="Partitioning" />
  <Column name="Destination" dataType="int" columnType="Normal" />
  <Column name="SameName" dataType="int" columnType="Normal" />

  <Listener logFormat="1" listenerPackage="com.illumon.iris.test.gen">
    <Column name="Destination" intradayType="none" dbSetter="Source" />
    <Column name="SameName" dataType="int" />
    <Column name="Source" intradayType="int" dbSetter="none" />
  </Listener>
</Table>

Schema with a LoggerListener

If you are generating a Java logger, then you should include a LoggerListener block in your schema.

<Table name="RenameColumn1001" namespace="ExampleNamespace" defaultMergeFormat="DeephavenV1" storageType="NestedPartitionedOnDisk">
  <Partitions keyFormula="${autobalance_single}" />
  
  <Column name="Date" dataType="String" columnType="Partitioning" />
  <Column name="Destination" dataType="Integer" />
  <Column name="SameName" dataType="Integer" />
  
  <LoggerListener logFormat="1" loggerClass="RenameColumn1001Logger" loggerPackage="com.illumon.iris.test.gen" 
                  rethrowLoggerExceptionsAsIOExceptions="false" tableLogger="false" generateLogCalls="true" 
                  verifyChecksum="true" listenerClass="RenameColumn1001Listener" listenerPackage="com.illumon.iris.test.gen">
    
    <SystemInput name="Source" type="int" />
    <SystemInput name="SameName" type="int" />
    
    <Column name="Destination" intradayType="none" dataType="int" dbSetter="Source" />
    <Column name="SameName" dataType="int" />
    <Column name="Source" dataType="int" dbSetter="none" />
  </LoggerListener>
</Table>

Renaming column examples for Blob and String data types.

The above pattern can be followed for all data types except for Blob and String. The differences are detailed below.

Renaming column for a Blob data type.

To rename column of a Blob data type, users need to provide the actual data type of the data stored in Blob. The Edit Logger/Listener Column UI now provides the ability to edit the data type field when the Intraday Type field is Blob. Note the data type field can only be changed if the current displayed value is none. In addition to setting the data type for the application log file column, the Listener column's dbSetter attribute must explicitly invoke cast as shown in the example schema below.

The example below shows Destination, SameName and Source columns of data type java.util.List.

<Table name="RenameColumn101" namespace="ExampleNamespace" defaultMergeFormat="DeephavenV1" storageType="NestedPartitionedOnDisk">
  <Partitions keyFormula="${autobalance_single}" />
  
  <Column name="Date" dataType="String" columnType="Partitioning" />
  <Column name="Destination" dataType="java.util.List" />
  <Column name="SameName" dataType="java.util.List" />
  
  <LoggerListener logFormat="1" loggerClass="RenameColumn101Logger" loggerPackage="com.illumon.iris.test.gen" 
                  rethrowLoggerExceptionsAsIOExceptions="false" tableLogger="false" generateLogCalls="true" verifyChecksum="true" 
                  listenerClass="RenameColumn101Listener" listenerPackage="com.illumon.iris.test.gen">
    
    <SystemInput name="Source" type="java.util.List" />
    <SystemInput name="SameName" type="java.util.List" />
    
    <Column name="Destination" intradayType="none" dataType="java.util.List" dbSetter="(java.util.List)blobToObject(Source)" />
    <Column name="SameName" intradayType="Blob" dataType="java.util.List" autoBlobInitSize="32000" />
    <Column name="Source" intradayType="Blob" dataType="java.util.List" dbSetter="none" autoBlobInitSize="256" autoBlobMaxSize="32000" />
  </LoggerListener>
</Table>

Renaming column for a String data type.

The basic steps are similar to all previous example except the Intraday Type for a String column is EnhancedString. This is reflected in the options available to select for Intraday Type. The list of valid Intraday Type options no longer includes String.

The dbSetter value for Destination column should include a toString() on the setter value as shown below in the example.


<Table name="RenameColumn02" namespace="ExampleNamespace" defaultMergeFormat="DeephavenV1" storageType="NestedPartitionedOnDisk">
    <Partitions keyFormula="${autobalance_single}"/>

    <Column name="Date" dataType="String" columnType="Partitioning"/>
    <Column name="Destination" dataType="String"/>
    <Column name="SameName" dataType="String"/>

    <LoggerListener logFormat="1" loggerClass="RenameColumn102Logger" loggerPackage="com.illumon.iris.test.gen"
                    rethrowLoggerExceptionsAsIOExceptions="false" tableLogger="false" generateLogCalls="true"
                    verifyChecksum="true" listenerClass="RenameColumn102Listener"
                    listenerPackage="com.illumon.iris.test.gen">

        <SystemInput name="Source" type="java.lang.String"/>
        <SystemInput name="SameName" type="java.lang.String"/>

        <Column name="Destination" intradayType="none" dataType="java.lang.String" dbSetter="Source.toString()"/>
        <Column name="SameName" dataType="java.lang.String"/>
        <Column name="Source" intradayType="EnhancedString" dataType="java.lang.String" dbSetter="none"/>
    </LoggerListener>
</Table>

Fix concurrency error in Table deserialization

When multiple Tables containing the same type of SparseArrayColumnSource were concurrently deserialized, the reader (e.g., a query worker) had a static object that was incorrectly used across threads. This change corrects that error, which could result in corrupted tables or exceptions during the deserialization process.

Kafka resumeFrom should fail when previous checkpoint does not exist

When calling io.deephaven.kafka.ingest.ResumeImportFrom.resumeFrom(...), a ResumeImportFrom.NoPriorPartitionsFoundException will be thrown if there is no prior partition found. This prevents us from inadvertently setting the broker's offset to 0.

SchemaDiscovery builders requires partitioning-column be defined

Since the schema-discovery tools are intended for use with a Kafka ingester, these generated schemas should be defined as System tables. System tables cannot be written which are storageType="SplayedOnDisk", and therefore MUST have a partitioning-column defined. If a user attempts to generate a schema without first defining a .columnPartition(...), then an exception will be thrown stating that the field is required.

Added StaticGroupFilterGenerator class

A new StaticGroupFilterGenerator() class is available for managing data access in environments where multiple users access the same table. This class creates a match filter for groups to which this user belongs. By default, this filters the Group column, but an optional column name can be passed in to the generator.

  • Unlike the GroupFilterGenerator, the user’s group list is determined at table access time and is not updated if the user's group membership changes. The user’s group that matches their username is excluded from the filter, which allows the filter to be memoized for two users who belong to the same groups. The GroupFilterGenerator, by contrast, is responsive to on-the-fly changes and allows a username to be the group being filtered on, but cannot memoize across users (as each user’s groups may change independently).

Apache Arrow support

Deephaven now supports reading Apache Arrow files using the com.illumon.iris.db.arrow.ArrowTools class. The new ArrowTools.readArrow method accepts a path to .arrow file and returns a Table. Many types are supported including int, long (and all others which resemble java primitives), LocalDateTime, LocalDate, Timestamp, BigDecimal, and more.

Queries should route data through the TDCP running on the same machine

The Table Data Cache Proxy is designed to cache data for local use. There is an instance on each query node, and the design intention is that queries route requests through the instance running on the same machine. An error in the Deephaven installer might have configured the system data routing so that all requests are routed to the infra node instead.

To check your data routing file and correct it if necessary, follow the instructions here.

The db_tdcp entry under tableDataServices: should have a host entry like the following, not the infra node address.

# Configuration for the TableDataCacheProxy named db_tdcp, and define
# the data published by that service.
# There is typically one such service on each worker machine.
db_tdcp:
host: *localhost

Parquet Files Properly Use Codecs

A bug was fixed where ParquetTools.writeTable() would not respect the codec settings set by TableDefinitions.
Data written before this fix would have been written with the ExternalizableCodec if the object was Externalizable, or SerializableCodec if the object was Serializable. For this reason the data will still be readable.
Data written after this fix will use the properly assigned codec.

Update Apache commons-text-1.9 to 1.10.0

The Apache commons-text package had a critical CVE reported by the owasp dependency scan, which is corrected in 1.10.0. Deephaven now packages 1.10.0 instead of 1.9, user scripts that import commons.text will use the new version. For more information on changes see the Apache Commons Text Changes.

iris_keygen.sh updates

/usr/illumon/latest/install/iris_keygen.sh has been modified:

  • If the executing user is irisadmin or dbmerge, it will attempt to execute commands that require irisadmin or dbmerge rights without sudo. If the executing user is neither of these, then, as in previous versions, the tool will check that the user has rights to sudo -u as both of these users, and will then use sudo -u irisadmin or dbmerge, as appropriate, to execute other commands.

  • Logging has been changed from /usr/illumon/latest/install/command to /var/log/deephaven/misc.

  • A new option, --alt-cert-dir, has been added, allowing the user to specify an alternate location for tls.crt and tls.key files; by default these are expected to be in /etc/deephaven/cus-tls.

Fixed Errors in TableMap Liveness management

When TableMaps were exported, they were always managed (via liveness) regardless of if they are refreshing or not.

When a derived object is created from a LivenessObjects (e.g., a TableMap created from a Table), clients must invoke LivenessManager#manage(LivenessReferent) on the parent object if and only if the parent object is itself, live. This can be checked via DynamicNode#isDynamicAndIsRefreshing(Object).

Persistent Query Export Storage Format

Persistent Queries are exported as an XML version 1.0 file, which does not allow for certain characters that may be found in script code. These include the control characters with a numeric value below 0x20 except 0x09 (Horizontal Tab), 0x0A (Line Feed) 0x0D (Carriage Return).

With this change, when a persistent query containing any invalid characters is exported, the script code will be base64 encoded in the resulting XML file to prevent the controller from crashing by attempting to create an invalid XML document.

Persistent Query Export Storage Format

Persistent Queries are exported as an XML version 1.0 file, which does not allow for certain characters that may be found in script code. These include the control characters with a numeric value below 0x20 except 0x09 (Horizontal Tab), 0x0A (Line Feed) 0x0D (Carriage Return).

With this change, when a persistent query containing any invalid characters is exported, the script code will be base64 encoded in the resulting XML file to prevent the controller from crashing by attempting to create an invalid XML document.

withColumnDescription modified Parent Table

The withColumnDescription method would modify the parent table if the parent table already had column descriptions. If the parent table had no column descriptions it was unchanged. This change will cause the method to always return a new table when the description is change. If your query depended on modifying the parent table when setting column descriptions, those will no longer be present in the UI, and you must update your query to set the description on the proper table.

Installer improvements and fixes

There no impact from this change. It improves the robustness of some aspects of the install process.

Etcd install enhancements

If the installer process requires an etcd download and no JFrog artifactory API key is provided, the installer will download it from a public Deephaven repository hosted on Google Cloud Platform. If the download fails, the installer will stop at that point in the process making it easier to determine the cause of the failure. If an etcd rpm is present in the installer directory then that will be distributed to the cluster's target nodes in lieu of a download.

Memoize Query ACL Application

When users fetch a table from a persistent query that defines ACLs, a series of complex query operations may be applied. These operations include filtering to valid rows, applying wouldMatch and updateView to provide per-cell access control, and performing a treeTable or rollup operation when a tree or rollup is filtered.

These operations can be quite expensive and many workspaces include the same table with a different combination of filters, sorts, and other customizations; therefore performance may be improved by applying the ACL operations only once per user per exported table. These operations are now memoized, which prevents re-application of the same ACL multiple times.

Schema import now compiles listeners

There are possible schema errors that only become apparent when the listeners are compiled. This compilation can now be performed when importing a schema, as part of the validation. dhconfig schemas import now includes options to control whether to compile listeners when validating a schema.

    --compile-listeners      compile listeners when importing
    --no-compile-listeners   do not compile listeners when importing (default)

--lenient-validation changes listener compilation errors into warnings.

Disabling this validation step might be useful when importing a large number of schemas that are known to be correct.

Note: The default setting will change in a later release.

RemoteQueryDispatcher Jetty SSL Configuration

The RemoteQueryDispatcher always starts the embedded web server to serve the registration endpoint for workers (RemoteQueryProcessors). The JettyServerHelper.Parameters class reads the parameters for the Jetty server from configuration, but if the configuration did not specify enabled; the SSL and authentication properties were ignored.

As of the Jackson release the RemoteQueryDispatcher.webserver.enabled property only adds URLs for worker queue and usage information rather than enabling or disabling Jetty overall. In the default configuration, these URLs were disabled, but the RemoteQueryDispatcher.webserver.sslRequired and RemoteQueryDispatcher.webserver.sslRequired properties were set to true, but ignored by the system.

Additionally, the RemoteQueryDispatcher.tls.keystore property was not specified. This property now takes on a default value of /etc/sysconfig/illumon.d/auth-user/webServices-keystore.p12.

ACL Database SQL Initialization Script Path

Files in /etc/sysconfig/deephaven/illumon.d.${VARIANT_VERSION}/sql are no longer copied/maintained during the update process.

The files are included in the installation, and may be found in /usr/illumon/illumon-db-${VARIANT_VERSION}/etc/sql.

Limiting Concurrent Input Columns with Merge

The merge process can now limit the number of input columns processed concurrently for a maximum throughput merge configuration. Instructions are described in the documentation for Merging Data.