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

Quanlong Huang resolved IMPALA-10788.
-------------------------------------
    Fix Version/s: Impala 4.1
       Resolution: Fixed

> Statestore Scalability document should mention 
> statestore_subscriber_timeout_secs and 
> statestore_heartbeat_tcp_timeout_seconds
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IMPALA-10788
>                 URL: https://issues.apache.org/jira/browse/IMPALA-10788
>             Project: IMPALA
>          Issue Type: Documentation
>            Reporter: Quanlong Huang
>            Assignee: Quanlong Huang
>            Priority: Major
>             Fix For: Impala 4.1
>
>
> The current document about statestore scalability is 
> [http://impala.apache.org/docs/build/html/topics/impala_scalability.html#ariaid-title3]
> We should add statestore_heartbeat_tcp_timeout_seconds and 
> statestore_subscriber_timeout_secs to the doc. They also impact the heartbeat 
> timeout detection. Incorrect settings may result in false positive liveness 
> dection and queries failed by "Cancelled due to unreachable impalad(s)" error.
> Current document:
>  ---------------------------------------------------
> h3. Scalability Considerations for the Impala Statestore
> Before Impala 2.1, the statestore sent only one kind of message to its 
> subscribers. This message contained all updates for any topics that a 
> subscriber had subscribed to. It also served to let subscribers know that the 
> statestore had not failed, and conversely the statestore used the success of 
> sending a heartbeat to a subscriber to decide whether or not the subscriber 
> had failed.
> Combining topic updates and failure detection in a single message led to 
> bottlenecks in clusters with large numbers of tables, partitions, and HDFS 
> data blocks. When the statestore was overloaded with metadata updates to 
> transmit, heartbeat messages were sent less frequently, sometimes causing 
> subscribers to time out their connection with the statestore. Increasing the 
> subscriber timeout and decreasing the frequency of statestore heartbeats 
> worked around the problem, but reduced responsiveness when the statestore 
> failed or restarted.
> As of Impala 2.1, the statestore now sends topic updates and heartbeats in 
> separate messages. This allows the statestore to send and receive a steady 
> stream of lightweight heartbeats, and removes the requirement to send topic 
> updates according to a fixed schedule, reducing statestore network overhead.
> The statestore now has the following relevant configuration flags for the 
> statestored daemon:
> {{-statestore_num_update_threads}} 
>  The number of threads inside the statestore dedicated to sending topic 
> updates. You should not typically need to change this value.
>  *Default:* 10
> {{-statestore_update_frequency_ms}} 
>  The frequency, in milliseconds, with which the statestore tries to send 
> topic updates to each subscriber. This is a best-effort value; if the 
> statestore is unable to meet this frequency, it sends topic updates as fast 
> as it can. You should not typically need to change this value.
>  *Default:* 2000
> {{-statestore_num_heartbeat_threads}} 
>  The number of threads inside the statestore dedicated to sending heartbeats. 
> You should not typically need to change this value.
>  *Default:* 10
> {{-statestore_heartbeat_frequency_ms}} 
>  The frequency, in milliseconds, with which the statestore tries to send 
> heartbeats to each subscriber. This value should be good for large catalogs 
> and clusters up to approximately 150 nodes. Beyond that, you might need to 
> increase this value to make the interval longer between heartbeat messages.
>  *Default:* 1000 (one heartbeat message every second)
> If it takes a very long time for a cluster to start up, and impala-shell 
> consistently displays {{This Impala daemon is not ready to accept user 
> requests}}, the statestore might be taking too long to send the entire 
> catalog topic to the cluster. In this case, consider adding 
> {{--load_catalog_in_background=false}} to your catalog service configuration. 
> This setting stops the statestore from loading the entire catalog into memory 
> at cluster startup. Instead, metadata for each table is loaded when the table 
> is accessed for the first time.
> -----------------------------------------------------
>  *We need to add these:*
>  -----------------------------------------------------
>  {{-statestore_heartbeat_tcp_timeout_seconds}}
>  The time after which a heartbeat RPC to a subscriber will timeout. This 
> setting protects against badly hung machines that are not able to respond to 
> the heartbeat RPC in short order. Increase this if there are intermittent 
> heartbeat RPC timeouts shown in statestore's log. You can reference the max 
> value of "statestore.priority-topic-update-durations" metric on statestore to 
> get a reasonable value. Note that priority topic updates are assumed to be 
> small amounts of data that take a small amount of time to process (similar to 
> the heartbeat complexity).
>  *Default:* 3
> {{-statestore_max_missed_heartbeats}}
>  Maximum number of consecutive heartbeat messages an impalad can miss before 
> being declared failed by the statestore. You should not typically need to 
> change this value.
>  *Default:* 10
> {{-statestore_subscriber_timeout_secs}}
>  The amount of time (in seconds) that may elapse before the connection with 
> the statestore is considered lost. This should be comparable to 
> {{(statestore_heartbeat_frequency_ms + 
> statestore_heartbeat_tcp_timeout_seconds) * 
> statestore_max_missed_heartbeats}}, so subscribers won't reregister 
> themselves too early and allow statestore to resend heartbeats. You can also 
> reference the max value of "statestore-subscriber.heartbeat-interval-time" 
> metrics on impalads to get a reasonable value.
>  *Default:* 30
>  -----------------------------------------------------



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to