Releases: deephaven/deephaven-core
v0.9.0
What's Changed
- Move
dephaven.learn
RowSet generation to use a builder. by @chipkent in #1654 - Unify prop files for builds and production by @niloc132 in #1752
- Create a new array rather than slicing a typedarray to support nulls by @niloc132 in #1794
- Do not use the "week year" when year is expected by @niloc132 in #1798
- Port Parallel Select Implementation from Deephaven Enterprise. by @cpwright in #1749
- Replace Docker references from grpc-api to server by @devinrsmith in #1795
- Backport bench tweaks for RowSetGetFindBench and gradle setup for Benchmarks. by @jcferretti in #1797
- Fix redpanda docker-compose.yml related files by @jcferretti in #1801
- Fix remaining references to 'grpc-api'. Add "connect-check" java-client-session-examples command by @devinrsmith in #1802
- Refactored away TableTools module, fixes #1553 by @jmao-denver in #1631
- Added AggFormula in io.deephaven.api.agg.Aggregation, fixes #1699 by @jmao-denver in #1813
- Use the same version of barrage in all parts of the project by @niloc132 in #1799
- Support unions with null in Avro nested record traversals; BigDecimals via ByteBuffer. by @jcferretti in #1814
- Add commented out debugging settings to docker-compose-common, to ease out turning debugging on. by @jcferretti in #1811
- New approach to CSV reading by @kosak in #1629
- Raise the gRPC max payload limit to 100mb by @niloc132 in #1817
- Flat Array Sources for Static Select, Parquet Cleanups by @cpwright in #1793
- Fix chunk leak in ReAvg and ReVar context. by @cpwright in #1821
- Fix missing "!=" support for WhereFilterFactory, and tighten up the char literal matching regex by @rcaudy in #1820
- Update web to v0.9.0 by @mofojed in #1823
- Add AutoService by @devinrsmith in #1824
- Initial CDC support for DHC by @jcferretti in #1819
- Mark grpc dependencies as api by @devinrsmith in #1805
- gRPC websocket streams should close sanely by @niloc132 in #1772
- Change gradle config to fetch FastDoubleParser from the Maven central repository by @kosak in #1828
- CsvReader: provide correct logical and physical row numbers. by @kosak in #1837
- Bump node and protoc-base to latest versions by @devinrsmith in #1838
- Bump in prep for end of month release of 0.9.0 by @devinrsmith in #1841
- Tag protoc-base as part of the release. by @devinrsmith in #1840
- JS API should copy data for all columns, and should size consistently by @niloc132 in #1835
- Add base+ images to repo and info to README by @jjbrosnan in #1803
- Ensure newline, print out gradle.properties by @devinrsmith in #1851
- A workaround to a JPY issue with long values, fixes #1461 by @jmao-denver in #1843
- [groovy] fix err msg for x[index] on anonymous object by @nbauernfeind in #1522
- Fix batch export response handling pyclient by @devinrsmith in #1859
- Unordered Fill in LongAsDateTime and ByteAsBoolean needs to set size, fixes #1857 by @cpwright in #1862
- Jpy's mvn build should be in batch mode to reduce log noise by @niloc132 in #1865
- Use virtual environment from latest upstream base images. by @devinrsmith in #1863
- Update NLTK dependencies. by @devinrsmith in #1870
- ObjectType and Plugins by @devinrsmith in #1787
- Factor out the need for docker compose from docker tasks, to apply only to the ones that really need it. by @jcferretti in #1882
- Upgrade to Arrow 6.0.1 by @nbauernfeind in #1498
- Support registering a schema for a table (definition) to schema registry. Support DateTime publishing to Kafka. by @jcferretti in #1877
- Full version of derived tables for debezium demo. by @jcferretti in #1856
- Avoid exceptions on autocomplete by @niloc132 in #1876
- Fix variable order in console sessions by @mofojed in #1886
- Send enough bits to represent the column set to subscribe to by @niloc132 in #1887
- Single Column Select Parallelization by @cpwright in #1855
- Remove unused plugin dependency by @devinrsmith in #1889
- Properly unwrap deephaven2.table.Table for script session. by @devinrsmith in #1893
- Renamed
Index
toRowSet
in source by @lbooker42 in #1885 - Add convert-to-table by @devinrsmith in #1895
- Support publishing BigDecimal columns to Kafka Avro. by @jcferretti in #1894
- Rename check to quick ci by @devinrsmith in #1897
- Add predicate-based copy. Helpers for BaseArrayBackedMutableTable. by @devinrsmith in #1898
- Bump to latest base-images by @devinrsmith in #1900
- Quality of life improvements for formula handling around BigDecimal columns. by @jcferretti in #1899
- Web version bump v0.9.1 by @mofojed in #1901
- hand-wrapped the datetimeutils module, fixes #1640 by @jmao-denver in #1812
- Bump to latest python:3.7 by @devinrsmith in #1906
- Regenerate JSON and fix some poorly escaped < and >. by @cpwright in #1905
- Remove unused gradle.properties options by @devinrsmith in #1907
- Set load generation parameters the same as original demo by @jcferretti in #1908
New Contributors
- @lbooker42 made their first contribution in #1885
Full Changelog: v0.8.0...v0.9.0
v0.8.0
What's Changed
- Update web to v0.7.2 by @mofojed in #1680
- Use nginx-base from deephaven-base-images by @devinrsmith in #1681
- Check the docker registry directories for gradle.properties. by @devinrsmith in #1670
- JS API should support generic aliases for types the UI will use by @niloc132 in #1682
- Made test_snapshot_timetable() deterministic, fixes #1635 by @jmao-denver in #1679
- Use protoc-base image by @devinrsmith in #1686
- Post release registry bump by @devinrsmith in #1674
- Bump for next release to 0.8.0 by @devinrsmith in #1672
- Add docker-server and docker-server-pytorch by @devinrsmith in #1602
- Add deephaven/server-slim to build-ci.yml by @devinrsmith in #1692
- Get rid of dependency on log4j by @devinrsmith in #1688
- Add Bender as CODEOWNER of workflows by @devinrsmith in #1695
- Revert references to ghcr.io/deephaven/server:latest until next release by @devinrsmith in #1696
- Provide docker-web project for gradle, restructure web static content by @niloc132 in #1694
- Add support for local arm64 builds by @devinrsmith in #1698
- Fix web CI build by @devinrsmith in #1704
- Small doc fix on RspArray. by @jcferretti in #1715
- Simplify the default configuration to reflect how we run. by @devinrsmith in #1711
- Configure cache dir by @devinrsmith in #1712
- Add implicit jpy configuration based on the python environment by @devinrsmith in #1708
- Move appcontext to appmode by @niloc132 in #1705
- Move uri resolvers+wiring to uri by @niloc132 in #1706
- Move docker LABELs into Dockerfiles by @devinrsmith in #1697
- Cleanup intermediate images by @devinrsmith in #1716
- Reduce scope of dependencies for faster/simplier rebuilds by @niloc132 in #1707
- Remove java sample demonstrating raw grpc access to use the console by @niloc132 in #1718
- Update web to v0.8.0 by @mofojed in #1721
- Upgade grpc version, use bom instead of manually specifying each time by @niloc132 in #1719
- Bump base images by @devinrsmith in #1727
- Add grpc-java servlet implementations to deephaven by @niloc132 in #1723
- Fix the extended image builds by @devinrsmith in #1728
- Improve IncrementalReleaseFilter and Aggregation Run Finding by @cpwright in #1726
- Bump python:3.7 to the latest repo digest by @devinrsmith in #1740
- Add ApplicationService with subscribeToFields to java-client-session by @devinrsmith in #1738
- Add decimal type support, and fix logical types for nested fields in Avro/Kafka. by @jcferretti in #1667
- Add full block span count and len metrics to rowset. by @jcferretti in #1743
- Rename Index* related JMH benches to RowSet*. Add RowSetFindGetBench (ported over from DHE). by @jcferretti in #1742
- ReAvg/ReVar in rollups violates new unordered destination assumption. by @cpwright in #1739
- Support jetty as a server for deephaven by @niloc132 in #1731
- Avoid removing session close callbacks if session already expired by @niloc132 in #1746
- Extracted java-client/example-utilities by @devinrsmith in #1748
- Update JSON files for py docs by @niloc132 in #1761
- Consolidate application, query scope, and raw ticket parameters by @devinrsmith in #1765
- Special cases that need no permutation. by @cpwright in #1737
- Backport DHE fix for RowSet binary search. by @jcferretti in #1788
Full Changelog: v0.7.0...v0.8.0
v0.7.0
What's Changed
- [jsapi] fix RangeSet::addRange when there are ranges remaining post merge of a range by @nbauernfeind in #1534
- Provide gRPC api for input tables by @niloc132 in #1440
- Back down jdk 17 by @devinrsmith in #1537
- Set
NULL_CHAR
toMAX_VALUE
. by @chipkent in #1535 - Update node to latest 14.x release by @mofojed in #1551
- Move wheel building to own projects by @devinrsmith in #1547
- Add a 'used memory' column to the PerformanceQueries ProcessMemory table. by @jcferretti in #1559
- DHLearn: Scatterer: For Python, cast scatter results to PyObject before casting to provided type by @chipkent in #1543
- Update web v0.6.1 by @mofojed in #1563
- Update web to v0.6.2 by @mofojed in #1567
- Use wheels directly in the build process by @devinrsmith in #1555
- Make IndexUtilities.equals work for ReadOnlyIndex arguments. by @jcferretti in #1576
- Extract deephaven/java-and-python by @devinrsmith in #1556
- Fixed CharRangeFilter to properly handle the new NULL_CHAR value by @chipkent in #1566
- Correctly account for modified rows that shifted in the current delta by @niloc132 in #1564
- Extract deephaven/runtime-base by @devinrsmith in #1557
- Add Replayer to TableManipulation by @jjbrosnan in #1585
- Validate batch requests by @devinrsmith in #1587
- Fix up char filters by @mofojed in #1516
- Add InputTable to QST by @devinrsmith in #1579
- resolve calendar resources via classpath by @nbauernfeind in #1592
- Update redpanda version and enable embedded schema registry. by @jcferretti in #1593
- docker registry by @devinrsmith in #1562
- Update JS API to support gRPC input tables by @niloc132 in #1565
- Fix broken build-ci by @devinrsmith in #1597
- Removed DbTypes and related functionality. by @chipkent in #1595
- Add driver:docker to build-ci to fix by @devinrsmith in #1599
- Add missing DEEPHAVEN_APPLICATION_DIR to .env files in other docker-compose directories by @jcferretti in #1600
- Update the debug statement for Java 9+ by @mofojed in #1591
- Expose ScopeTicketHelper; refactor java-client for better management … by @devinrsmith in #1594
- Implemented the Table class wrapper, fixes #1486 by @jmao-denver in #1541
- Consolidate test setup/teardown by @niloc132 in #1581
- Simplify server startup and dagger usage by @niloc132 in #1601
- All Time Zones by @mofojed in #1580
- Major DB -> Engine module cleanup work by @rcaudy in #1473
- Cleaned up application script creation. Got barrage-examples running. by @devinrsmith in #1614
- Set Context.ROOT for Barrage subscription DoExchange by @devinrsmith in #1612
- Added the 'placeholder' write_csv func, fixes #1542 by @jmao-denver in #1603
- Switch to rolling action tags for build-ci.yml by @devinrsmith in #1621
- Delete leftJoin (and clean up Attributes, since I forget to delete that class) by @rcaudy in #1619
- Worked around a JPY param matching issue, fixes #1102, #1101 by @jmao-denver in #1622
- Conditional Formatting - Throw an error if multiple formats of the same type are set by @mofojed in #1604
- Backport deephaven2 read and write CSV methods. by @chipkent in #1624
- Remove race conditions from TestModelFarm by @chipkent in #1620
- added combo_agg to Deephaven, fixes #1632 by @jmao-denver in #1633
- Introduce AggSpec and AggregateAllByTable by @devinrsmith in #1618
- Table api countBy selectDistinct by @devinrsmith in #1634
- Do not hide CSV exceptions in python by @chipkent in #1645
- Fixed bug in backported write_csv and backported unit test by @chipkent in #1649
- Updating JSON files. by @jcferretti in #1638
- Fix ModelFarm race conditions and unit tests by @chipkent in #1642
- Add "or" filters to python. by @chipkent in #1650
- Table api agg bys by @devinrsmith in #1648
- Ensure the wrong number of parameters in a call to deephaven.ParquetTools.writeTable generates an error. by @jcferretti in #1652
- Replace the IndexSet in the deephaven.learn package with a RowSet by @chipkent in #1637
- Barrage/web UI support for BigDecimal and BigInteger. by @jcferretti in #1627
- Fix bugs in avro options "mapping" and "mapping_only" for ConsumeKafka.py. by @jcferretti in #1656
- DBTimeZone renamed to TimeZone by @chipkent in #1660
- Cleaned up Python sort syntax. by @chipkent in #1663
- Added tests for avro mappings in consume. Reworked somewhat the impl. by @jcferretti in #1665
- Fix failing unit tests for aggregations by @rcaudy in #1666
- Fixed Python sort syntax. by @chipkent in #1669
- Java gatherer by @jjbrosnan in #1523
Full Changelog: v0.6.1...v0.7.0
v0.6.1
What's Changed
- [jsapi] fix String[] barrage deser by @nbauernfeind in #1509
- Add exception message for JDK compatibility by @devinrsmith in #1510
- Choose generic versions for Java version in CI by @devinrsmith in #1514
- [barrage] correctly advertise String[] types by @nbauernfeind in #1508
- Make PyListWrapper a previewed column by @nbauernfeind in #1520
- Enable casting PyObject's to primitives; provide type param info for py lists by @nbauernfeind in #1490
- Bump gradle-docker-plugin to 7.1.0 by @devinrsmith in #1515
- Upgrade OSHI-core dependency version to 5.8.3 by @rcaudy in #1527
- Use default workingDir for tests by @devinrsmith in #1530
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
- ArrowFlight: ignore messages that have no app_metadata set instead of NPE by @nbauernfeind in #1441
- Fix up importjava and importstatic methods by @mofojed in #1449
- Known fixes for cpp client build, plus an initial version of an automated build for deps. by @jcferretti in #1437
- Bump for next release by @devinrsmith in #1454
- Updated build instructions for C++ client by @kosak in #1337
- java-client add barrage support by @nbauernfeind in #1345
- Update web version to v0.5.1 by @mofojed in #1456
- More friendly utility methods for arrow::Status and arrow::Result by @kosak in #1457
- Remove garbage code that was left in by accident by @kosak in #1459
- Add API methods for conditional formatting by @mofojed in #1375
- layout hints api by @mofojed in #1452
- CSV reader example for the cpp client by @jcferretti in #1455
- C++ comprehensive build project and cleanups by @kosak in #1462
- Switching build-dependencies.sh default build type to Debug. by @jcferretti in #1464
- Fix an issue with the previous generator changes. by @jcferretti in #1465
- Upgrade compiler to JDK17, fixes #1367. by @devinrsmith in #1397
- Initial (untested) Kafka publishing support by @rcaudy in #1463
- Json catchup. by @jcferretti in #1470
- Upgrade to JDK17 test runtime, fixes #1368 by @devinrsmith in #1443
- Enable liveness scope release to destroy table created in repl by @nbauernfeind in #1448
- [jsapi] Set rollback to null to enable orphan cleanup by @nbauernfeind in #1476
- [barrage] use Timestamp column for DBDateTime by @nbauernfeind in #1481
- Rework QueryConstants to add missing values and to remove improper values by @chipkent in #1386
- FetchTable: make apply preview columns optional by @nbauernfeind in #1487
- Add resolve URI interface for local tables, remote barrage subscripti… by @devinrsmith in #1472
- Fix varargs call for python implicit calls of arrays by @nbauernfeind in #1479
- Added the csv module and the dependent ones, fixes #1391 by @jmao-denver in #1477
- Added the deephaven.ResolveTools module, fixes #1497 by @jmao-denver in #1499
- [parser] fix NPE when casting null to a type by @nbauernfeind in #1500
- User visible API for publishing to Kafka. by @jcferretti in #1377
- Upgrade runtime images to JDK17, fixes #1369 by @devinrsmith in #1494
- Upgrade application target from JDK8 -> JDK11 by @devinrsmith in #1495
- Upload JVM error logs if present on CI failure by @devinrsmith in #1505
- Web v0.6.0 by @mofojed in #1504
Full Changelog: v0.5.2...v0.6.0
v0.5.2
What's Changed
- Add a ProcessMemoryLog by @jcferretti in #1381
- Fix up formatting when multiple types of formats are set by @mofojed in #1409
- Fix KafkaTools wrt dictionary keys()/values() by @devinrsmith in #1410
- Fix *ChunkColumnSource.getChunk() with empty OrderedKeys by @rcaudy in #1412
- Improve the process memory view. by @jcferretti in #1413
- Remove unused data members in QueryPerformanceNugget. by @jcferretti in #1419
- method signatures cleaning up, Docstrings cleaning up, etc. fixes #1359 by @jmao-denver in #1390
- Add generated json files. by @jcferretti in #1418
- fixed a bug introduced in the commit for #1294 that led to the failur… by @jmao-denver in #1426
- Add gitter chat to the readme. by @chipkent in #1431
- C++ Client: documentation and sample code by @kosak in #1315
- Generate cpp client and example sphinx docs in ci build by @niloc132 in #1433
- Docker tasks should always tell gradle if they have changes by @niloc132 in #1427
- Time zone fetch optimizations by @mofojed in #1436
- Separate cppdoc job. Remove JDK15 where unneccessary. by @devinrsmith in #1435
- added tutorials.crypto_trades module, fixes #1442 by @jmao-denver in #1444
- Bump pre-release to version 0.5.2 by @devinrsmith in #1445
Full Changelog: v0.5.1...v0.5.2
v0.5.1
What's Changed
- Adding generated json. by @jcferretti in #1385
- Add support for java client doPut against NewTable. by @devinrsmith in #1374
- Fix handling for non-dictionary pages in dictionary chunks by @rcaudy in #1387
- Don't print out on our re-directed stdout/stderr, print out on the or… by @devinrsmith in #1383
- created the basic project structure, automated build, installation and testing, fixes #1294 by @jmao-denver in #1378
- Added CsvSpecs and readCsv for CsvSpecs. by @devinrsmith in #1361
- Update git clone instructions to use https instead of git (the latter… by @devinrsmith in #1198
- [envoy] route websockets to grpc-proxy and everything else to grpc_api by @nbauernfeind in #1365
- Format the client and server pydocs the same by @chipkent in #1392
- Add executeTimeout to session impl config builder, fixes #1395 by @devinrsmith in #1396
- Fix Kafka streaming referential integrity and shutdown processing by @rcaudy in #1393
- readCsv against String is now smarter, and can delegate to URL. by @devinrsmith in #1394
- Bump pre-release to version 0.5.1 by @devinrsmith in #1402
Full Changelog: v0.5.0...v0.5.1
[Release] 0.5.0
Fixed bugs:
- [Groovy] upperBin() (and lowerBin()) method signature doesn't match the javadocs #1341
- Nightly Check Transient Failure: QueryTableWhereTest#testInterFilterInterruption #1317
- Cannot add two series from the same table to a plot. #1292
- diffDay, diffNanos, and diffYear have incorrect docs for the situation that gives negative values #1288
- io.deephaven.db.v2.replay.Replayer tries to grab the LTM exclusive lock when it shouldn't #1283
- Syntax error found in the overview example of pydeephaven #1279
- StreamToTableAdapter.refresh error logging is substandard (because there isn't any) #1277
- deephaven.ParquetTools.readTable() doesn't support Parquet date32 or date64 data types #1253
- Python Issues with pre-defined constants #1247
- The sort direction enum in the Python client isn't correctly assigned values #1233
- Bug in ChunkColumnSources observed via streaming lastBy #1227
- Copy Selection* menu options are copying the entire table not just the selection. #1225
- The Python client releases tickets not generated by the client. #1219
- No need to be verbose about cancelled barrage subscriptions #1205
- "Running..." in IDE disappears before computation is complete #842
- Port fix for DH-11620 (WouldMatch fillChunk bug fix) #1342 (rcaudy)
- Move default nginx root outside of first location #1338 (nbauernfeind)
- Make QueryTableWhereTest#testInterFilterInterruption more robust for CI #1318 (nbauernfeind)
- Reduce noise on cancelled barrage subscriptions #1291 (nbauernfeind)
- Fix plot not allowing more than one series per table instance #1289 (nbauernfeind)
- Fix LTM lock usage in Replayer #1284 (rcaudy)
- Log errors when a failure is encountered in StreamToTableAdapter.refresh #1280 (rcaudy)
- Update web to v0.3.2 #1278 (mofojed)
- DBLanguageParser allow unboxing and widening when finding available methods #1248 (nbauernfeind)
- Fix bug in ChunkColumnSources #1243 (rcaudy)
- Reduce verbosity of UNAUTHENTICATED calls from alternative GrpcUtil.rpcWrapper #1238 (nbauernfeind)
- Fix case insensitive string filters #1229 (mofojed)
- Fix zulu-open-jdk-debian base image dependency #1213 (devinrsmith)
- TableService's gRPC lazyUpdate/update/select impls must acquire LTM shared lock #1211 (nbauernfeind)
- BarrageStreamGenerator#Drainable should be empty after drainTo #1209 (nbauernfeind)
- Send UI to Unknown Error if auth token cannot be refreshed after a few tries #1193 (nbauernfeind)
- Fix console type for containers/ #1192 (devinrsmith)
- Propagate query scope changes even if script throws a RuntimeError #1191 (nbauernfeind)
- Add no-cache headers to responses from the web #1185 (mofojed)
- Propagate Barrage propagation errors to the client table widget #1182 (nbauernfeind)
- Properly ignore non-refreshing dynamic nodes; fix jsapi getObject to wait for Ticket #1173 (nbauernfeind)
- ScriptSession#setVariable require subclasses to notify old vs new Value #1166 (nbauernfeind)
Closed issues:
- Consolidate slf4j versions and make sure they all match #1332
- Consider using standardized Java classes for date/time #1304
- Make it easy to use PyCharm to remotely debug Python code inside the Deephaven grpc-api container #1302
- Determine if an incremental-wrapping approach is possible or makes sense to make the server Python integration more Pythonic #1276
- Make pydeeephaven.Session usable in Python 'with' statement. #1244
- dummy issue #1197
- deephaven-client-session should not depend on flight-core or arrow-x #1186
- Code examples to demo how to use the major functions of the DH Python client. #1146
- java-client DoPut #1124
- Automate the code generation, building, and testing for the new Python client #1073
- Kafka: Handle DBDateTime from JSON #1046
- Kafka: KafkaTools: Make Avro/Json and Simple Raw Types Play Nicely Together as Key/Values #1025
- Kafka: Support nested records in avro schemas by linearizing them. #985
- Convert JSAPI examples from Groovy #904
- Reduce log noise from autocomplete #796
- Add convenience types for DynamicTableWriter #793
- Establish and advertise minimum required docker version #769
- CSV (and related table) uploads #696
- EPIC: Java API supporting connection to remote worker + simple table ops #657
- Consider open-telemetry #100
Merged pull requests:
- Bump version to 0.5.0 pre-release #1376 (devinrsmith)
- Add C++ to the readme #1371 (chipkent)
- Add java client DoPut support. Fixes #1124. #1366 (devinrsmith)
- GitHub Action for CLA compliance #1363 (chipkent)
- Update web to v0.4.0 #1357 (mofojed)
- Update container readme files. #1355 (chipkent)
- Consolidate slf4j versions, fixes #1332 #1340 (devinrsmith)
- Update CONTRIBUTING.md based on user feedback #1335 (chipkent)
- Add methods to get/set DBTimeZone#TZ_DEFAULT #1331 (AlSpinks)
- Avoid log4j dropping warnings in the console for dependent libraries. #1329 (jcferretti)
- Update redpanda from 21.4.13 ...
[Release] 0.4.1
New Feature
Kafka Ingestion Support
- Schema service integration for Confluent/Apicurio.
- Decode from Apache Avro, JSON, or primitives.
- Start from beginning, end, current, or an arbitrary offset.
- Stream tables to the Deephaven query engine for efficient event processing or aggregations.
- Record full history in-memory to allow richer Deephaven queries.
- Commingle all partitions, or segregate them into distinct sub-tables within Deephaven
TableMaps
.
Stream Table Optimizations
- Developed in support of Kafka ingestion.
- Allow for very efficient aggregations over the full data set, while only storing “new” rows in their entirety.
- Can be transformed into full-history in-memory tables.
- Suitable for any streaming ingestion use case.
Parquet Support Expansion
- Use Spark/Dask style _metadata and _common_metadata files when present for faster partition discovery.
- Support multiple row groups in a single .parquet file.
- Major scalability enhancements for files with many dictionary pages and/or row groups.
- Support dictionary size constraints in writing tools.
- Single entry point for “do the right thing” reading.
- This expands on existing support for Parquet, which allows for symmetrical writing/reading of Deephaven tables, in addition to ingestion support for single files, flat layouts, and hive-style partitioning with most standard compression options and data types.
Application Mode
- Loads all
.app
files indeephaven.application.dir
(CLI flag to directory). - Use ApplicationService to subscribe to field changes.
- Script types of application must match
deephaven.console.type
. - Static (script-less, immutable) applications subclass
StaticClassApplication
. - Dynamic (script-less, non-immutable) applications subclass
DynamicApplication
. - Initialize REPL environment with a Script Application (Query Scope changes are available to REPL sessions).
Python Integration
- New
deephaven.Types
import, defines constants for Deephaven column data types and adds support for table creation from constant data with an API resembling Panda’s DataFrame. This builds on the QST support for building tables also mentioned in the Java client section.
Python client
- Session object connects to DH server, convenience methods for creating empty tables, time tables, importing table from Arrow data, merging tables, opening tables by names, and running scripts.
- Table object represents a DH table, supports most table operations including filtering, selection, snapshotting, aggregation and joins.
- Query object defines a set of table operations to be performed in a single batch on the server.
- Available for download from PYPI.
Java client
- Arrow Flight integration;
doGet
(doPut
next release). - Query syntax tree (QST) support.
- Serial mode.
- Batch mode.
- Console session support.
- Command line utilities and examples.
- Graphviz visualization for QST.
- Jars published to Maven Central; https://search.maven.org/search?q=g:io.deephaven
C++ Client
- Arrow flight integration (basically a passthrough to the C++ FlightClient provided by the Arrow libraries). Provides
doGet
,doPut
, and others. - Async mode.
- Unit tests and examples.
UI
- CSV upload and download are now supported via the web UI.
Enhancement
Improved interactions between two windows communicating with the same worker.
- The shared query-scope fields show up in the panels drop-down.
- The UI recognizes initial change to an existing query-scope field as a new field.
Improved detection of scenarios where the backend is not working as expected.
- If any of grpc-web, envoy, or the worker exit, the UI detects this and notifies the user.
- If a Barrage subscription fails to snapshot, all subscribers are notified and closed.
Improvements to Arrow Flight integration
- Migrated all Barrage metadata into FlightData metadata field.
doGet
works from official Java / Python and C++ Arrow Flight clients.
Improved error messages related to tickets (missing and invalid) to gRPC clients
gRPC API
- Added
FetchTable
to TableService; can be used in a batch. - Added
ExportFromTicket
to SessionService; does not validate type of export. - Added
ExportNotification.RUNNING
state to distinguish from QUEUED. - Reduced log volume related to UNAUTHENTICATED requests.
Javascript Client (jsapi)
- Wired up
selectDistinct
(re-enables existing UI functionality for filter pop-ups).
Address bugs and inefficiencies in autocomplete.
Improved error handling in the JS API.
Bug fix
- Fixed several issues regarding Liveness tracking in SessionState et. al.
- Fix SessionState NPE caused by cancel / perform-export-work race.
- Fix barrage subscription update race due to acquiring wrong lock.
- Fix bugs in SortedRanges.SearchIterator for hasNext after exhaustion.
Internal
- Cleanup many of the rawtypes related to ColumnSources.
- Upgrade JavaParser from 2.0.0 to 3.23.0.
- AutoComplete is now performed over a bi-directional stream.
- Javascript Client
- Prefers to use websockets in non-ssl for bi-directional streams.
- Uses HTTP headers
x-deephaven-stream-ticket
,x-deephaven-stream-sequence
, andx-deephaven-stream-halfclose
to simulate client-streams (and bidirectional-streams) when using SSL.
System Administration
- Flag
io.deephaven.console.type
renamed todeephaven.console.type
. - New Flag
deephaven.application.dir
(see Application Mode in New Features). - Added no-cache headers to
nginx_default.conf
. - Added layouts directory adjacent to notebooks in
nginx_default.conf
. - Disable websocket idle timeout in envoy via
stream_idle_timeout: 0s
.
Commits
Raw Git release notes:
3349c42 Cut for 0.4.0
f9fb90b Remove old docker/ contents (#1170)
b7edf2c Deephaven C++ client (#1176)
5681bad Propagate Barrage propagation errors to the client table widget (#1182)
d11aa6c Give table update listeners short version of propagation error (#1179)
7b23050 MVP release, version set to 0.4.0, fixes #1171 (#1175)
d79bed1 Improve Ticket/Descriptor error messages for all gRPC usages (#1174)
b9bbef2 Added python tests for every Kafka spec type. Closes #1123. (#1168)
8361935 Properly ignore non-refreshing dynamic nodes; fix jsapi getObject to wait for Ticket (#1173)
2ff6962 Add execute script support for java client (#1156)
2b11f45 Add publishing for java-client jars and dependencies, fixes #1126 (#1149)
0753e2d Remove files that should have been never added. (#1169)
34cd17a ScriptSession#setVariable require subclasses to notify old vs new Value (#1166)
b181861 Add python documentation for Kafka integration. (#1160)
36b4c2d add compose files for standalone docker containers (#1058)
ff335f4 Use the correct location (Classpaths.groovy) to declare which java parser version (#1165)
e7ca952 Update web to v0.3.1 (#1164)
5cfd357 Improved validations for comboagg grpc request (#1014)
cf19dfa Initial Kafka python tests. (#1155)
657a716 fixed a compatibilty issue in the Python client due to the latest chanage to session proto, fixes #1158 (#1159)
ad6ff1b Update all .env files (#1161)
c2bd84f Updating web UI to v0.3.0 (#1154)
e0d85c4 Application mode for long running workers (#1082)
37e5f32 Adding Javadoc to KafkaTools.java. Closes #1122 (#1148)
6ef97c8 Deephaven Python API MVP (#1094)
404d5fd Upgrade javaparser-core to 3.23.0 (#1106)
a791fd3 Massive RawTypes Cleanup (#1145)
cd8745d Add safety check for .gitignore, fixes #1114 (#1147)
2e36920 Learn library logic, no dependencies (#1140)
51f19a5 Support bidirectional streaming on websockets (#1111)
a45154c Use DBDateTime insteat of qst...instant from python in deephaven.Types for the time being. (#1144)
602dfd9 Disambiguate DynamicTableWriter constructors taking an array from the point of view of jpy. (#1143)
590a746 Disable envoy websocket timeout (#1139)
7b2eacf Parquet: Lazy dictionary loading, shared page caches, and better file channel cache behavior (#1130)
d3d6aa9 QST to graphviz DOT format; and SVG, PNG, and others (#935)
34552e7 Fix CODEOWNERS references (#1137)
0add3f8 Run ./gradlew :Generators:generateAllPython (#1132)
473a40a DynamicTableWriter ctor to support using qst...Types (#1125)
f39d8f2 java-client session and flight (#953)
86319e2 Update code style (#1121)
a7a0454 Downgrade Alpine to avoid a DNS issue on older mac docker installs (#1034)
10fc2f6 Update CONTRIBUTING.md for styleguide (#1118)
9b851e5 Add DynamicTableWriter to deephaven module (#1117)
3d46a74 Fix tests after styling applied
8a5099f Apply style guide
038f8ee Remove style guide ratchet
abcfa45 Add style guide for most projects
14a997c Fix .gitignore rules (#1115)
c646eb2 Rename KafkaIngester module to Kafka. (#1110)
5e135dd Some Avro converter unit tests. (#1108)
8e64658 Adding Types.py for wrapping DH column types and table operations around them. (#1088)
11bda2e Fix a bug for the implementation of simple in the python side of KafkaTools. (#1109)
c932216 Add support for seek to end to Kafka API. (#1103)
440a166 rerun ./gradlew :DB:replicate (#1099)
2074ed2 Force jvm to load class in desired package (#1095)
7fe69b9 CrossJoin cardinality calculation may overflow integer (#1098)
87aa98e Properly use liveness API for dynamic non-refreshing nodes in SessionState exports (#1092)
8addc73 Revert "First iteration of Learn library (#974)" (#1096)
216ca7d First iteration of Learn library (#974)
0c22475 Native arrays, Db Arrays, and types. (#1076)
152b2b8 Add support for converting stream tables to append from python. (#1090)
41cd9a3 JS API Error handling (#1086)
686e5f8 TableMap support in KafkaTools (#1079)
c80f7c8...
[Release] 0.4.0
v0.4.0 [Release] 0.4.0