Sto lavorando su una memoria nella cache del disco e sto iniziando a pensare a strategie per ridimensionare il sistema. Al momento il sistema persiste i dati creando un file per ogni coppia di valori chiave, dove la chiave è il nome file e il suo contenuto è il valore. Voglio essere in grado di scalare il sistema orizzontalmente ma non sono sicuro del miglior approccio. Al momento sto pensando di fare in modo che ogni nodo memorizzi alcuni valori nella cache. Ci sarebbe un nodo di registro che verrebbe notificato quando un nuovo valore è stato aggiunto alla cache o quando un valore è stato cancellato dalla cache. Il client richiederebbe questo registro quando si collega per la prima volta alla cache in modo da sapere da dove ottenere i valori. Una scrittura sulla cache restituirebbe a quale server è stato scritto il valore, in modo che il client possa sapere da dove leggere il valore (ovviamente ciò favorisce la prestazione di lettura rispetto alle prestazioni di scrittura in quanto dovrebbe esserci un nodo che ha delegato le richieste di scrittura)
È un buon approccio? o sono lontano dal segno
Modifica (altri dettagli):
Non sono ancora arrivato molto lontano, ma mi piacerebbe costruirlo in modo tale da poter gestire milioni di file. Mi piacerebbe anche costruirlo in modo tale che possa essere eseguito utilizzando un nodo o il numero di nodi che può essere fornito. So che non chiarisce molto le cose. Sto solo cercando di ottenere alcune idee di base in modo che, mentre lo costruisco, mi stia dirigendo almeno nella giusta direzione. Mi sto anche chiedendo se qualcuno abbia delle buone intuizioni su come i sistemi esistenti fanno cose del genere. Per esempio, so che Casandra scala in orizzontale ma non è stato in grado di trovare una grande spiegazione di come