Kinetica Release Notes

Build version:



KDEVOPS-384 Update Java 8 dependency to Headless in make-gaia-rpm and make-gaia-deb
KDEVOPS-398 GaiaExecution.h use gaia_algorithm::device/host_par_t not thrust::cuda::par to use algo versions, same for KernelExecutionHelper. Set tbb interfaceN nanamespace in SqlPlanExecutor.cpp
KDEVOPS-398 Include thrust/cpp/par.h in SysBench/KernelsThrust.h for cuda10 thrust
KDEVOPS-398 Update Algorithm/par.h and GaiaCudaDefs.h for gcc 7.3 and thrust from cuda 10.1, fixes no member cuda_cub::reduce_n
KDEVOPS-398 Update CudaDefs.cpp #warning about wrong thrust. < 9.1 use core-libs thrust, 9.1 use gpudb-core-thrust, else use thrust in cuda dir
KDEVOPS-398 Update for cuda10 and newer thrust, cudaDeviceSetCacheConfig not dep cudaThreadSetCacheConfig, CMakeGaiaCuda.cmake select proper thrust
KGEO-488 Added test to graph saving/loading when creating with syncdb ON (rebuilding from db), which means extra creation options need to be saved/loaded
KGEO-518 Match graph endpoint
KGEO-518 Match graph schema changes
KGEO-519 Updated on-the-fly vector tile LOD generation at lower zoomlevel (from the geometries from higher LOD tiles)
KGEO-544 Graph query tests using new table.column syntax
KGEO-557 Expression support for query graph + Tests for extending expression support in solve graph + Better clean-up temp tables generated for the graph server
KGEO-564 EGL/OpenGL behaved abnormally when hundreds of threads are bound/unbound repeatedly. This fix clears out the per-thread state info when a thread is unbound from an EGL context. It allows EGL works normally when the thread is bound to the EGL context again
KINFRA-1019 Add support for init_with_now in alter/table add/change column
KINFRA-1019 Add tests for init_with_now for alter/table/columns
KINFRA-1019 Change init_with_now in-place
KINFRA-1021 Update get_set_sizes worker to use spare thread on retry
KINFRA-1031 Add executor enhancements/Fix filter crash - Added notifySchedulingComplete to executor to avoid race condition of all tasks completing prior to waiting on executor - Separated out failed and shutdown states in executor - Added ability to retrieve the first caught exception from an executor - Added check in thread executor to guard against outstanding items in the dtor - Made executors move constructable - Added createThreadPoolExecutor to Work
KINFRA-1039 Track modified state of items in object store to avoid needlessly copying back to cold - Removed redundant persist lock (from * KINFRA-901) - New unit test IndexedDbTierFixture.TestAsync/EvictCleanPersist - Added error whitelisting option for tiered storage unit tests
KINFRA-1040 Fix error appending to compressed vector - bulk_inserts weren't checking for compression - pinUncompressed wasn't uncompressing if enough memory was already allocated - Tested with test_append_records.test_append_with_compression

Fix memory check to account for null vectors

KINFRA-1040 Remove errant uncompressed tiering check - Doesn't account for null vector not changing when data vector is compressed
KINFRA-1048 Add timeout to executor dtor wait, Fix poll usage - Use the polling timer correctly to not overflow the log - Added a 10 min timeout to wait for unfinished items in the dtor
KINFRA-1048 Remove cast which causes the escalation time to be truncated incorrectly
KINFRA-1049 Update base vec accessor to uncompress via tier mgr - Was previously calling uncompress directly which threw off the tier accounting - Added GSCoreVecTierFixture.Misc_AccessCompressed
KINFRA-1051 Note in comments in conf file that tier limits are per rank
KINFRA-1054 Backtrace.cpp detect if addr2line -p arg works, else don't use it for centos6
KINFRA-1054 allow 127.0 or localhost, use sed 'a' to append missing conf params
KINFRA-1054 GpuDbExeProcess uses 'gpudb-sql/graph-HOSTNAME.log' now, update for log filename changes
KINFRA-1054 Hostmanager writes temp gpudb_cluster_info-HOSTNAME.js, stats start script copies to tomcat gpudb_cluster_info.js
KINFRA-1054 Update init.d, gpudb, and hostmanager to add HOSTNAME to log files to support multi hosts sharing a drive
KINFRA-1056 Type::getType() now throws and logs error if missing instead of returning null, fixes segfault with dereferencing null std::shared_ptr
KINFRA-1057 GaiaSetDataVector doesn't use std::min/max() on int128/256 types anymore, a memcpy to same addr, use an if
KINFRA-1059 Add strings in string store and in lucene in new compacted chunks
KINFRA-1060 Add tom based scale factor to reshard proj batch size - Help stave off OOM when running with large number of toms
KINFRA-1061 JsonWrapper make RAPIDJSON_HAS_CXX11_NOEXCEPT=0 so RAPIDJSON_NOEXCEPT= instead of nothrow, fixes possible terminate
KINFRA-1062 add --num-testers N for another layer of parallelism and --repeat M
KINFRA-1062 Update gen_set_id() to include the pid, test_plot2d_layer_order uses unique table names now
KINFRA-1065 Fix several projection low mem scenario crashes - WorkerUtil::sendRecv was not checking for errors in response messages thus ignoring the many response messages that reported 'exceeds capacity' - Fixed race condition in the tier mgrs where a thread incorrectly unlocked a tiered obj. Moved the isLocked check to be the first check instead of occurring after the 'exceeds capacity' check. - Changed proj reshard to use the number of toms from the Co
KINFRA-724 Fix run error needing a thread global var defined
KINFRA-724 Update backtrace to skip docker processes when running on host as they were dysfunctional 
KINFRA-728 Change the replaceStrategyChainPtr function for tiered objects to be more generic
KINFRA-799 Set the column value to 0 for null values in create projection lead/lag window functions

Update fuzzer to generate same names and values for the same seed - Use gen_random_string vice GPUdbTable.prefix_name - Use the given seed as the cardinality seed

KINFRA-892 Add same stencil change for disk tiers
KINFRA-892 Fix 'm_stencil->capacity' error during rebalance - GaiaVector allocation is dependent on the current vector size as well as the new vector size. In this case the stencil had size N and capacity C, then was resized to N+1 and capacity C+1. However resizing an empty stencil to the same N+1 size resulted in capacity C2. Thus after reading from persist the m_capacity field was out of sync. Simply reset it after reading from persist
KINFRA-901 Fixed race condition in SetIndexedDb when loading and an eviction is in progress - Fix bug that lead to invalid/non-existent toc keys returning successfully
KINFRA-923 Add shutdown/alter props/verifydb workers to factory
KINFRA-923 Fix log checks in worker recreate tables - Wrong arg order
KINFRA-923 Remove alter sys/verify/shutdown from TaskFactory
KINFRA-923 Remove ported worker code from TOM

Add optional compaction_threshold in options to admin_rebalance_request

KINFRA-950 GaiaSetCompactor::compactChunkImpl() must not scopelock chunk before calling GaiaSet::delete_chunk(), the chunk's lock has been deleted when unlocking
KINFRA-954 Add /alter/role endpoint to the head endpoint manager
KINFRA-954 Add alter_role endpoint to alter the resource group for roles
KINFRA-954 Add support for resource group assignment to user roles
KINFRA-954 Use the resource group from roles for queries
KINFRA-961 Update compaction, update to use compaction_threshold 95% by default- or use a new -c parameter
KINFRA-966 Convert non-chunking WorkerChunkers to WorkerResponseHandler
KINFRA-967 Add ability to modify worker executor concurrency limit - Uses subtask_concurrency_limit by default but can be modified by subclasses - Created WorkerUtils namespace
KINFRA-969 Fix 'Parse error' running projection and verifydb - Added a lock on the type map during verifydb call
KINFRA-973 Skip timeout check on internal workers that don't have a valid receive time - Enable timeout checking only in filter & aggregate workers, otherwise disabled by default
KINFRA-979 Add executor classes and integrate into workers - Workers use the thread pool executor by default unless executed synchronously - Retooled workers to run job cancellation and exceptions through the worker as work items to avoid race conditions in failure scenarios
KINFRA-979 Fix crash in tier unit tests - Need to initialize an executor in the TOM
KINFRA-979 Fix several scheduling bugs - Change scheduler to keep track of busy threads vice leveraging the idle count of the tbb queue due to race condition wherein there were no idle threads when the queue was queried but all threads became idle by the time the checking thread got back to the queue to pop. - Add better logging in Worker/Executor to track things by id - Changed executor logger to be Executor.*
KINFRA-992 Fix ability to cancel worker comms jobs - Leverage the new blocking executor instead of using the WorkerCommsHelper
KINFRA-999 Store all tiered storage unit test output files under common directory
KINFRA-999 Update resource group test to default output directory - Change resource group mgr id listing log to debug
KOLAP-1020 IndexedWorkItemExecutor::schedulerWorkItem wraps functor passed with tracer calls
KOLAP-1020 JoinedSet::joined_count now uses the IndexedWorkItemExecutor pattern rather than an OMP loop
KOLAP-1020 Make IndexedWorkItemExecutor handle thrown errors - but use existing WorkItemThreadPoolExecutor facilities
KOLAP-1068 Added* KOLAP1068 showing there isn't a problem
KOLAP-1106 Fixed a compile warning on CUDA build. - Incorporated minor code review comments
KOLAP-1106 Added bounding box for every chunk of wkt column - Added chunk skipping for geo-joins - Added chunk skipping for regular equi-joins - Chunk skipping for geo-joins and equi-joins is enabled by default - Added a developer option: chunk_skipping, in create_join_table to enable/disable chunk skipping
KOLAP-1116 Fix a CentOS CUDA build failure by removing unwanted include files
KOLAP-1124 Logical view implementation
KOLAP-1125 Fix conf param nesting levels reinitialization
KOLAP-1128 Add support to gather qualified row indices from a joined set
KOLAP-1129 Add support for update/delete using subqueries (joined sets)
KOLAP-1129 Replace view_name with auto generated name
KOLAP-1167 Make EndpointDynamicSchemaUtils.cpp getRowValueUnsafe() safe by adding check error logs to protect against segfaults
KOLAP-1182 Add error bounds checks to Type::get_contained_shard_keys_of_joined_type. Add is_replcated vector to Type constructor to avoid classifying primary keys as shard keys - which was the cause of at least some bounds errors
KOLAP-1182 Fix segmentation fault: get_contained_shard_keys_of_joined_type - When creating internal and external types in Endpoint_create_join_table pass the flattened is_replicated vector
KOLAP-1186 Test with window function and paging table
KOLAP-1187 Added tier predicate evaluation test case for datetime data type
KOLAP-1187 Translating tier strategy predicates involving datetime columns into chunk min/max aware predicates
KOLAP-1189 mutext protect parallel access to the m_between_expression_key map
KOLAP-1189 Add test_* KOLAP_1189() test in
KOLAP-1195 Fix a bug in typed_join_select_func_single2 function when out_indices[i] is empty
KOLAP-1209 Add GaiaRWSpinLock to protect creation of GaiaSetChunk::m_kernelDataHelper, also JoinedSetUnaryChunk and JoinChunk
KOLAP-1210 Added WorkerUtils::executeInternalWorker WorkerFilterUtils::createTempFilteredGaiaSetBasePtr, Modified aggregate_group_by to do filtering with WorkerFilterUtils::createTempFilteredGaiaSetBasePtr
KOLAP-1210 WorkerFilterUtils::createTempFilteredGaiaSetBasePtr used by aggregate_statistics_by_range, aggregate_unique, append_records, visusalize_image_labels end points. Delete TypeObjectManager::create_temp_filtered_gaia_set_base
KOLAP-1210 Refactor executeInternalWorker into cpp - All of the methods it uses are actually in the base class so no need for template method - Updated error log to use the _OBJ variant
KOLAP-1213 Implement parallel copy of JoinedSet bitmask stencil to GaiaSet stencil using WorkItemThreadPoolExecutor
KOLAP-1213 Minor whitespace improvements to Worker_filter.cpp
KOLAP-1213 Move IndexedWorkItemExecutor to WorkerUtils
KOLAP-1213 Convert Worker_filter to WorkerResponseHandler
KOLAP-1214 Add support for JSON encoded data for parametrized bindings in SQL
KOLAP-1217 Add directly call final getJoinedSetSizes(ctx) rather scheduling it and move the call to markContextWorkerResponseReady(ctx) to after the getJoinedSetSizes completes
KOLAP-1224 Fix /insert/records with init_with_now with null string columns
KOLAP-1235 Add tests and call the right function to check under construction materialized views
KOLAP-1235 Cleanup under-construction materialized views if they failed to create
KOLAP-1240 Add GaiaSet::get_between_expression_key_map() to get a locked copy for the copy constructor to use
KOLAP-1244 Fixed Persist accounting error introduced by adding new BoundingBox member to GaiaSetGeometryVector
KOLAP-1254 Always copy last chunks fact set bitmask stencil on incremental join refresh
KOLAP-1254 Delete BitmaskStencil functions set_count, and get_count_set
KOLAP-1254 Do incremental JoinedSet refresh on clone of JoinedSet and then replace the original in JoinedSet manager with the refreshed clone
KOLAP-1254 Enhance test for incremental join refresh - include doing aggregates on primary key table values. - multichunk and single chunk pk table - primary-key, primary-key-ai and primary-key-fk filter plans all tested
KOLAP-1254 Fix defunct foreign-shard-key support code GaiaSet::drop_records_not_on_this_shard 3. creation of primary key lookup table now avoids creating chunk_indices if not
KOLAP-1254 Only copy last chunks fact set bitmask stencil if bitmask stencil count wasn't set or the stencil is not already at the GaiaSet chunk_capacity
KOLAP-1254 Refactor Worker_incremental_join in preparation for modification that will prevent incrementally updated JoinedSet from being queried while it is updated
KOLAP-1268 Avoid concurrent initialization of static Field returned from Type::get_field_with_name_and_check by initializing with constructor
KOLAP-1270 Allow /get/records/bycolumn to handle duplicate columns with different aliases (and being able to sort on those aliases). Replaced the boost::bimap in AliasExtractor with 2 unordered maps
KOLAP-1284 Test case for not combining joins when join condition refers more than two tables
KOLAP-1285 Keep join tables as paging tables
KOLAP-1286 Modify JoinedSet::requires_full_refresh to return true if any of the m_sets point to refreshed tables
KOLAP-454 Handle creating paging table if expressions contain window/aggregate functions
KOLAP-859 Constants (for example 1) exported from JoinSet decorated as nvl2(1,nvl(,nvl(,/bin/bash))) - $<num> now accepted as DATA_TYPE_VOID and is only used to determine nullablility of column). Support for DATA_TYPE_VOID and VOID_DATATYPE added throughout
KOLAP-859 GPUManager: avoid multi-chunk primary key path for VOID_DATATYPE variables. Add VOID_REMOVE_NULLABLE typed-rpn operator. Fix some switch statements missing VOID_DATATYPE case. Add some new tests. Improve Parser reporting of mismatch function prototype to report argument types actually received
KOLAP-998 Change datatype of is_automatic_partition from bool to string -to match other booleans returned from show table
KUI-540 Fix layout for checkboxes in KIO
KUI-590 Support new init with now feature for timestamp columns in GAdmin
KUI-651 Add support for role-based resource groups
KUI-652 Table info modal takes a long time to render
KUI-653 List partition is not supported
KUI-655 Support /alter/role
KUI-660 Improve responsiveness of navigation layout
KUI-660 Make cluster status global/available on most if not all screens
KUI-670 Ranking/Adjoining Resource group not required to create resource group
KUI-671 Add feature to allow users to create collections only
KUI-693 Reveal table joiner does no work in sql mode due to new default KiSQL port requirement
KUI-695 Add support for automatic list partitioning
KUI-697 Add chunk size to info screen



None currently


Should you have any questions or concerns, please visit our support page, official documentation page or email us at

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request


Please sign in to leave a comment.