Details
-
Improvement
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
Impala 2.6.0
Description
We want to replace BufferedBlockMgr, a query-wide buffer pool, with a new BufferPool that is shared between all queries. The goals are:
- Support for guaranteed reservations: i.e. if a reservation is granted, the buffer pool will fulfil it (unless the OS is unable to fulfill the buffer pool's memory requirements).
- Simplified interaction between reservations and pins (if you have a reservation, you can pin, if you don't, you can't)
- Support for increasing reservations (up to a planner-specified limit).
- Support for smaller buffer sizes with similar performance (so we can reduce minimum memory requirement to execute spill-to-disk algorithm)
- Support for larger buffers to support wide rows
- Reduced reliance on TCMalloc, which isn't suited to management of large buffers (e.g. see
IMPALA-2800) - Better transfer model for buffer pool pages, so we can implement transfer-of-ownership consistently for row batches (instead of mixing transfer with MarkNeedsToReturn()).
Attachments
Attachments
Issue Links
- blocks
-
IMPALA-4834 All operators should operate within a memory constraint
- Open
-
IMPALA-2800 impalad process blocked while releasing memory after a big query
- Resolved
-
IMPALA-2285 Query should return error not cancelled when failing to flush blocks due to lack of disk space
- Resolved
-
IMPALA-4179 Remove RowBatch::MarkNeedsDeepCopy() memory management API
- Open
-
IMPALA-2795 Report spilling time per operator
- Resolved
-
IMPALA-2079 Don't fail when write to scratch dir results in error.
- Resolved
-
IMPALA-3706 Planner should set min/max per-node buffer pool reservations to optimize query performance
- Resolved
-
IMPALA-3265 Create a metrics to track spilling per operator
- Resolved
- is depended upon by
-
IMPALA-5165 Allocate memory for all data from BufferPool
- Resolved
-
IMPALA-1382 Wasted space in buffered-tuple-stream in presence of many NULL tuples
- Resolved
-
IMPALA-2167 Remove the old (unpartitioned) HJ and AGG nodes
- Resolved
-
IMPALA-5656 Update BlockMgr.BytesWritten reference in docs for new buffer pool
- Resolved
-
IMPALA-5655 Update docs for max_block_mgr_memory/buffer_pool_limit
- Closed
- is duplicated by
-
IMPALA-5701 Additional mem_limit settings for resource management (min mem, max before spill, max spill)
- Closed
- is related to
-
IMPALA-5161 TPC-DS Q78 with MEM_LIMIT=10GB fails with "Repartitioning did not reduce the size of a spilled partition" on BufferPool dev branch
- Resolved
-
IMPALA-5778 Clarify logging around and usage of read_size startup option
- Resolved
-
IMPALA-2285 Query should return error not cancelled when failing to flush blocks due to lack of disk space
- Resolved
-
IMPALA-5169 Parallelise read I/O of BufferPool::Pin()
- Resolved
-
IMPALA-5229 Try using TCMalloc + Huge Pages for buffers
- Resolved
-
IMPALA-5786 Document buffer pool changes
- Resolved
-
IMPALA-4981 COMPUTE STATS with MT_DOP=1 and tight memory limit produces spilling error
- Resolved
- relates to
-
IMPALA-3700 Introduce upper limit to hash table size or HashBuckets for Streaming agg
- Resolved