Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiSystem Design for Python JuniorsModulo 1 · Fondamenti di progettazione del sistemaTeorema del CAPpredict10 / 105
+100 XP
Compito
📝 **Compito:** Prevedere il verdetto di quattro righe da un simulatore di partizioni: un sistema CP, un sistema AP, un sistema CP a cui viene chiesto di LEGGERE i dati non aggiornati e un sistema AP a cui viene chiesto di LEGGERE i dati non aggiornati. 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

class Node:
    def __init__(self, name, mode):
        self.name = name
        self.mode = mode               # "CP" or "AP"
        self.partitioned = False
        self.state = {}

    def write(self, key, value):
        if self.partitioned and self.mode == "CP":
            return "refuse"            # would risk inconsistency
        self.state[key] = value
        return "ok"

    def read(self, key):
        if self.partitioned and self.mode == "CP":
            return "refuse"            # better to fail than serve stale
        return self.state.get(key, "missing")

trading = Node("trading", mode="CP")
feed    = Node("feed",    mode="AP")

trading.partitioned = True
feed.partitioned    = True

trading.state = {"price": 100}
feed.state    = {"feed_count": 42}

print(trading.write("price", 101))       # CP partitioned → refuse
print(feed.write("feed_count", 43))      # AP partitioned → ok (local)
print(trading.read("price"))             # CP partitioned read → refuse
print(feed.read("feed_count"))           # AP partitioned read → 43 (fresh local)

# What does this print? Type your prediction.

Cosa stamperà il programma? Scrivi qui:

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…