Detailed Version Log Deephaven 1.20221001
Detailed Version Log: Deephaven v1.20221001
Patch | Details |
---|---|
402 | DH-18792: Config server deadlock (fishlib push) |
401 | DH-18792: Config server deadlock |
400 | DH-18723: Input Tables cannot paste more rows than number of visible rows |
399 | DH-18622: Fix controller issue for started-then-deleted PQs |
398 | DH-18345: Update USNYSE calendar with national day of mourning for Jimmy Carter |
397 | DH-18166: Avoid lock inversion in OneClickUtils (swing) |
396 | DH-17927: Backport DH-16434, automatic node being at the top of the list, to jackson |
395 | DH-18028: Fix ConnectorWrapper race conditions |
394 | Merge updates from 1.20211129.430
|
393 | DH-17995: Pull back filesystem validation in etcdctl.sh |
392 | DH-17990: Lock inversion deadlock in WorkerLeaseHandler |
391 | DH-17974: WouldMatch memo key is incorrect |
390 | DH-17952: Improve Merge DataIndexer consumeTable performance |
389 | Merge updates from 1.20211129.424
|
388 | DH-17717: Check for Connection in com.illumon.iris.db.util.config.TableInputHandler#getTableRaw |
387 | DH-17744: Remove setuptools.extern from legacy python |
386 | Merge updates from 1.20211129.423
|
385 | DH-17322: Restrict appendCentral by ACL group membership |
384 | DH-17408: pause tailer connections |
383 | DH-17467: Missed path on handling *-OLD directories |
382 | DH-16827: Parameterized Queries listen for OneClick events (swing) |
381 | DH-17451: Check diskspace before unpacking large tar files |
380 | DH-17353: Deprecate centos7, remove centos nightly tests DH-17378: Fix monit log file location on rocky/rhel OS |
379 | DH-17372: Fix a bug in internal capacities of UpdateBy |
378 | DH-17377: avoid location subscriptions in closeAndDeleteCentral |
377 | DH-16495: handle reference counts while processing pending request snapshots |
376 | DH-17317: Updates to jackson gen loggers test |
375 | DH-17291: initialize BasicTableEventHandlerFactory earlier |
374 | DH-17295: Make rhel8 nightly tests less flaky |
373 | DH-17273: Manual changes after forward-merge |
372 | Merge updates from 1.20211129.422
|
371 | DH-17221: AggDistinct previous values error |
370 | DH-17172: Controller Connection Memory Leak |
369 | DH-17162: Use dh-mirror for internal VM images |
368 | DH-14625: add release note |
367 | DH-14625: create an optional lenient IOJobImpl to avoid write queue overflow (improvement) |
366 | DH-14625: create an optional lenient IOJobImpl to avoid write queue overflow |
365 | DH-16604: Add controller memory stats to performance metrics |
364 | DH-17138: fix pseudo subscription errors |
363 | Changelog typo corrections. |
362 | DH-17072: Do not write temporary-state DH_ properties to cluster.cnf |
361 | DH-17026: Publish EngineTestUtils (backport of DH-15687) |
360 | DH-17058: Make pull_cnf disregard java version |
359 | DH-16884: Add configuration for default user table format to be parquet |
358 | DH-17048: Fix controller crash and shutdown issues |
357 | DH-17014: Make cluster.cnf preserve original source and prefer environment variable |
356 | DH-17031: Minor corrections and formatting for QA automation How-to |
355 | DH-16936: make recreating schemas watch more efficient |
354 | DH-16717: Add heap usage logging to web api, TDCP, DIS, LAS, controller, and configuration server |
353 | DH-17004: change closeAndDeleteCentral to clean up tdcp subscriptions |
352 | DH-17000: Correct improper test promotion in Jackson |
351 | DH-16888: Preserve original cluster.cnf when regenerating cluster.cnf w/ defaults |
350 | Merge updates from 1.20211129.417
|
349 | DH-16996: Forward merge of tests fixed in Bard to Jackson |
348 | DH-16992: Promoting Jackson level tests to RELEASED |
347 | DH-16979: Fix for CSV tests Jackson and later |
346 | DH-16663: remove cached data when there are no active subscriptions |
345 | DH-16934: Fix permissions check for writing workspace data |
344 | DH-16908: Fix dry run in iris_keygen.sh |
343 | DH-16851: Improve qa results setup docs |
342 | DH-16826: Select/Deselect All for OneClick Lists in Export dialog (swing) |
341 | DH-15247: Set DH_ETCD_IMPORT_NODE default value to the first config server |
340 | DH-16675: Account for worker overhead in dispatcher memory utilization |
339 | DH-16813: QA testing git update to Jackson |
338 | DH-16818: QA Testing System file relocation and documentation updates |
337 | DH-16072: Jackson Dec2023 test case updates for qa |
336 | DH-16480: Documentation and support for QA_Results system build |
335 | DH-16794: better handle export of nonexistent routing file |
334 | Merge updates from 1.20211129.413
|
333 | DH-16708: Improve import script on qa results |
322 | DH-16698: Update BHS images to fix a broken rhel8 test |
331 | DH-16752: Fix installer tests getting null clustername |
330 | DH-16605: Use grep before sudo sed to avoid root when migrating monit |
329 | DH-16406: Improve jackson nightly installer test debugability |
328 | DH-16718: Fix test cases based on CommonTestFunctions refactor |
327 | DH-16706: ColumnsToRowsTransform.columnsToRows fillChunk does not set output size |
326 | DH-16700: Ensure QA results setup is maintainable |
325 | Merge updates from 1.20211129.409
|
324 | DH-11512: handle '*-OLD' directories better |
323 | DH-16672: EmptyToNullStringRegionedColumnSource bypasses index narrowing in grouping |
322 | DH-16623: Unit test fix from .321 |
321 | DH-16623: Index and GroupingBuilder .hasGrouping() should only look at locations relevant to the desired index |
320 | DH-16624: ShiftedColumns Interacts with Time Parsing |
319 | DH-16628: whereIn/whereNotIn with Empty Set Tables can Fail |
318 | DH-16597: check for routing to export before opening output file |
317 | DH-16591: Fix reading Parquet files with Mixed dictionaries and Offset Indices |
316 | DH-16443: Add sudo -u DH_MONIT_USER for installer when checking if monitrc needs migration |
315 | DH-16408: Do not use yum on systems with dnf |
314 | DH-15523: Allow config_packager to run as irisadmin when irisadmin is monit user |
313 | DH-14156: improve merge query and dhctl feedback when tailer ports are disabled DH-14169: Fix message when purge fails |
312 | Merge updates from 1.20211129.406
|
311 | DH-16499: improve feedback in 'dhconfig routing export' when there is no routing file in etcd |
310 | DH-15729: Allow resources to be skipped in Test Automation |
309 | DH-16443: Make ubuntu de-rooting grep on monitrc before trying to sed the file |
308 | DH-16418: Fix DiskBackedDeferredGroupingProvider changing post-mutator "No groups found" to "No grouping exists" |
307 | DH-16382: Perform monit migration using systemd override.conf DH-16206: Remove duplicated gen-keys.sh script in jackson |
306 | DH-16401: Fix Groovy script defined classes imported with db.importClass() break internal formulas |
305 | Merge updates from 1.20211129.396
|
304 | DH-16309: EmptyToNullStringRegionedColumnSource should copy and wrap underlying provider by default |
303 | DH-16309: Fixed loss of grouping when SourceTable.MAP_EMPTY_STRINGS_TO_NULL == true |
302 | DH-16300: Test Automation: have minorversion flow to results summary |
301 | DH-16279: Add MessageListener example implementation to SBEStandAlone jar |
300 | DH-16262: Wrap calls from groovy to gsutil inside bash -ic |
299 | DH-16243: Configure high-cpu integration test box on j17 CI |
298 | DH-16128: Fix grouping propagation when inputs are filtered |
297 | Merge updates from 1.20211129.387
|
296 | DH-16131: update DH revision name map for QA results analysis query |
295 | DH-16087: Add HTTP security headers to Envoy configuration |
294 | DH-16192: Always set DH_ETCD_IMPORT_NODE to a single machine |
293 | DH-16181: Fixed MapCodec ignoring offset and length params |
292 | Merge updates from 1.20211129.383
|
291 | DH-15493: Enable version suffixes for DbInternal tables |
290 | Merge updates from 1.20211129.379
|
289 | DH-16098: update to test analysis query to remove duplicate data and add MinorVersion field |
288 | DH-16096: Better check for anonymous mysql users before we attempt to fix them |
287 | DH-16039: Reenable rhel9 installer test |
286 | DH-16096: Fix nightly installer test mysql error (anonymous user problem) DH-14113: Use irisrw instead of root when possible in dbacl_init.sh |
285 | DH-16074: update controller tool tests to sudo use consistent with client env |
284 | DH-15988: fix logging error |
283 | DH-15275: Add release-focused testcases to Jackson July-Dec 2023 |
282 | DH-16061: update controller_tool test for null pointer message |
281 | DH-16038: Disable flaky rhel9 installer test |
280 | Merge updates from 1.20211129.369
|
279 | DH-15964: Additional tweaks for base image creation |
278 | Merge updates from 1.20211129.368 |
277 | DH-15964: Add rhel8/9 base images |
276 | DH-16008: Dispatcher allows workers to miss TTL |
275 | Merge updates from 1.20211129.364
|
274 | Merge updates from 1.20211129.363
|
273 | DH-14989: Use self-signed "internal" PKI for nightly installer tests |
272 | Merge updates from 1.20211129.359
|
271 | DH-15641: Add Reset, close disconnected child panels |
270 | DH-15882: Pandas data frame view breaks when data frame is empty |
269 | DH-15861: Fix double-start of persistent queries |
268 | DH-15838: remove obsolete jvm args from csharp open-api client |
267 | Merge updates from 1.20211129.355
|
266 | DH-15827: ReadOnlyIndex should return refcount for tests. |
265 | DH-15827: UpdateBy incorrectly copies Index without clone |
264 | Merge updates from 1.20211129.354
|
263 | DH-15819: Fix ETCD ACL provider using shared message builders |
262 | DH-15586: Teach iris_keygen to pass -legacy flag when openssl version > 3.0 |
261 | DH-15672: Deephaven Launcher 9.07 - DeephavenUpdater honors command line URL over appbase in existing getdown.txt |
260 | DH-15737: More resilient etcd lease and kv error handling in the Dispatcher |
259 | Merge updates from 1.20211129.345
|
258 | DH-15739: Re-enable forward-merged unit tests |
257 | DH-15607: create tests to validate controller_tool |
256 | DH-15719: added tests for dhconfig:properties |
255 | DH-15697: Update Jackson jetcd to 0.7.5. Configure waitForReady and deadlines for etcd RPCs |
254 | DH-15586: Official support for RHEL9 in installer |
253 | DH-15677: generate-iris-keys and generate-iris-rsa should not overwrite existing files. |
252 | DH-15660: ShiftedColumns must end in Underscore |
251 | Add release note for DH-15606 |
250 | Merge updates from 1.20211129.343
|
249 | DH-15606: Envoy integration fails in environments where IPv6 DNS is enabled |
248 | DH-15626: Improve qa-results dashboard query |
247 | Merge updates from 1.20211129.342
|
246 | DH-15609: Fix JsTable leaking table handles |
245 | DH-15540: better support for loggers with generics |
244 | Merge updates from 1.20211129.341
|
243 | DH-15584: Create tests to validate generate_loggers script |
242 | DH-15592: Type of ShiftedColumn results in view are incorrect |
241 | Merge updates from 1.20211129.338
|
240 | DH-12084: officially support rhel8 DH-14983: Add DH_USE_EPEL flag to allow disabling epel repo |
239 | Merge updates from 1.20211129.337
|
238 | DH-15414: Only use fully qualified /usr/bin/systemctl to control monit, never use service monit |
237 | DH-15544: make NullLoggerImpl pool sizes configurable |
236 | DH-15513: print less of QueryScope in MergeData |
235 | Merge updates from 1.20211129.333
|
234 | DH-15524: add code path to lenient schema import |
233 | DH-15463: JdkInternals getUnsafe() doesn't work with ManifestClassPath jar (Windows IntelliJ) and Java 8 |
232 | Merge updates from 1.20211129.332
|
231 | DH-15470: Fix superusers unable to create some query types from Web UI |
230 | Merge updates from 1.20211129.328
|
229 | Merge updates from 1.20211129.327
|
228 | DH-15403: Reenable BinaryStoreWriter C# publishing |
227 | Merge updates from 1.20211129.325
|
226 | DH-15348: Allow admins to view script of query types they can't edit |
225 | DH-15294: Do not overwrite user configuration files when reinstalling deephaven |
224 | Merge updates from 1.20211129.323
|
223 | Merge updates from 1.20211129.318
|
222 | DH-15302: Add a stand-alone SBE Java in StandaloneJavaSbeClient.jar |
221 | Merge updates from 1.20211129.315
|
220 | DH-15306: GroupingBuilder should return empty grouping for empty input index |
219 | DH-14482: trim values in user and password config files |
218 | DH-15291: Remove parallelism bug in dh_install |
217 | DH-11758: Add installer tests for customer users + plugins |
216 | DH-15270: Use manually-recursive chown in some prepare_filesystem.sh calls |
215 | DH-5698: dhconfig support exporting single tables |
214 | DH-15219: Launcher 9.06 - correct error in prop file location |
213 | Fix release note typo. |
212 | Merge updates from 1.20211129.311
|
211 | Launcher 9.05
|
210 | DH-13649: Fix the etcd dispatcher user/config migration scripts. DH-13651: Make readonly etcd keys usable by dbquerygrp. |
209 | Merge updates from 1.20211129.310
|
208 | Merge updates from 1.20211129.306
|
207 | DH-15096: Produce better log output for null socket getAddress result |
206 | Merge updates from 1.20211129.305
|
205 | Merge updates from 1.20211129.304
|
204 | Merge updates from 1.20211129.300
|
203 | DH-15128: Update package-lock.json for jupyter-grid |
202 | DH-15075: Fix failing test introduced as part of DH-15022 |
201 | DH-15071: Fix Grouped AbstractColumnSource#match() breaking with empty input list. |
200 | DH-15022: Fixed java 8 compilation error introduced in previous version .199 |
199 | DH-15022: Add support for .zst (ZeeStandard) file compression |
198 | DH-15039: instance and workspace roots not correctly read from prop files |
197 | DH-14974: Widen Byte and Short jpy CallableWrapper Returns to Integer |
196 | DH-12299: Added Release notes for updated readCsv features introduced in DH-12299 |
195 | Merge updates from 1.20211129.293
|
194 | Correct merge error. |
193 | Merge updates from 1.20211129.291
|
192 | Deephaven Launcher 9.03
|
191 | Merge updates from 1.20211129.288
|
190 | DH-12662: add upgrade support for server_java_version |
189 | DH-14841: Check Sharing permissions from New Tab Screen |
188 | Merge updates from 1.20211129.286
|
187 | DH-14699: Fixed NPE on selecting Copy ProcessInfoId from the status bar context menu when worker is disconnected |
186 | DH-14873: Make TestPidFileUtil test more deterministic |
185 | DH-14841: Do not display user list when sharing a dashboard |
184 | Merge updates from 1.20211129.284
|
183 | DH-14878: Disable flaky test - slow update call |
182 | DH-14615: Update version of node/npm used by gradle plugin |
181 | DH-14842: Optionally Filter User and Group Lists for Web |
180 | DH-14708: Fix bug introduced earlier that failed to throw exception when pid file modification time was less than system uptime |
179 | DH-14708: Attempt to delete existing pid file when system uptime is less than file modification time |
178 | DH-14820: Prevent controller-connectivity hang in Swing telemetry |
177 | Merge updates from 1.20211129.283
|
176 | DH-14715: Do not return published Table in remote mode. |
175 | Merge updates from 1.20211129.282
|
174 | Release notes update. |
173 | DH-14729: Fix shared dashboards from deleting links |
172 | Create Launcher 9.02
|
171 | Merge updates from 1.20211129.281
|
170 | Create Launcher 9.01
|
169 | Merge updates from 1.20211129.280
|
168 | Update fishlib version to 25.20221001.006 to include:
|
167 | DH-14715: Convert Enterprise R to use Remote Groovy DH-14682: R integration needs a close method |
166 | Update Web UI to v0.13.12
|
165 | Merge updates from 1.20211129.279
|
164 | DH-14667: Fix file explorer selection when you have thousands of files |
163 | DH-14701: Preview checking should not coalesces tables |
162 | DH-14695: R integration is slow converting DateTimes and Booleans |
161 | Edits to Jackson release notes |
160 | DH-14687: Disable csharp builds until we can fix upstream apt repository issues (jackson+ changes) |
159 | Merge updates from 1.20211129.278
|
158 | Merge updates from 1.20211129.277
|
157 | DH-14669: Fix error handling in LogAggregatorService |
156 | DH-14668: Fix rare dispatcher worker startup race condition DH-14673: Fix dispatcher assignment permit loss |
155 | Merge updates from 1.20211129.276
|
154 | DH-14654: Update persistentQueryStatusMonitor to use ProcessInfoId |
153 | DH-14225: Don't download MySql connector when etcd ACLs is enabled |
152 | DH-14626: Time Filter Mode For SyncTableFilter |
151 | Merge updates from 1.20211129.274
|
150 | DH-10286: Use a 1MB buffer size for Parquet compression and decompression |
149 | Merge updates from 1.20211129.273
|
148 | DH-12141: Fix eslint error from previous Pandas fix |
147 | Merge updates from 1.20211129.271
|
146 | DH-12141: Fix Pandas dataframes not being opened in Web UI |
145 | DH-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 |
144 | DH-14585: Reduce concurrent test startup |
143 | DH-14278: Combining skipLines and skipFooterLines in a CSV import results in UOE |
142 | DH-14543: Use SerialTest category for TestParquetTools |
141 | Merge updates from 1.20211129.270
|
140 | Merge updates from 1.20211129.269
|
139 | DH-14572: Writing Parquet with empty strings can lead to BufferOverflow |
138 | Merge updates from 1.20211129.268
|
137 | DH-14543: Fix TestParquetTools OOME |
136 | Merge updates from 1.20211129.267
|
135 | DH-13694: Add Option for Suffix to IntradayLoggerBuilder |
134 | DH-14524: git ScriptRepository Log can be misleading |
133 | DH-14510: Allow ctrl-v paste to Excel |
132 | DH-14495: DispatcherClient should send state changes immediately, not wait a full refresh cycle |
131 | Merge updates from 1.20211129.266
|
130 | Introduce new Deephaven Launcher 9.0
|
129 | DH-14460: Allow disabling xDS envoy routes for COMM/swing via property |
128 | DH-14427: Web api server java proc hang on first login |
127 | DH-14410: Unit test fix for .126 |
126 | DH-14410: Fixed ParameterizedQueryClientImpl#fetchResult() not associating deflated viewport with root table causing a resource leak |
125 | DH-14288: WorkerTtlCheckJob uses wrong parameter, missing lock |
124 | DH-14409: Backported Parquet compression improvements. |
123 | DH-14407: Disable Swing remote-telemetry by default |
122 | DH-14187: Add Swing telemetry |
121 | DH-14316: Bumping dhc csv library to pick up a deadlock fix |
120 | DH-14199: Web does not send Param Query Apply as a concurrent query |
119 | Merge updates from 1.20211129.260
|
118 | DH-14291: Parallelize Parquet merge across partitions |
117 | Merge compilation fix. |
116 | Merge updates from 1.20211129.259
|
115 | Merge updates from 1.20211129.258
|
114 | DH-14277: CSV (and other?) builders are missing skip footer lines option |
113 | DH-12241: IrisConsole fails to lock the workspace in newer JREs |
112 | Merge updates from 1.20211129.256
|
111 | DH-14250: change password dialog must honor envoy ports |
110 | DH-14241: StringContainsFilter with any is Unacceptably Slow |
109 | Merge updates from 1.20211129.255
|
108 | DH-14146: Fixed bug that introduced intradayType for strings when data type is present |
107 | DH-14146: Fixed Schema Editor to allow renaming a column for LoggerListener |
106 | DH-14199: Parameterized Queries now use the Shared lock instead of exclusive. Has a new option to use no lock. |
105 | DH-14197: Fix controller logging issue |
104 | DH-14033: Daily backup script |
103 | DH-14136: Allow null Kafka record values |
102 | Merge updates from 1.20211129.253
|
101 | DH-14146: Fixed Schema Editor to allow renaming a column |
100 | DH-14039, DH-13575: add webapi cert to truststore-iris.p12 to support self-signed and internal PKI certificates |
099 | Merge updates from 1.20211129.251
|
098 | DH-14074: BooleanSingleValueSource missing Index.NULL_KEY Check |
097 | DH-12469: Kafka resumeFrom should fail when previous checkpoint does not exist |
096 | Merge updates from 1.20211129.248
|
095 | DH-14025: Reduce permissions used to create auth-user symlinks |
094 | DH-13961: Update kafka SchemaDiscovery unit-tests to expect a partitioning-column DH-13930: Update unit-test to initialize filter |
093 | DH-14015: Fixed TableBuilder not resetting row count on reset() |
092 | DH-13961: Require partitioning-column in kafka SchemaDiscovery builder |
091 | DH-13930: Add release notes for StaticGroupFilterGenerator |
090 | Merge updates from 1.20211129.247, Changelog Formatting
|
089 | DH-13930: Added StaticGroupFilterGenerator class |
088 | Merge updates from 1.20211129.246
|
087 | Merge updates from 1.20211129.245
|
086 | DH-13953: Add JVM arguments for java 17. Fixed a couple of arrow bugs |
085 | DH-13949: Make sure DeferredLocations do not undefer when they are marked. |
084 | DH-13938: Fix auth server reload tool script path |
083 | DH-13942: Added Java version check to irisdb.R for R integration compatibility with Java 17 |
082 | Merge updates from 1.20211129.244
|
081 | DH-13929 Fix JavaDoc for MergeData merge method |
080 | Merge updates from 1.20211129.243
|
079 | Update release note formatting. |
078 | DH-12458: Apache Arrow support |
077 | DH-13881: Fix TableTest unit tests |
076 | DH-13871: correct tcdp host setting back to localhost (add release note) |
075 | DH-13867: stop web-api from connecting to dispatcher via envoy DH-13871: correct tcdp host setting back to localhost |
074 | DH-13881: DbArray toArray should use fillChunk |
073 | DH-13882: Change log level for class push message to INFO |
072 | DH-13837: ParameterSession should not manage DynamicNodes that arent live |
071 | DH-13873: ParquetFileWriter should put Parquet magic string at the beginning of files |
070 | DH-13667: Re-enable unit tests that were merged forward |
069 | Merge updates from 1.20211129.241
|
068 | DH-13846: Python Auto-Provision Scripts Require Sudo |
067 | DH-13845: Fix failing integration tests in java 11/13 |
066 | Merge updates from 1.20211129.238
|
065 | Merge updates from 1.20211129.237
|
064 | Update Web UI to v0.13.10
|
063 | DH-12971: Fix focus on first invalid input in PPQ submit |
062 | DH-13800: Fix controller state synchronization |
061 | DH-13770: Fix QueryMonitor selection changing when scrolled out of the viewport |
060 | DH-13786: Update commons text to 1.10.0 |
059 | DH-13782: Edit vulnerability scan configuration |
058 | Revert .057. |
057 | DH-13513: increase default dsa key size to 2048 and default signature algorithms to SHA256withDSA |
056 | DH-13665: Fixed --alt-cert-dir handling for iris_keygen |
055 | Merge updates from 1.20211129.235
|
054 | DH-13728: Fix iris-defaults.prop hardcoded irisadmin in set_iris_endpoints_prop.sh |
053 | Merge updates from 1.20211129.234
|
052 | DH-13695: Improved query validation and controller state handling |
051 | DH-13723: Fix HtmlTable incorrectly formats bg color. |
050 | Merge updates from 1.20211129.232
|
049 | Release note update. |
048 | Release note update. |
047 | DH-13645: correct grpc schema error handling |
046 | DH-13665: Make iris_keygen more friendly for containerized installations |
045 | DH-13702: Correct log messages with missing endl() |
044 | DH-13695: Improved error handling when exporting persistent queries |
043 | DH-13700: Stop Building ICE Images in Jenkins |
042 | Merge updates from 1.20211129.230
|
041 | DH-13693: etcd client creation migration scripts should use return instead of continue |
040 | DH-13529: Catch makeModelParam exceptions, exclude empty params on Submit |
039 | Update Web UI to v0.13.9
|
038 | Merge updates from 1.20211129.226
|
037 | Fix missing segment from ClusterMap in merge. |
036 | Merge updates from 1.20211129.225
|
035 | DH-11983: Fix linting issues for export/import queries |
034 | Merge updates from 1.20211129.224
|
033 | DH-13380: Add support for Envoy configuration via installer flags |
032 | DH-12016: Centered HtmlTable's table tooltip |
031 | DH-12016: HtmlTable respects formatting |
030 | DH-13211: Make sure to always include etcd acl keys in config_packager tars |
029 | DH-13557: Only enable assertions in dev builds of JS API |
028 | Merge updates from 1.20211129.223
|
027 | DH-13567: fishlib Log current link fails on v9fs |
026 | DH-13597: Provide default query description for remote processing requests |
025 | DH-11983: Web - Export/Import query functionality in Query Monitor |
024 | DH-12581: Web - expand first row of rollups on initial load |
023 | Merge updates from 1.20211129.222
|
022 | DH-13495: Fresh install of Jackson doesn't grant correct membership for the dbmerge user |
021 | DH-13514: RQD Jetty SSL Paremter Ignored when RQD WebServer is Disabled |
020 | DH-13517: Kafka Json Adapter fails without autoValueMapping |
019 | DH-13494: dbacl_init uses installed sql files instead of copies from previous version |
018 | Update Web UI to v0.13.8
|
017 | DH-13144: Improve worker termination handling, mainly for k8s workers |
016 | DH-13383: Installer does not have support for Java 17 - fix wrong centos8 reference |
015 | Merge updates from 1.20211129.218
|
014 | DH-13395: Improve version log generation. |
013 | DH-13383: Add installer support for Java 17. Switch to OpenJDK for Java 1.8 and 11 on CentOS. |
012 | DH-13421: Fix ChartPanel not functioning as a Linker target |
011 | Merge updates from 1.20211129.215
|
010 | DH-13178: Bulk enable/disable queries |
009 | DH-11253: Update Query Monitor dependent options on dependent/temporary array changes |
008 | DH-13398: Fix IrisDbUserMod handling of group membership with overwriteExisting |
007 | DH-13395: Format Developer Friendly Change Log into Margaret Friendly Version Log for deephaven.io |
006 | DH-12971: Focus first invalid input on parameterized query submit |
005 | DH-12970: TableInput support in ParameterizedQueryPanel |
004 | DH-12965: Date and DateTime input support in ParameterizedQueryPanel |
003 | DH-12969: EditableItemList support in ParameterizedQueryPanel |
002 | DH-13378: Bad ACL for WorkspaceData Username Filter in new installs |
001 | Initial release creation |
Detailed Release Candidate Version Log: Deephaven v1.20210805beta
Patch | Details |
---|---|
332 | Merge updates from 1.20211129.210
|
331 | DH-13336: Prefer using lsb functions over init.d functions |
330 | DH-13334: De-parallelize the running of dh_keygen.sh and etcd_configure.sh to prevent a race condition |
329 | DH-13329: Suppress superfluous python warnings |
328 | DH-13333: Remove test workaround |
327 | DH-13277: Updates needed to K8SWorkerControl, iris, cus, etc to run Jackson in a kubernetes cluster |
326 | DH-13326: Align tests for command line message improvements |
325 | Merge updates from 1.20211129.209
|
324 | DH-12882: Added support for either of -replace_existing or -overwrite_existing with -import_all_acls |
323 | DH-12725: Disable pipefail so we don't fail to remove deephaven-jpy |
322 | Merge updates from 1.20211129.208
|
321 | Update Web UI to v0.13.7
|
320 | DH-13313: Dispatcher Failing to Renew Lease Leaves it in a Zombie State |
319 | DH-13294: Allow etcd ACL export to retrieve passwords |
318 | DH-13284: Corrected key matching for table column ACLs using etcd |
317 | DH-13119: aggressively close permission filter providers |
316 | Merge updates from 1.20211129.203
|
315 | DH-13191: Add table and column name to the Parameterized Query API for DeephavenTable parameters |
314 | Merge updates from 1.20211129.198
|
313 | DH-13228: migrate_acls script is not migrating local (passwd table) users |
312 | DH-13193: Docker worker impl environment variable updates |
311 | Merge updates from 1.20211129.197
|
310 | DH-13192: Upgrade fishlib version to handle Swing console auth in containerized environments |
309 | DH-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 |
308 | DH-13059: Use node name for internal partition |
307 | DH-13151: Fix TableBuilder regression |
306 | DH-13126: Add missing short time zone codes from DbTimeZone to JsTimeZone |
305 | DH-13131: Fix broken sphinx build from the JPY changes |
304 | DH-12725: Remove deephaven-jpy in favor of community-built JPY |
303 | Merge updates from 1.20211129.193
|
302 | DH-13093: Remove set() operations from DataColumn |
301 | DH-13064: Ensure SimpleServerSelectionProvider correctly uses max per-worker-heap property |
300 | DH-13023: RemoteQueryDispatcher.etcdLeaseTtlSeconds property name conflict |
299 | Merge updates from 1.20211129.189
|
298 | DH-11525: Fix failing unit tests from previous DH-11525 change |
297 | DH-12039: Add python 3.9, drop python 3.6 |
296 | DH-11525: Separate fetching servers for console from servers for PQs |
295 | DH-12973: Enhancements to run-as section of AclEditor |
294 | DH-12890, DH-12981, DH-13017: remove locations via TableDataService after deleting via DIS, prevent timeout when rescanning |
293 | DH-12946: Add JS API for query configuration types |
292 | DH-12891, DH-12874: checkpoint validation caught a coding error - fixed |
291 | DH-12991: Fix gradle intradayLoggerFactory task |
290 | Merge updates from 1.20211129.186
|
289 | DH-12984: Fix proto:build gradle target (broken after gradle 7 changes). |
288 | DH-12975: Prevent query-server crash when using run-as |
287 | DH-12967: Fix DeephavenCombined pom (change implementation to compile) |
286 | DH-11394: Automated Query Server Selection in Web UI |
285 | Merge updates from 1.20211129.182
|
284 | DH-12583: Fix unit tests for Parameterized Query UI |
283 | DH-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 |
282 | DH-12799: Feature for table fetches in parameterized queries within user context |
281 | DH-12583: Parameterized Query UI |
280 | Update Web UI to v0.13.5
|
279 | Merge updates from 1.20211129.180
|
278 | DH-9164: Display "-" for websocket and worker ports instead of "-1" in Query Monitor |
277 | DH-12923: Fix shadowed build broken under gradle7 |
276 | DH-12907: Fix New Tab Screen when shortcuts list is empty |
275 | Merge updates from 1.20211129.179
|
274 | DH-12636: turn off xtrace in installation scripts around password generation |
273 | DH-12882, DH-12883, DH-12512, DH-12513: Various fixes for iris_db_user_mod |
272 | DH-12875: fix dhctl command line parsing errors |
271 | DH-12887: Fix Java 9+ garbage collection logging options |
270 | Update Web UI to v0.13.4
|
269 | DH-12881: Promptly Terminate Workers on Dispatcher Shutdown |
268 | DH-11244: command to force DIS to see new intraday partitions - correct error in command line parsing |
267 | DH-12476: Boolean TestSources Don't Actually Handle getBoolean |
266 | DH-12826: remove inappropriate static property check |
265 | Merge updates from 1.20211129.173
|
264 | DH-5720: Web UI allow creation of batch and live merge queries |
263 | DH-12821: Avoid NPE in un-committed Kafka broker topics |
262 | DH-12806: Add UpdateBy jsons to repo, regenerate python |
261 | DH-12398: Apply workaround jvm args to tests on java 17 |
260 | Fix merge error. |
259 | Merge updates from 1.20211129.171
|
258 | Merge updates from 1.20211129.169
|
257 | DH-12358: JS API for query export/import |
256 | DH-12729: Make Publishing.groovy handle jdk17, and throw if not jdk8/11/13/17 |
255 | Merge updates from 1.20211129.160
|
254 | Merge updates from 1.20211129.159
|
253 | Merge updates from 1.20211129.158
|
252 | DH-9185: Better feedback when opening dashboard tables without access permission |
251 | DH-12726: Fix python generation errors |
250 | Merge updates from 1.20211129.157
|
249 | DH-12710: Re-add error icon after GoldenLayout updates the tab |
248 | Merge updates from 1.20211129.152
|
247 | Merge updates from 1.20211129.151
|
246 | Merge updates from 1.20211129.150
|
245 | DH-12711: Don't show the number of rows in the failed table panel tooltip |
244 | DH-12689: Disable unsupported widgets in the Panels menu |
243 | DH-12697: Fix stale metadata when copying items in the File Explorer |
242 | DH-5720: Web show Script tab for all queries with scripts |
241 | DH-12698: JS Range API Casts to an Int |
240 | Fix import error with .239 merge |
239 | Merge updates from 1.20211129.149
|
238 | DH-12623: Add export/import acl tables capability |
237 | DH-12685: Commit checkpointed offsets to Kafka broker |
236 | DH-12682: Replace react-spring with react-spring/web |
235 | DH-11779: SingleClickItemList selection based on ids, multi selection fix |
234 | Merge updates from 1.20211129.147
|
233 | DH-12679: Add basic DHC worker support. |
232 | DH-12678: Dispatcher should correctly indicate total heap |
231 | DH-12674: Fix publishing failure in jackson |
230 | DH-12675: Fix typo in ConstraintType definition |
229 | DH-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 |
228 | Merge updates from 1.20211129.146
|
227 | DH-4071: commands to enable DIS and TDCP to notice removed/added/resized table locations |
226 | DH-12398: Get build working in Java 17, fix IllegalAccessException in JdkInternalsLoader |
225 | DH-12556: Cannot delete rows with primitive keys from InputTable |
224 | Merge updates from 1.20211129.143
|
223 | Merge updates from 1.20211129.141
|
222 | DH-12568: Add protobuf/kafka ingester |
221 | DH-12577: Explicitly check for null environment variables. |
220 | DH-12654: Fix controller deadlock getting dispatcher usage DH-12659: SimpleServerSelectionProvider should disallow configurations with invalid groups |
219 | DH-11525: Web work for PQ-only servers |
218 | DH-12657: Fix npm install on latest version of npm |
217 | DH-12577: Fix race condition in Dispatcher worker monitor, improve logging. |
216 | DH-12442: Write encoding metadata with Parquet files to enable symbol table use |
215 | Update Web UI to v0.13.2
|
214 | DH-12577: Use etcd bootstrap properties if present. |
213 | DH-12639: Test worker using golang |
212 | DH-12403: byExternal Memory Usage Improvements |
211 | DH-12577: Bundle dispatcher etcd key into auth package; add migration scripts |
210 | Fix unused imports in AclObject and AclConstant breaking > Java 8 build |
209 | DH-12577: Replace Dispatcher Comm Protocol With etcd and HTTP |
208 | DH-12571: Enable reading of mixed symbol table and non symbol table columns |
207 | DH-12626: Disabled Kubernetes/ICE container builds for JDK 8 |
206 | Update Web UI to v0.13.0
|
205 | DH-12514: Add support for etcd instead of MySql/mariadb for ACL data |
204 | DH-12621: Update OSHI shadow lib to support M1 Macs |
203 | DH-12158: Implemented general ticking support for updateBy |
202 | DH-12511: Fix clear column filter error with aggregations |
201 | DH-12615: Include auth-user directory in config_packager's auth-creation |
200 | Merge updates from 1.20211129.138
|
199 | DH-12125: JS API for Parameterized Queries |
198 | DH-12601, DH-3174: Split BinaryStore into Writer and Reader Modules, Remove ILF LastByIntradayLoggerFactory |
197 | Merge updates from 1.20211129.136
|
196 | DH-12542: Add ProcessInfoId to Web Summary |
195 | DH-12521: Fix null appearing as black in Query Monitor |
194 | Merge updates from 1.20211129.134
|
193 | DH-12308: dhconfig logging improvements |
192 | DH-12501: add support for resource items in clean_targets(_resource) during Launcher file synchronization |
191 | Fix changelog digit transposition for DH-12573. |
190 | DH-12555: Make Epsilon (for 0-rounding) configurable in swing |
189 | DH-10241: Grid panels were not persisting isStuckToBottom state |
188 | DH-12573: QueryMonitor broken for non-superusers, call failed on server |
187 | Update Web UI to v0.12.0 |
186 | DH-12473: Allow copy/paste of null or empty values in InputTable |
185 | Merge updates from 1.20211129.129
|
184 | DH-12233: Save rollups, aggregations, selectDistinct in filter sets |
183 | DH-12165: Improve NewTabScreen performance |
182 | Update Web UI to v0.11.9
|
181 | DH-12547: Fix syntax error in config_packer.sh |
180 | Merge updates from 1.20211129.126
|
179 | DH-10222-1: Fix stale shortcut overrides when switching users without a page refresh |
178 | DH-12525: Fix assorted tests |
177 | Update Web UI to v0.11.8
|
176 | Merge updates from 1.20211129.123
|
175 | DH-12489: Refactor tests to eliminate proprietary dependency. |
174 | DH-12282: add DH_SHARED_QUERY_GROUP/dbquerygrp and change web-key permissions |
173 | DH-12507: Fix Incorrect authorization when starting a worker via Web IDE |
172 | DH-12498: Swap vsIssues icon for vsWarning |
171 | DH-11609: Improve error message when allocating console from Web |
170 | DH-12495: Fix FileExplorer toolbar height |
169 | DH-12424: Fix PropType warning on SharedDashboardUpdateListener |
168 | DH-12487: Fix NPE when reloading workspace with oneClick plots |
167 | Merge updates from 1.20211129.115
|
166 | DH-11004: Controller Multi-PQ Action Provides No Feedback After First PQ |
165 | DH-12166: Fix linter issue with truncate numbers with pound |
164 | DH-12166: Truncate numbers with pound instead of ellipsis |
163 | DH-11370: correct NPE in audit logging |
162 | Update Web UI to v0.11.4
|
161 | DH-12462: Delete tests that fail sometimes in :Plot:test |
160 | DH-12299: Replace readCsv apache csv parser with DHC fast csv parser |
159 | Merge updates from 1.20211129.109
|
158 | DH-12451: correct dispatcher websocket-enabled setting when envoy is not enabled |
157 | DH-11244: correct unit test missed in .153 |
156 | Merge updates from 1.20211129.101
|
155 | DH-12392: Fix BasicModal PropType error |
154 | Merge updates from 1.20211129.094
|
153 | DH-11244: command to force DIS to see new intraday partitions |
152 | Revert .151 |
151 | Update Web UI to v0.11.4
|
150 | Merge updates from 1.20211129.088
|
149 | DH-12161: improve envoy configuration feedback |
148 | DH-12377: Fix Jackson upgrade failure due to new required property |
147 | Merge updates from 1.20211129.084
|
146 | DH-12328: Uplift MySQL dependencies |
145 | Merge updates from 1.20211129.083
|
144 | Merge updates from 1.20211129.082
|
143 | DH-12339: improved unit-test coverage for configuration-defined default column-formats |
142 | DH-12339: Allow configuration-defined default column-formats |
141 | Fix some unit tests .140 broke |
140 | Merge updates from 1.20211129.080
|
139 | DH-12240: Reset FileList selection on delete |
138 | Merge updates from 1.20211129.079
|
137 | DH-12087: Allow better handling when disconnected web UI |
136 | DH-9276: ConsolePanel should remove panel from tracked itemIds when panel is closed |
135 | DH-12340: Remove dependency on MXJ library which is no longer maintained. |
134 | DH-12337: Unable to create a chart using Chart Builder |
133 | Update Web UI to v0.11.2
|
132 | DH-12322: Exclude test configs in default vulnerability scan, update dependencies. |
131 | Merge updates from 1.20211129.069
|
130 | Merge updates from 1.20211129.068
|
129 | DH-12150: Improved error message for improper sudo privileges |
128 | DH-12305: Add ProcessInfoId to the Query Config panel in Swing console |
127 | DH-12310: SingleValue ColumnSource get() Does not Properly Handle Index.NULL_KEY |
126 | DH-12307: Fix broken LasSpammer integration test |
125 | Merge updates from 1.20211129.067
|
124 | DH-10161 Support query by ProcessInfoId for performance overview queries |
123 | DH-12273 FormulaArrayAccess changes for where clause |
122 | Merge updates from 1.20211129.066
|
121 | Merge updates from 1.20211129.063
|
120 | DH-12279: Remove abandoned calendars |
119 | Fix javadoc escape sequences. |
118 | DH-12150: Allow RemoteQueryDispatcher to spawn workers as different system-users |
117 | DH-12148: Formula Constant Offset Array Fields could be Detected and Optimized |
116 | DH-12254: remove NettyServerHandler debug messages |
115 | Merge updates from 1.20211129.058
|
114 | DH-9064: truncate and tooltip text overflow in pq name, pq list and file-explorer |
113 | DH-12259: Ignore onRunning state when subscription already closed |
112 | DH-12261: Fix being unable to open table from console |
111 | Update Web UI to v0.11.1
|
110 | DH-12202: Fix race conditions for ACL Editor launch failure |
109 | DH-12093: Update to latest fishlib version |
108 | DH-12195: Refactor DaemonThreadFactory from DB to Util for reuse |
107 | Merge updates from 1.20211129.055
|
106 | DH-11189: Show number of rows in widget panel tooltips |
105 | DH-12185: Dispatcher hang when worker startup hangs |
104 | Merge updates from 1.20211129.054
|
103 | Fix bad reversion of Kafka fuzzy matching in .096 of .092. |
102 | DH-12220 Add support for NumberFormat of BigDecimal and BigInteger in the web client |
101 | DH-12116: sort dhconfig list output, DH-12117: disallow removeNamespace on non-empty namespaces |
100 | Update Web UI to v0.9.3
|
099 | DH-12212: Fix undefined message in the FileExplorer error dialog |
098 | DH-12174: Fix QueryMonitor crash when Use Git source checkbox is checked |
097 | DH-5877: Add processInfoId to uniquely identify workers in the AuditEventLog, ProcessEventLog, and PersistentQueryStateLog |
096 | DH-12201: Add BooleanSingleValueSource to support boolean value Constant formulas |
095 | DH-12206: Handle behavior change in Avro lib after version update |
094 | Merge updates from 1.20211129.049
|
093 | DH-12145: remove deprecated class RemoteDatabase:GetTable DH-12179: remove BinaryRowSetter.getValue |
092 | Merge updates from 1.20211129.047
|
091 | DH-11933: Constant Value Formulas should use a SingleValueColumnSource |
090 | DH-11370: dhctl logging improvements DH-11373: dhctl usability improvements |
089 | DH-12164: Use gray warning icons for disconnected panels |
088 | Merge updates from 1.20211129.036
|
087 | DH-9050: Show warning icon on failed table panels |
086 | DH-11856 Add --debug or similar to iris script so xtrace can be enabled when calling it |
085 | DH-10222: Make keyboard shortcuts user customizable |
084 | DH-12098 add layoutHints support for setSearchBarAccess |
083 | DH-12143: Remove some Dead Aggregation Code |
082 | DH-12121: Upgrade dependencies |
081 | DH-11931: Update multiViewPivotWidget to use MultiJoin |
080 | DH-12086: Fix Send to Console |
079 | DH-9531: Remove unused Scala Script Session |
078 | Merge updates from 1.20211129.029
|
077 | DH-12094: Upgrade grpc, protobuf and netty versions |
076 | DH-11867: Change JS property name to showSearch |
075 | DH-12085: Update (mostly) shadowed dependencies and suppress erroneous reported vulnerabilities |
074 | Update Web UI to v0.9.0 |
073 | Merge updates from 1.20211129.022
|
072 | DH-12076: Update dependency versions. |
071 | DH-12072: Add vulnerability scan task for dependencies |
070 | DH-11917: add ui.search.show prop to ServerConfigValues |
069 | DH-10183: More unnecessary project dependency reduction |
068 | Merge updates from 1.20211129.012
|
067 | Revert .066 |
066 | Accidental Squash Merge |
065 | DH-10183: Small subproject dependency change related to 0.63 |
064 | DH-11600: Export UI and server versions to logs |
063 | DH-10183: Factor test utils out of DB to new EngineTestUtils subproject |
062 | Update Web UI to v0.8.1 |
061 | Update Web UI to v0.8.0
|
060 | DH-12026: Fix Controller/PQ Error Updating From Bard |
059 | Update web UI to v0.7.2
|
058 | DH-12010: Add query status and ability to restart to panels menu |
057 | DH-5928: Clean up wrapping on console connection screen |
056 | DH-12014: Fix GroupingBuilder not reinterpreting types when loading from metadata |
055 | DH-11964: Improve and refactor test ColumnSources and data generation |
054 | DH-11949: Use the correct default JVM profile from the server |
053 | Revert bad commits. |
052 | Merge updates from 1.20211129.006
|
051 | Merge updates from 1.20211129.005
|
050 | DH-11979: Fix panelState init in QueryMonitor |
049 | DH-9282: Fix send to active notebook not sending to PQ Editors |
048 | Merge updates from 1.20211129.004
|
047 | Merge updates from 1.20211129.003
|
046 | DH-11937: Throw an error if multiple formats of same type set |
045 | DH-12003: update support docs link |
044 | DH-11786: Cursor inconsistent between dragging dashboard and dragging panel |
043 | DH-12001: Add missing forwardRef on QueryEditorPanel |
042 | DH-12000: Added Chunked Download example |
041 | DH-11998: Update icon for new tab screen sorting |
040 | DH-11993: Fix version bump script for zero padded versions |
039 | DH-11903: Add all GWT time zones to JS API |
038 | DH-11980: Tweak Unit Tests to Reduce Runtimes |
037 | Merge updates from 1.20211129.001 (release creation) |
036 | Merge updates from 1.20210201.238beta
|
035 | DH-11965: Make currentTime() consistent with DBDateTime.now() and return micros. |
034 | DH-11946: TickSuppressorTest chunk tracking. |
033 | Merge updates from 1.20210201.233beta
|
032 | Merge updates from 1.20210201.230beta
|
031 | Fix Javadoc paragraph tag. |
030 | DH-11935: ModifiedColumnSet incorrectly propagates ALL to ALL |
029 | DH-11267: Dry run for persistent query controller import tool |
028 | DH-11530: PQs that fail due to execution timeouts should more clearly report that they were killed due to timeout |
027 | Merge updates from 1.20210201.217beta
|
026 | Merge updates from 1.20210201.208beta
|
025 | Merge updates from 1.20210201.196beta
|
024 | Merge updates from 1.20210201.191beta
|
023 | Merge updates from 1.20210201.190beta
|
022 | DH-11489: IntradayLoggerFactory shouldn't write listener classes |
021 | Merge updates from 1.20210201.187beta
|
020 | Merge updates from 1.20210201.184beta
|
019 | Merge updates from 1.20210201.182beta
|
017 | DH-11074: Remove ChunkChunk and associated unused code. |
016 | DH-11625: WouldMatch IndexWrapperColumnSource should Override match |
015 | Merge updates from 1.20210201.177beta
|
014 | DH-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 |
013 | DH-11598: Javadoc Build Issues |
012 | Merge updates from 1.20210201.171beta
|
011 | Merge updates from 1.20210201.171beta
|
010 | Merge updates from 1.20210201.171beta
|
009 | Merge updates from 1.20210201.166beta
|
008 | DH-11497: Port Add Only Sorted First and Sorted Last Operators from OSS |
007 | DH-10150: Provide mechanism for PQ-only query servers |
006 | DH-11118: Add support for automated query server selection DH-11408: Remove Dispatcher's Interactive Worker Logic |
005 | Merge updates from 1.20210201.162beta
|
004 | Merge updates from 1.20210201.161beta
|
003 | Merge updates from 1.20210201.158beta
|
002 | DH-11169: Engine updates to utilize groupings as table. Major refactor of Grouping |
001 | Initial 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.
Property | Default | Description |
---|---|---|
DataContent.userPoolCapacity | 128 | The 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.user | 256 * 1024 | The size in bytes of the buffers used to read data for User table locations. |
DataContent.disableUserPool | false | If 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.
Property | Default | Description |
---|---|---|
DataContent.producersUseDirectBuffers | true | If true, the Tailer will use direct memory for its data buffers. |
DataContent.consumersUseDirectBuffers | true | Existing property. If true, the Data Import Server will use direct memory for its data buffers. |
BinaryStoreMaxEntrySize | 1024 * 1024 | Existing property. Sets the maximum size in bytes for a single data row in a binary log file. |
DataContent.producerBufferSize | 2 * BinaryStoreMaxEntrySize + 2 * Integer.BYTES | The size in bytes of buffers the tailer will allocate. |
DataContent.consumerBufferSize | 2 * producerBufferSize | The 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.
Property | Default | Description |
---|---|---|
IrisLogCreator.initialBufferSize | 1024 | The initial size of each data buffer. Buffers may be reallocated to larger sizes as required. |
IrisLogCreator.bufferPoolCapacity | 1024 | The starting (and minimum) number of buffers in the buffer pool. |
IrisLogCreator.entryPoolCapacity | 32768 | The initial (and minimum) size of the LogEntry pool. |
IrisLogCreator.timeZone | America/New_York | The 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 isLOGICAL_DNS
. If there is a scenario where DNS should be checked on each connection to an endpoint, this can be changed toSTRICT_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 isAUTO
. In environments where IPv6 is enabled theAUTO
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:
-
add an entry to the
iris-environment.prop
properties file ofenvoy.DnsFamily=V4_ONLY
-
edit the
envoy3.yaml
(or whichever configuration file Envoy is using) and adddns_lookup_family=V4_ONLY
to thexds_service
section:static_resources: clusters: - name: xds_service connect_timeout: 0.25s type: STRICT_DNS dns_lookup_family: V4_ONLY
-
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
-
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.
-
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
. -
Columns populated wholly with only single characters will be identified as Character columns instead of String columns.
-
Additional date time formats are automatically converted to
DBDateTime
columns. Previously, these formats were imported asString
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 asDestination
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
fordbSetter
attribute. This indicates that the column is not present in the table. Additionally, the attributeintradayType
should be set to the appropriate dataType. - Destination: A value of
Source
fordbSetter
to identify its input source. A valuenone
forintradayType
means it is not present in the log file, and cannot be used as part of adbSetter
.
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. TheGroupFilterGenerator
, 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 fortls.crt
andtls.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.