OmniSciDB is being intensively developed and is evolving quickly. In order to help the MapD developer community understand our near term priorities, this document shares work targeted for the next 3-6 months. Many of these items are the result of community requests.
We welcome and encourage developer contributions to the project. Please see the contribution guidelines and GitHub issues.
- Top k sort on GPU. Ability to efficiently order by a projected column (Completed 3.2.2)
- JOIN improvements. Additional join types and performance improvements (Completed 3.2)
- JOIN improvements. Table orderings and optimizations for larger numbers of tables (Ongoing improvements)
- TRUNCATE. Efficiently remove contents of table or part of table (Completed v3.2)
- Batched UPDATE and DELETE (Completed 4.0)
- Interval type, and TIMESTAMP_ADD, TIMESTAMP_DIFF (Completed v3.2)
- Table Sharding. Table sharding types in addition to the existing round robin (Completed v3.2)
- Table-level security, GRANT, REVOKE. Ability to grant and revoke table access to users/roles (Testing in 3.2.3, released in 4.0)
- Use of shared memory to accelerate certain group by operations
- More efficient memory layout for certain group by operations
- More efficient range joins
- Better usage of both GPU and CPU, depending on memory requirements of queries
- Create table as select (CTAS) improvements (performance, and handling variable length data)
- Update improvements, including handling variable length data, update via subquery, and more efficient columnar output
- Delete improvements, including immediate/delayed vacuum capability
- More granular timestamp support (to nanoseconds)
- Row-level User Defined Functions (UDFs)
- Geo Types. Point, Line, Polygon (Completed 4.0)
- Basic Geo functions (ST_Contains, ST_Distance) (Completed 4.0)
- Additional OGC geospatial types: Multi(Point|Line|Polygon)
- Additional OGC geospatial operators (ST_Intersects, ST_Within, ST_Area, ST_Perimiter, etc)
- Support for geometric constructors (ST_MakePoint, etc)
- Accelerated geospatial joins (with dynamic spatial hashing, not relying purely on brute force loop joins)
- Fixed length arrays for POINT datatype to conserve memory
- Geodatabase/geopackage import
- WMS support
Data Science/GPU Data Frame (GDF)/Apache Arrow
- Data frame as input to MapD. Ability to insert into a table from a data frame (Completed 3.2.4)
- PyMapD DB-API Python client
- Ibis backend for MapD
- Increase efficiency of Arrow serialization