loopbackio / loopbackio/loopback-next

Update the datasource/database read preference at the run time.

Offen
#9,388 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature
Vorherrschende Sprache
TypeScript
Sterne
5.1k
Forks
1.1k
Ø Merge
2 T. 21 Std.
Gemergte PRs (30 T.)
27

Beschreibung

### Describe the bug

For architectural reasons, I need to update the readPreference for a given method, on a given repository at the fly.
Please note, this change should be done at real time, and impact only this function invocation. However, the readPreferrence at the application level/datasource level should remain intact to "primaryPreferred".

For example,

```Javascript
this.userRepo.find(filter, { readPreference: "secondary" }); // request is still going to primary MongoDB server!
this.userRepo.findById(filter, { readPreference: "primary" });
```

I've tried this, but upon checking mongodb logs, this does not seem to work. All the request are going to primary server.

MongoDB version: v4.2

### Logs

```shell
NA
```

### Additional information

NA

### Reproduction

https://github.com/shivambmgupta/loopback-next/tree/bug/read-preference-update

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem verlinkten Reproduktions-Branch und verfolge die Repository-Aufrufe mit find und findById unter Verwendung von readPreference-Optionen pro Aufruf gegen MongoDB 4.2. Überprüfe, dass eine Präferenz auf Methodenebene nur diesen Aufruf ändert, während die Einstellung der Anwendung und der Datenquelle primaryPreferred bleibt; bestätige die daraus resultierende Serverauswahl in den MongoDB-Logs.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
mongodb, typescript
Bereich
backend, database
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.