- 221
- 18
- CPU
- intel dual core n3050
- Scheda Madre
- asus x540s
- RAM
- 4gb
- GPU
- intel HD
- OS
- Windows 10
Cio che voglio ottenere è poter inserire tre nodi in una lista collegata in modo atomico/consistente.
Simulando un inserimento:
ho una lista in cui sono gia prsenti 5 nodi.
Inserisco il primo nodo,
Inserisco il secondo nodo ma qualcosa non va a buon fine.
Allora utilizzo la funzione di restore che vuol dire cancellare il primo nodo inserito precedentemente, in modo da lasciare la lista collegata come era prima di fatto 5 nodi.
Pensavo di inserire nella lista collegata un campo atomic e un campo transaction cosi so che il primo nodo e il secondo nodo sono inseriti assieme nella stessa transazione.
Se qualcosa va storto negli inserimenti attraversando i nodi della lista quelli con atomic settati 1 posso settarli nuovamente a 0 e ripulire la transazione, di fatto cancellando i nodi nuovi inseriti.
Sto provando a realizzare un sistema dbms e voglio usare le liste collegate per costruire le tabelle e sfruttare i puntatori per salvare i dati in colonne.
L'inserimento nella lista collegata in un certo senso deve rispettare le proprietà acid di un sistema dbms.
Qualche consiglio, come fare?
Simulando un inserimento:
ho una lista in cui sono gia prsenti 5 nodi.
Inserisco il primo nodo,
Inserisco il secondo nodo ma qualcosa non va a buon fine.
Allora utilizzo la funzione di restore che vuol dire cancellare il primo nodo inserito precedentemente, in modo da lasciare la lista collegata come era prima di fatto 5 nodi.
Pensavo di inserire nella lista collegata un campo atomic e un campo transaction cosi so che il primo nodo e il secondo nodo sono inseriti assieme nella stessa transazione.
Se qualcosa va storto negli inserimenti attraversando i nodi della lista quelli con atomic settati 1 posso settarli nuovamente a 0 e ripulire la transazione, di fatto cancellando i nodi nuovi inseriti.
Sto provando a realizzare un sistema dbms e voglio usare le liste collegate per costruire le tabelle e sfruttare i puntatori per salvare i dati in colonne.
L'inserimento nella lista collegata in un certo senso deve rispettare le proprietà acid di un sistema dbms.
Qualche consiglio, come fare?
C:
struct rowlist{
int *atomic;
int *transaction;
/*sono campi anche vuoti che differenza il tipo di dato se intero, stringa, o bit
non avendo in C un modo di allocare dinamicamente il tipo di dato */
int choice; //scelto il tipo di dato 0 int, 1 varchar, 2 bit
int i; //int
char *v; //varchar
bool b; //bit
struct rowlist *next;
};
struct columnlist{
int *atomic; //anche l'intestazione della tabella devono essere consistenti
int *transaction;
int *k; //chiave della colonna
char *n; //nome della colonna
struct rowlist *r; //totale della righe di una colonna come lista collegata
struct columnlist *next;
};
Ultima modifica: