4paradigm / 4paradigm/OpenMLDB

`CallProcedure` request may not be routed to the best tablet when `partitionnum` > 1

Aperta
#1,604 2 commenti 0 reazioni 1 assegnatario Rivendicata da @zhanghaohit Vedi su GitHub
enhancement
Lingua principale
C++
Stelle
1.7k
Fork
331
Merge medio
12g 12h
PR unite (30g)
1

Descrizione

**Bug Description**
When the `partitionnum` of a table is > 1, `CallProcedure` request is routed to a random tablet.

Current logic is:
`pid = rand_.Uniform(pid_num);`

The result is wrong but we may have to fetch data from remote tablet to the routed tablet.

**Expected Behavior**
`CallProcedure` request should be routed to the tablet based on the pk.

**Steps to Reproduce**

1. `SQLSDKQueryTest.RequestProcedureTest`: change create statement with `options(partitionnum=8)`
2. will generate a proxy task

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

The issue points to a routing logic in the code where `pid = rand_.Uniform(pid_num);` is used. Look for the `CallProcedure` request handling and the tablet routing logic. The test `SQLSDKQueryTest.RequestProcedureTest` needs to be modified to use `options(partitionnum=8)` to reproduce. Understanding the partitioning and primary key (pk) based routing is key. Check how other requests route based on pk to see the pattern.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
sql
Ambito
backend, databases
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.