You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Joe McDonnell (Jira)" <ji...@apache.org> on 2024/11/15 17:04:00 UTC

[jira] [Resolved] (IMPALA-13179) Disable tuple caching when using non-deterministic functions

     [ https://issues.apache.org/jira/browse/IMPALA-13179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joe McDonnell resolved IMPALA-13179.
------------------------------------
    Fix Version/s: Impala 4.5.0
       Resolution: Fixed

> Disable tuple caching when using non-deterministic functions
> ------------------------------------------------------------
>
>                 Key: IMPALA-13179
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13179
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Frontend
>    Affects Versions: Impala 4.5.0
>            Reporter: Joe McDonnell
>            Assignee: Joe McDonnell
>            Priority: Major
>             Fix For: Impala 4.5.0
>
>
> Some functions are non-deterministic, so tuple caching needs to detect those functions and avoid caching at locations that are non-deterministic.
> There are two different pieces:
>  # Correctness: If the key is constant but the results can be variable, then that is a correctness issue. That can happen for genuinely random functions like uuid(). It can happen when timestamp functions like now() are evaluated at runtime.
>  # Performance: The frontend does constant-folding of functions that don't vary during executions, so something like now() might be replaced by a hard-coded integer. This means that the key contains something that varies frequently. That can be a performance issue, because we can be caching things that cannot be reused. This doesn't have the same correctness issue.
> This ticket is focused on correctness piece. If uuid()/now()/etc are referenced and would be evaluated at runtime, the location should be ineligible for tuple caching.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)