Combining Active/Active with Multi-Target Replication
- Active/Active with Multi-Target Replication
- SPS04부터 Multiple read-enabed secondaries 가 가능
- 이 경우에 유저는 각각의 read-enabled secondaries에 직접 connection을 붙일 수 있음
- Hint-based statement routing을 사용하기 위해서는 오직 하나의 read-enabled secondaries만 가능함
- global.ini [system_replication] -> hint_based_routing_site_name = <site_name>
- 이전까지는 Tier 2 system에만 가능했으나 Tier 3도 가능
- Take care that system, supposed to use this feautre, are connected directly to Primary (Tier 1)
Hint-based Statement Routing
- Hint-based statement routing
- Connections to a primary system can use hint-based statement routing statement execution
to a secondary system on a per-statement basis. - To indicate that a statement should be hint-based routed to the secondary system
add the hint text WITH HINT(RESULT_LAG('hana_sr')) to the end of the SQL SELECT statement
- SELECT C1, C2 FROM T1 WHERE C3 = 'constant value' WITH HINT(RESULT_LAG('hana_sr'))
- Queries that are executed directly (not prepared) are not hint-based routed even if they contain a hint
- To take advantage of hint-based statement routing, there must be separate prepare and execute operations at the SQLDBC or JDBC level.
- SQLDBC or JDBC (such as SAP HANA Studio, SAP HANA Cockpit, ABAP, or PyDBAPI)를 사용하는 경우에는 별도 설정 없이 사용 가능
- Connections to a primary system can use hint-based statement routing statement execution
- Routing Condition
- 아래 경우에 수행이 Primary에서 수행 됨
- The connection's isolation level is set to repeatable read or serializable
- Secondary 시스템으로의 connection이 불가한 경우 (예, secondary가 down, NW 이슈 등)
- 현재 접속이 Write transaction을 가지는 경우
- The query references temporary tables.
- Result-set을 fetching하는 도중에 routed connection이 drop되면 application에 에러를 return
- 참고] SELECT 만 가능
- 아래 경우에 수행이 Primary에서 수행 됨
- Fallback Routing
- Secondary로 넘어 갔다가 다시 Primary로 돌아오는 경우
- The hint contains a maximum delay time parameter and the secondary system is delayed by more than that amount.
- Secondary에 Memory 사용률이 높은 경우
- Primary에서는 dynamic tiering 관련 access가 없었으나 Secondary에서 수행하려고 보니 dynamic tiering이 요구 되는 경우
- Secondary로 넘어 갔다가 다시 Primary로 돌아오는 경우
- Timeout
- 이전 수행에서 Connection이나 communication 에러로 Primary로 Re-routing 된 경우에는 특정 시간이 지나기 전까지는 그냥 primary에서 수행 됨
- Secondary로의 연결을 재요청 하는 cost를 줄이기 위함
- 특정 시간 = 5 sec ~ 5 min
- 처음 시도 후 재시도 마다 시간이 자동으로 늘어나게 됨
- Multitier system replication system에서 hint-based statement routing은 언제나 Primary - Secondary 간의 구성임
- 이전 수행에서 Connection이나 communication 에러로 Primary로 Re-routing 된 경우에는 특정 시간이 지나기 전까지는 그냥 primary에서 수행 됨
Multi-Target Replication with A/A Use case
- 기본 Use case
- Follow the Sun - optimize latency for workforce
'Database' 카테고리의 다른 글
[HANA] HANA 2.0 SPS04 - Backup & Recovery (0) | 2019.04.17 |
---|---|
[HANA] HANA 2.0 SPS04 - Take-over with Handshake and monitor (0) | 2019.04.17 |
[HANA] HANA 2.0 SPS04 - Invisible Take-over (0) | 2019.04.17 |
[HANA] Log Area Backup (0) | 2019.04.16 |
[HANA] HANA 2.0 SPS04 - Multi-Target Replication (0) | 2019.04.15 |