FI106989B - Method for writing and reading data - Google Patents
Method for writing and reading data Download PDFInfo
- Publication number
- FI106989B FI106989B FI972499A FI972499A FI106989B FI 106989 B FI106989 B FI 106989B FI 972499 A FI972499 A FI 972499A FI 972499 A FI972499 A FI 972499A FI 106989 B FI106989 B FI 106989B
- Authority
- FI
- Finland
- Prior art keywords
- data
- database
- reading
- value
- counter
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
106989106989
Menetelmä tietojen kiijoittamiseksi ja lukemiseksi Tämän keksinnön kohteena on menetelmä tietojen kiijoittamiseksi ja lukemiseksi tietokannasta jäijestelmässä, jossa määrättyä tietokokonaisuutta 5 luetaan tietokannasta paloittain, jonka jälkeen tietokokonaisuus kootaan erikseen luetuista paloista, ja jossa järjestelmässä tietokannan tiedot voivat muuttua tietokokonaisuuden erillisten palasten lukemisen välissä. Keksinnön kohteena on lisäksi järjestelmä, johon kuuluu muistivälineitä, kirjoitusvälineitä tietojen kirjoittamiseksi muistivälineisiin, lukuvälineitä muistivälineisiin tallennetun tieto-10 kokonaisuuden lukemiseksi paloittain, ja puskurointivälineitä tietokokonaisuuden kokoamiseksi lukuvälineiden lukemista paloista.The present invention relates to a method for locating and reading data from a database in a rigid system in which a particular data set 5 is read from the database in chunks, after which the data set is compiled from separately read chunks, and in which system database data can change The invention further relates to a system comprising memory means, writing means for writing data to memory means, reading means for reading piece by piece of data stored in memory means, and buffering means for assembling a data set from reading pieces of reading means.
Keksintö liittyy sellaiseen tietokantajärjestelmään, jossa yhden lu-kutransaktion yhteydessä voidaan lukea vain tietty rajallinen määrä dataa, jolloin tätä suurempien tietokokonaisuuksien lukeminen tietokannasta edellyttää tieto-15 kokonaisuuksien lukemista paloittain. Eräs esimerkki tällaisesta järjestelmästä on (Nokia Telecommunications OY:n) DX-200 puhelinkeskusjärjestelmä, jossa on käytössä TDMS-tietokantajärjestelmä. TDMS-tietokantajärjestelmässä on rajoitus, jonka seurauksena yhden luku- tai kirjoitustransaktion rajapinnassa voi siirtyä dataa vain noin yksi kilotavu. Koska tietokannasta kuitenkin joudutaan lu-20 kemaan tätä suurempia tietokokonaisuuksia on kyseiset tietokokonaisuudet luettava tietokannasta paloittain. Mikäli tällaisessa tietokantajärjestelmässä ei ole estetty tietojen kirjoittamista tietokantaan määrätyn tietokokonaisuuden lukemisen ajaksi on vaarana se, että tietokokonaisuuden palasten lukemisen välissä saattaa tietokannan tieto muuttua, siten että luettu tietokokonaisuus ei vält-25 tämättä olekaan oikea, koska jokin sen paloista on muuttunut lukemisen aikana.The invention relates to a database system in which only a limited amount of data can be read in one read transaction, whereby reading larger sets of data from a database requires reading pieces of information in increments. One example of such a system is the DX-200 telephone exchange system (of Nokia Telecommunications OY), which utilizes a TDMS database system. There is a limitation in the TDMS database system, which results in only about one kilobyte of data being transmitted at the interface of a single read or write transaction. However, because larger data sets need to be read from the database, these data sets must be read from the database piece by piece. Unless such a database system prevents writing data to a database for the duration of reading a given set of data, there is a risk that between reading pieces of the set the database information may change so that the read set may not be correct because some of its pieces have changed during reading.
• ·• ·
Kaikkien kirjoitusoperaatioiden kieltäminen koko lukuprosessin ajaksi ei usein-:**.· kaan ole mahdollista tai mielekästä koska se laskee merkittävästi tietokantajär- jestelmän suorituskykyä.Denying all write operations for the entire reading process is often -: **. · Not possible or meaningful as it significantly reduces the performance of the database system.
Ennestään tunnetaan ratkaisu paloittain luetun tietokokonaisuuden 30 tarkistamiseksi laskemalla tarkistussumma koko tietokokonaisuuden yli. Mikäli .···. kaikkia palasia luettaessa saadaan sama tarkistussumma oletetaan tietojen lu kemisen onnistuneen virheettömästi. Tämän tunnetun ratkaisun merkittävä heik- < kous on kuitenkin se, että tarkistussummien laskeminen vaatii paljon laskenta-tehoa. Lisäksi tietojen muutos ei aina välttämättä näy tarkistussummassa esi-35 merkiksi sen vuoksi, että kaksi muutosoperaatiota voi kumota toisensa tarkistus-summan laskennan kannalta.A solution is known in the art for verifying a piece-by-piece data set by calculating a checksum over the entire data set. If. ···. reading all pieces gives the same checksum, assuming that the data was successfully read. However, a major disadvantage of this known solution is that calculating checksums requires a lot of computational power. In addition, a change in data may not always appear in the checksum as an example, since two change operations may override each other for the purpose of calculating the checksum.
• » « · 2 106989• »« · 2 106989
Ennestään tunnetaan edelleen ratkaisu, jossa tietokokonaisuuden yhteydessä tallennetaan tietokantaan aikaleima joka osoittaa milloin kyseistä tietokokonaisuutta on viimeksi muutettu. Tällöin paloittain luetun tietokokonaisuuden oikeus voidaan tarkistaa aikaleimaa hyödyntämällä, eli jos aikaleima ei 5 ole muuttunut lukuoperaatioiden välissä on luku onnistunut. Tämän tunnetun ratkaisun heikkous on se, että sen luotettava soveltaminen edellyttää hyvin usein päivitettävän kellon hyödyntämistä, erityisesti sellaisessa järjestelmässä, jossa kirjoitusoperaatioita voidaan tehdä hyvin nopeasti. Tällaisen usein päivitettävän kellon ylläpitäminen vaatii kuitenkin merkittävästi laskentakapasiteettia, 10 koska jos kelloa päivitetään liian hitaasti on olemassa vaara, että eri kirjoitusoperaatioilla kirjoitetut tiedot saavat saman aikaleiman.A solution is known in the art where, in connection with a data set, a time stamp is stored in the database indicating when the data set was last modified. In this case, the right of the fragmented data set can be checked by using a time stamp, that is, if the time stamp has not changed between read operations, the number is successful. The disadvantage of this known solution is that its reliable application requires the use of a frequently updated clock, especially in a system where writing operations can be performed very quickly. However, maintaining such a frequently updated clock requires a significant amount of computing capacity 10, because if the clock is updated too slowly, there is a risk that the data written by different writing operations will receive the same time stamp.
Ennestään tunnetaan lisäksi ratkaisu, jossa hyödynnetään kahta tietokantakohtaista laskuria, joista ensimmäisen arvoa muutetaan kunkin kirjoitus-operaation alussa ja toisen arvoa muutetaan kunkin kirjoitusoperaation lopussa. 15 Tällöin tietojen lukemisen yhteydessä tarkistetaan aluksi onko ensimmäisen ja toisen laskurin arvo sama. Mikäli näin ei ole merkitsee se, että tietokantaan ollaan parhaillaan kirjoittamassa tietoja, jolloin lukeminen keskeytetään. Tämän tunnetun ratkaisun heikkous on se, että se lukitsee koko tietokannan kirjoitusoperaatioiden ajaksi, eli tietoja ei voida lukea edes täysin eri tietokannan osasta 20 (eri tietokokonaisuudesta) kun mihin meneillään oleva kiijoitusoperaatio kohdistuu.Further, a solution is known which utilizes two database-specific counters, the first of which is changed at the beginning of each write operation and the second is changed at the end of each write operation. In this case, when reading the data, it is first checked whether the values of the first and the second counter are the same. If this is not the case, then the data is being written to the database and reading will be interrupted. The disadvantage of this known solution is that it locks the entire database during write operations, that is, the data cannot be read even in a completely different part of the database 20 (a different set of data) when the current placement operation is targeted.
Tämän keksinnön tarkoitus on ratkaista edellä selostettu ongelma ja tarjota käyttöön entistä luotettavampi ja resursseja säästävämpi ratkaisu tietojen lukemiseksi ja kirjoittamiseksi tietokantaan. Nämä päämäärät saavutetaan kek-25 sinnön mukaisella menetelmällä, jolle on tunnusomaista, että järjestetään tieto- • * · ·;·*·. kannassa oleville tietokokonaisuuksille omat laskurit, muutetaan määrätyn tieto- • ♦ ♦ ’· "· kokonaisuuden laskurin arvoa kun tietokantaan kirjoitetaan sellaisia tietoja jotka : ’** muuttavat kyseisen tietokokonaisuuden tietoja, tarkistetaan tietokokonaisuuden • · « : laskurin arvo tietokokonaisuuden ensimmäisen palan lukemisen yhteydessä ja 30 viimeisen palan lukemisen yhteydessä, ja päätellään että tietokokonaisuuden ·:··: lukeminen on epäonnistunut jos laskurin arvo on muuttunut mainittujen tarkis- .·**: tusajankohtien välisenä aikana.The object of the present invention is to solve the problem described above and to provide a more reliable and resource efficient solution for reading and writing data to a database. These objects are achieved by a method according to the invention, characterized in that information is provided. • ♦ ♦ '· "· the value of the counter of a given data set when writing data that:' ** modifies the data of that data set, checks the value of the data set • ·«: the value of the counter at the first reading of the data set and 30 when reading the last piece, and it is concluded that the data set ·: ··: has failed to read if the counter value has changed between these check times.
Keksinnön kohteena on lisäksi järjestelmä, jossa keksinnön mukaista menetelmää voidaan hyödyntää. Keksinnön mukaiselle järjestelmälle on tun- '*'·* 35 nusomaista, että järjestelmään kuuluu tietokokonaisuuskohtaisia laskureita, että ·:·: kirjoitusvälineet on sovitettu muuttamaan kunkin muistivälineisiin suoritettavan « · * • « 3 106989 kirjoittamisen yhteydessä niiden tietokokonaisuuksien laskureiden arvoja, joihin tietokokonaisuuksiin kirjoitusvälineiden kirjoittamat tiedot vaikuttavat, ja että lu-kuvälineet on sovitettu tarkistamaan tietokokonaisuuden laskurin arvon kyseisen tietokokonaisuuden ensimmäisen palan lukemisen yhteydessä ja viimeisen pa-5 lan lukemisen yhteydessä ja indikoimaan lukemisen epäonnistuneen mikäli tietokokonaisuuden laskurin arvo on muuttunut mainittujen tarkistuksien välisenä aikana.The invention further relates to a system in which the method according to the invention can be utilized. The system according to the invention is characterized by '*' · * 35 characterized in that the system includes data set-specific counters, that ·: ·: the writing means are adapted to change the values of the counters of the data sets to which the writes are written. the data is effective, and that the means for reading are adapted to check the value of the data set counter at reading the first piece of that data set and at the last reading of the data set and to indicate reading failure if the data set counter value has changed between said checks.
Keksintö perustuu siihen ajatukseen kun kullekin tietokannasta luettavalle tietokokonaisuudelle ylläpidetään omaa erillistä transaktiolaskuria, ja kun 10 niiden tietokokonaisuuksien laskureita päivitetään aina kun tietokantaan tehdään kirjoitusoperaatioita jotka vaikuttavat kyseisiin tietokokonaisuuksiin, helpottuu paloittain luettujen tietokokonaisuuksien oikeellisuuden selvittäminen merkittävästi, koska tällöin oikeellisuus voidaan selvittää vertaamalla luetun tietokokonaisuuden transaktiolaskurin arvoa lukemisen aloituksen yhteydessä sen arvoon 15 lukemisen päättyessä. Jos laskurin arvo on palasten lukemisen aikana muuttunut, merkitsee se että luettu tietokokonaisuus on virheellinen. Keksinnön mukaisen ratkaisun merkittävimmät edut ovat näin ollen, että se ei lukitse koko tietokantaa tietojen kirjoittamisen ajaksi, että sen avulla saadaan entistä luotettavampi tieto siitä onko tietokokonaisuus muuttunut lukemisen aikana, ja että lu-20 kemisen onnistumisen tarkistus vaatii erittäin vähän resursseja koska se ei edellytä kellotoiminnon ylläpitämistä tai erityisten tarkistussummien laskentaa.The invention is based on the idea of maintaining a separate transaction counter for each data set read from a database, and updating the counters of 10 data sets each time writing operations are performed on a database that affect those data entities. at start to its value at the end of reading 15. If the value of the counter has changed during the reading of the chunks, it means that the read dataset is invalid. The major advantages of the solution according to the invention are thus that it does not lock the entire database while writing data, provides more reliable information as to whether the data set has changed during reading and that very little resources are needed to check the reading success. or calculating specific checksums.
Eräässä keksinnön mukaisen menetelmän edullisessa suoritusmuodossa tietokannan yhteyteen on järjestetty tietokantakohtainen laskuri jonka ar-':., voa päivitetään aina kun tietokantaan tehdään kirjoitusoperaatio, jonka jälkeen '·'/ 25 niiden tietokokonaisuuksien laskureita joihin suoritettu kirjoitusoperaatio vaikut- .••ϊ taa muutetaan vastaamaan tietokantakohtaisen laskurin uutta arvoa. Tässä suo- • · :Λ: ritusmuodossa tietokokonaisuuskohtaiset laskurit voivat muodostua muistipai- • '·· koista joihin kokonaislaskurin arvo tallennetaan, koska niiltä ei edellytetä varsi- naisia laskuritoimintoja. Näin ollen tietokantakohtaisella laskurilla saadaan ai-30 kaan eräänlainen kellofunktio, jonka avulla voidaan jälkeenpäin selvittää missä ....: järjestyksessä tietokannan eri tietokokonaisuuksia on päivitetty.In a preferred embodiment of the method of the invention, the database is provided with a database-specific counter whose ar - ':, power is updated each time a write operation is performed on the database, followed by' · '/ 25 counters of the data sets affected new counter value. In this filter mode, data set-specific counters may consist of memory locations where the total counter value is stored, since they do not require actual counter functions. Thus, the database-specific counter provides a kind of clock function which can later be used to find out in what order the different data sets in the database have been updated.
.···. Keksinnön mukaisen menetelmän ja järjestelmän edulliset suoritus muodot ilmenevät oheisista epäitsenäisistä patenttivaatimuksista 2 ja 4 - 5.. ···. Preferred embodiments of the method and system of the invention are disclosed in the appended dependent claims 2 and 4 to 5.
’: * ’: Keksintöä selostetaan seuraavassa lähemmin esimerkinomaisesti vii- • · * 35 täten oheisiin kuvioihin, joista «· · • · · » · « 4 106989 kuvio 1 esittää vuokaaviota keksinnön mukaisen menetelmän ensimmäisestä edullisesta suoritusmuodosta, kuvio 2 esittää lohkokaaviota keksinnön mukaisen järjestelmän ensimmäisestä edullisesta suoritusmuodosta, 5 kuvio 3 esittää vuokaaviota keksinnön mukaisen menetelmän toi sesta edullisesta suoritusmuodosta, ja kuvio 4 esittää lohkokaaviota keksinnön mukaisen järjestelmän toisesta edullisesta suoritusmuodosta.The invention will now be described in more detail by way of example with reference to the accompanying drawings, in which: FIG. 1 is a flow chart of a first preferred embodiment of the method of the invention, FIG. 2 is a block diagram of the system of the invention. of the first preferred embodiment, Figure 3 shows a flow chart of a second preferred embodiment of the method of the invention, and Figure 4 shows a block diagram of a second preferred embodiment of the system of the invention.
Kuvio 1 esittää vuokaaviota keksinnön mukaisen menetelmän en-10 simmäisestä edullisesta suoritusmuodosta. Kuvion 1 vuokaaviota voidaan hyödyntää tietokannan tietojen lukemisen ja kirjoittamisen ohjaamisessa tietokannassa, josta tietokokonaisuudet joudutaan lukemaan palasina.Figure 1 shows a flow chart of a first preferred embodiment of the method of the invention. The flow chart of Figure 1 can be utilized to control the reading and writing of database data in a database from which data sets must be read in pieces.
Lohkossa A järjestelmään järjestetään tietokokonaisuuskohtaisia laskureita. Yksittäinen tietokokonaisuuslaskuri voi muodostua esimerkiksi muistipai-15 kasta, johon tallennettua numeroarvoa kirjoitusprosessi kasvattaa jokaisen sellaisen kirjoitustapahtuman yhteydessä, jossa kirjoitetaan kyseiseen tietokokonaisuuteen vaikuttavia tietoja.In block A, data set-specific counters are arranged in the system. For example, a single data set counter may consist of a memory location 15 where the number value stored is incremented by the writing process for each write event that writes data affecting that data set.
Lohkossa B tarkistetaan onko kyseisellä hetkellä tietoja lukematta. Eli jos tietokannasta on jokin tietokokonaisuus kokonaan lukematta tai vaihtoehtoi-20 sesti jonkin tietokokonaisuuden yksi tai useampi pala on lukematta siirrytään lohkoon C. Jos tietoja ei ole lukematta siirrytään lohkoon J.Block B checks whether the data is currently unread. That is, if a database is completely unreadable from the database, or alternatively one or more chunks of a data set are unread, proceed to block C. If unread, proceed to block J.
Lohkossa C tarkistetaan onko kyseessä uuden tietokokonaisuuden ensimmäisen palasen lukeminen. Jos näin on siirrytään lohkoon D.In block C, it is checked whether it is a reading of the first piece of a new data set. If so, proceed to block D.
Lohkossa D tarkistetaan uuden luettavan tietokokonaisuuden en-25 simmäisen palan lukemisen yhteydessä mikä on kyseisen tietokokonaisuuden ··· ·;**·, laskurin arvo. Kyseinen arvo tallennetaan esimerkiksi tiettyyn muistipaikkaan • · · *· “· josta se on myöhemmin luettavissa.In block D, when reading the first piece of en-25 of a new readable set, the value of the ··· ·; ** · counter for that data set is checked. For example, this value is stored in a specific memory location • · · * · “· where it can be read later.
• · : *·* Lohkossa E luetaan seuraavaksi vuorossa oleva tietokokonaisuuden ; palanen. Tällöin tietokokonaisuudesta luetaan luonnollisesti mahdollisimman 30 suuri osa kerrallaan, eli jos kyseessä on pieni tietokokonaisuus saattaa sen lu-·:··: keminen onnistua yhdellä kertaa. Jos sitävastoin kyseessä on suurempi tietoko- .***: konaisuus jota ei voida kerralla lukea, luetaan siitä kerralla mahdollisimman suu- ti* • . ri osa.• ·: * · * In block E, the next data set in turn is read; piece. In this case, of course, as much as 30 large pieces of data are read at a time, that is, in the case of a small data set, it can be read at once: · · ·: If, on the other hand, it is a larger database. ***: an entity that cannot be read at once, it will be read as quickly as possible * •. ri part.
Lukemisen jälkeen lohkossa F tarkistetaan oliko luettu palanen vii-35 meinen. Jos tällöin havaitaan että kyseessä oli tietokokonaisuuden viimeinen palanen siirrytään lohkoon G jossa tarkistetaan luetun tietokokonaisuuden las- • · · « * • · 5 106989 kurin arvo. Tämän jälkeen verrataan kyseisen laskurin arvoa ensimmäisen palan lukemisen yhteydessä olleeseen saman laskurin arvoon (lohko D). Mikäli tällöin havaitaan että laskurin arvo on tietokokonaisuuteen kuuluvien palojen lukemisen aikana muuttunut siirrytään lohkosta H lohkoon I, jossa indikoidaan että lukemi-5 nen on epäonnistunut. Tämä voi tapahtua esimerkiksi siten, että lukuvälineet merkitsevät kyseisen tietokokonaisuuden ei-luetuksi, jonka jälkeen ne seuraa-vassa mahdollisessa tilanteessa lukevat sen alusta uudelleen.After reading, in block F, it is checked whether the read piece was last 35 minutes. If it is found that this was the last piece of the data set, it proceeds to block G, where the computation value of the read data set is checked. The value of that counter is then compared with the value of the same counter at block one (block D). If it is found that the counter value has changed during the reading of the pieces belonging to the data set, proceeding from block H to block I, indicating that the reading has failed. This can be done, for example, by reading the data set as unread by the reading means, and then re-reading its beginning in the following possible situation.
Lohkossa J tarkistetaan onko tietoja kirjoittamatta. Mikäli tietoja on kirjoittamatta siirrytään lohkoon K jossa kirjoittamattomat tiedot kirjoitetaan tieto-10 kantaan.In block J, it is checked whether data has been written. If there is no data to be written go to block K where the unwritten data is written to the data base 10.
Kun tiedot on kirjoitettu siirrytään lohkoon L, jossa päivitetään kaikkien niiden tietokokonaisuuksien laskureiden arvoja joihin kirjoitetut tiedot vaikuttavat. Ne laskurit joita tiettyjä tietoja kirjoitettaessa tulisi päivittää voidaan selvittää esimerkiksi siten, että tietokannan tietokokonaisuuksista ylläpidetään indek-15 siä, josta ilmenee mihin kaikkiin tietokokonaisuuksiin määrätty tietokantaan kirjoitettava tieto liittyy.When the data is written, it proceeds to block L, where the values of the counters of all data sets affected by the written data are updated. The counters that should be updated when writing certain data can be resolved, for example, by maintaining an index of 15 data sets for the database to which all data sets are associated with the data to be written to the database.
Kuvio 2 esittää lohkokaaviota keksinnön mukaisen järjestelmän ensimmäisestä edullisesta suoritusmuodosta. Kuvion 2 tapauksessa ohjain 1 on yhdistetty järjestelmän muihin osiin kolmen tiedonsiirtoyhteyden L1 - L3 välityk-20 sellä. Ohjain 1 vastaanottaa ja lähettää näin ollen muistiin M tallennettuja tietoja kyseisten tiedonsiirtoyhteyksien välityksellä.Fig. 2 is a block diagram of a first preferred embodiment of a system according to the invention. In the case of Fig. 2, the controller 1 is connected to the other parts of the system by means of three communication links L1 to L3. Controller 1 thus receives and transmits information stored in memory M over these communication links.
Tietokantaan kirjoitettavaksi tarkoitetut tiedot kirjoitetaan muistiin M kirjoitusyksikön 2 välityksellä. Kyseinen kirjoitusyksikkö kirjoittaa aluksi vastaanottamansa tiedot tietokantaan, jonka jälkeen se tarkistaa mihin tietokokonai-25 suuksiin tiedot vaikuttivat.The data to be written to the database is written to memory M via the writing unit 2. The writing unit initially writes the received data to a database and then checks which data entities were affected by the data.
• · ·• · ·
Jos esimerkinomaisesti oletetaan, että kirjoitusyksikkö 2 kirjoittaa tie- • · · *· '*· don DATA1 muistiin M havaitaan kuviosta 2 että kyseinen tieto vaikuttaa tieto- : *** kokonaisuuksiin 1, 2 ja n. Näin ollen kirjoitusyksikkö 2 päivittää kyseisten tieto- • · · v : kokonaisuuksien laskureita C1, C2 ja Cn kasvattamalla niiden arvoa yhdellä.If, by way of example, it is assumed that the writing unit 2 writes to the data M * in memory DATA1, it can be seen from Figure 2 that this information affects the data entities: 1, 2, and n. • · · v: Counters C1, C2, and Cn of entities by increasing their value by one.
30 Vastaavasti jos oletetaan, että kirjoitusyksikkö 2 kirjoittaa tiedon DATA3 muistiin ·:**: M päivittää se laskureita C1 ja Cn koska tieto DATA3 vaikuttaa tietokokonai- ·***· suuteen 1 ja tietokokonaisuuteen n. Tieto DATA3 voi olla esimerkiksi matkavies- <· t tinjärjestelmän tilaajan tilaajatietoihin liittyvä tieto, joka vaikuttaa esimerkiksi niiden ryhmien tietoihin (tietokokonaisuus 1 ja tietokokonaisuus n) joihin kyseinen « · ···* 35 tilaaja kuuluu. Laskurit C1 - Cn voivat muodostua esimerkiksi muistipaikoista, • · I * · « « 6 106989 jolloin kiijoitusyksikkö 2 niiden päivittämisen yhteydessä aluksi käy tarkistamassa niihin tallennetun arvon ja tämän jälkeen tallentaa niihin uuden arvon.30 Similarly, assuming that writer 2 writes data to DATA3 memory ·: **: M updates it to counters C1 and Cn because data DATA3 affects data set · *** · 1 and data set n. Data DATA3 can be, for example, < t subscriber system subscriber data, which affects, for example, the data of the groups (data set 1 and data set n) to which the «« · ··· * 35 subscriber belongs. Counters C1 to Cn may consist of, for example, memory locations, whereupon the location unit 2, when updating them, first checks their stored value and then stores a new value.
Tietojen lukemisen yhteydessä lukuyksikkö 3 tarkistaa ensimmäisen palan lukemisen yhteydessä mikä on kyseisen tietokokonaisuuden laskurin, 5 esim. C2 alkuarvo. Tämän jälkeen lukuyksikkö 3 lukee tietokokonaisuutta pala palalta (mahdollisimman suurina paloina). Kunkin luetun palan lukuyksikkö 3 tallentaa muistiin. Kun viimeinen kyseiseen tietokokonaisuuteen kuuluva pala on luettu, ja tietokokonaisuus näin ollen on kokonaisuudessaan lukuyksikön 3 muistissa tarkistaa lukuyksikkö uudelleen luetun tietokokonaisuuden laskurin C2 ar-10 von. Mikäli se tällöin havaitsee että laskurin arvo on muuttunut ensimmäisen ja viimeisen palan lukemisen välisenä aikana, merkitsee tämä että tietokokonaisuuden luku on epäonnistunut, jolloin se aloittaa tietokokonaisuuden lukemisen uudelleen alusta. Jos sitävastoin laskurin C2 arvo ei ole muuttunut on luku onnistunut, jolloin lukuyksikkö välittää luetun tietokokonaisuuden edelleen ohjai-15 melle 1 edelleen välitettäväksi jonkin tiedonsiirtoyhteyden L1 - L3 välityksellä.When reading data, the reading unit 3 checks the first value of the counter, 5 e.g. C2, of that data set when reading the first piece. The reading unit 3 then reads the data set piece by piece (as large pieces as possible). The reading unit 3 for each piece read is stored in memory. When the last piece of the data set in question has been read, and thus the data set is completely in the memory of the reading unit 3, the reading unit checks the counter C2 ar-10 of the read-backed data set. If it then detects that the value of the counter has changed between reading the first and last chunks, this means that the data set read has failed, in which case it starts to read the data set again from the beginning. If, on the other hand, the value of counter C2 has not changed, the reading is successful, whereupon the reading unit forwards the read data set to the controller 1 for further transmission via a communication link L1 to L3.
Kuvio 3 esittää vuokaaviota keksinnön mukaisen menetelmän toisesta edullisesta suoritusmuodosta. Kuvion 3 vuokaavio vastaa hyvin pitkälle kuvion 1 vuokaaviota. Kyseiset vuokaaviot eroavat kuitenkin toisistaan sikäli, että kuvion 3 vuokaavion yhteydessä ylläpidetään tietokokonaisuuskohtaisten 20 laskureiden lisäksi myös tietokantakohtaista laskuria.Figure 3 shows a flow chart of another preferred embodiment of the method according to the invention. The flow chart of Figure 3 is very similar to the flow chart of Figure 1. However, these flowcharts differ from each other in that, in addition to the data set-specific counters 20, the database-specific counter is maintained in connection with the flow chart of Figure 3.
Näin ollen kun lohkossa K' kirjoitetaan tietoja tietokantaan päivitetään tämän jälkeen lohkossa L' tietokantakohtaista laskuria, esimerkiksi kasvattamalla sen arvoa yhdellä. Kyseistä laskuria päivitetään näin ollen aina kun tietokantaan kirjoitetaan tietoja.Thus, when data is written to the database in block K ', the database-specific counter is then updated in block L', for example by increasing its value by one. This counter is therefore updated each time data is written to the database.
25 Lohkossa M' päivitetään kaikkien niiden tietokokonaisuuksien lasku- •;*:c reiden arvoja joihin kirjoitetut tiedot vaikuttavat. Päivittäminen toteutetaan siten, • · « että tietokantakohtaisen laskurin uusi arvo (jonka se on saanut lohkossa L') ko- : *·* pioidaan kaikkien päivitettävien tietokokonaisuuksien laskureiden arvoksi. Näin • »« v ; ollen tietokokonaisuuksien laskureiden arvoista voidaan haluttaessa selvittää 30 missä järjestyksessä tietokokonaisuuksia on päivitetty.25 In block M ', the values of the computation of all data sets •; *: c are updated. The update is performed by · · «such that the new value of the database-specific counter (obtained in block L ') is: * · * counted as the counter value for all data sets to be updated. Thus • »« v; thus, the values of the counters of the data sets can, if desired, be determined by the order in which the data sets are updated.
·:··: Kuvio 4 esittää lohkokaaviota keksinnön mukaisen järjestelmän toi- ·***? sesta edullisesta suoritusmuodosta. Kuvion 4 lohkokaavio vastaa hyvin pitkälle • . kuvion 2 lohkokaaviota, mutta se poikkeaa siitä sikäli, että kuvion 4 tapauksessa hyödynnetään tietokokonaisuuskohtaisten laskureiden C1 - Cn lisäksi myös tie- • · ‘ · · ·* 35 tokantakohtaista laskuria C.·: ··: Figure 4 is a block diagram showing the operation of the system according to the invention. from the preferred embodiment. The block diagram in Figure 4 corresponds very well to •. 2 is a block diagram, but is different in that in the case of Figure 4, in addition to the data set-specific counters C1-Cn, the database-specific counters C are also utilized.
♦ « « ·< · * » • ♦ 106989 7♦ «« · <· * »• ♦ 106989 7
Tietoja kirjoitettaessa muistiin M' päivittää kirjoitusyksikkö 2' aluksi tietokantakohtaista laskuria C, esimerkiksi kasvattamalla sen arvoa yhdellä. Tämän jälkeen kirjoitusyksikkö 2' päivittää kaikkien niiden tietokokonaisuuksien laskureiden C1 - Cn arvoja, joihin kirjoitettavat tiedot vaikuttavat, vastaamaan 5 tietokantakohtaisen laskurin C uutta arvoa.When writing data to memory M ', the writing unit 2' initially updates the database-specific counter C, for example, by increasing its value by one. Subsequently, the writing unit 2 'updates the values C1 - Cn of the counters of all data sets affected by the data to be written to correspond to the new value of the 5 counters C specific to the database.
On ymmärrettävä, että edellä oleva selitys ja siihen liittyvät kuviot on ainoastaan tarkoitettu havainnollistamaan esillä olevaa keksintöä. Alan ammatti-miehille tulevat olemaan ilmeisiä erilaiset keksinnön variaatiot ja muunnelmat ilman että poiketaan oheisissa patenttivaatimuksissa esitetyn keksinnön suoja-10 piiristä ja hengestä.It is to be understood that the foregoing description and the accompanying drawings are merely intended to illustrate the present invention. Various variations and modifications of the invention will be apparent to those skilled in the art without departing from the spirit and scope of the invention as set forth in the appended claims.
« « I«« I
1 1 « « < « « « I • · · · • · • · · • ·« • · • · • « • · « • » 1 • « · • · · • · • · · • · • · · « • · • · · • · » • · ·1 1 «« <«« «i« i «i« i «i« i «i« i «i« i «i« i «« i «i« «i« i «i« i ««. • • • • • • • • •
Claims (5)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI972499A FI106989B (en) | 1997-06-12 | 1997-06-12 | Method for writing and reading data |
PCT/FI1998/000501 WO1998059305A1 (en) | 1997-06-12 | 1998-06-11 | Method for writing data to and reading data from a database |
EP98925665A EP0935783A1 (en) | 1997-06-12 | 1998-06-11 | Method for writing data to and reading data from a database |
AU77688/98A AU7768898A (en) | 1997-06-12 | 1998-06-11 | Method for writing data to and reading data from a database |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI972499 | 1997-06-12 | ||
FI972499A FI106989B (en) | 1997-06-12 | 1997-06-12 | Method for writing and reading data |
Publications (3)
Publication Number | Publication Date |
---|---|
FI972499A0 FI972499A0 (en) | 1997-06-12 |
FI972499L FI972499L (en) | 1998-12-13 |
FI106989B true FI106989B (en) | 2001-05-15 |
Family
ID=8549035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FI972499A FI106989B (en) | 1997-06-12 | 1997-06-12 | Method for writing and reading data |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0935783A1 (en) |
AU (1) | AU7768898A (en) |
FI (1) | FI106989B (en) |
WO (1) | WO1998059305A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393419B1 (en) | 1999-02-08 | 2002-05-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Multipoint database synchronization protocol to avoid data corruption |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5101488A (en) * | 1989-05-02 | 1992-03-31 | Motorola, Inc. | Method for retrieving and updating data in a real-time data base system |
US5247684A (en) * | 1991-10-03 | 1993-09-21 | The United States Of America As Represented By The Secretary Of The Navy | Light update notification mechanism for shared data structures |
US5307487A (en) * | 1991-10-03 | 1994-04-26 | The United States Of America As Represented By The Secretary Of The Navy | Method of database synchronization with consistency determined by entry and exit counters used on both update and retrieval |
-
1997
- 1997-06-12 FI FI972499A patent/FI106989B/en active
-
1998
- 1998-06-11 WO PCT/FI1998/000501 patent/WO1998059305A1/en not_active Application Discontinuation
- 1998-06-11 AU AU77688/98A patent/AU7768898A/en not_active Abandoned
- 1998-06-11 EP EP98925665A patent/EP0935783A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
AU7768898A (en) | 1999-01-04 |
EP0935783A1 (en) | 1999-08-18 |
FI972499A0 (en) | 1997-06-12 |
FI972499L (en) | 1998-12-13 |
WO1998059305A1 (en) | 1998-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7089270B2 (en) | Processing software images for use in generating difference files | |
CN110599169B (en) | Data processing method, device, terminal and medium | |
US8156071B2 (en) | Byte-level file differencing and updating algorithms | |
US4800520A (en) | Portable electronic device with garbage collection function | |
US8370804B2 (en) | Delta compression using multiple pointers | |
CN105009067B (en) | Managing operations on units of stored data | |
CN102981933B (en) | Method and system for data increment backup of sensing layer of Internet of Things | |
US20070192532A1 (en) | Efficient system and method for updating a memory device | |
CN102567146B (en) | Log backup method and device and smart card | |
CN101361044A (en) | Generating incremental program updates | |
US20210004223A1 (en) | Memory optimized block-based differential update algorithm | |
CN101290628A (en) | Data file updating storage method | |
CN104881611A (en) | Method and apparatus for protecting sensitive data in software product | |
CN101635114A (en) | Method and system for updating road codes and map data server | |
JP2003502732A (en) | An array storing different versions of a data set in separate memory areas and a method for updating a data set in a memory | |
CN102819494B (en) | Optimization method when a kind of flash memory is sequentially written in | |
EP1738256B1 (en) | Method and apparatus for reliably updating a stored version of content | |
CN103514216A (en) | Serial number generating method based on database system | |
CN106788468A (en) | A kind of correcting and eleting codes update method and device, electronic equipment | |
FI106989B (en) | Method for writing and reading data | |
CN110378154B (en) | File set integrity checking method and device | |
CN107291832A (en) | A kind of date storage method based on list storage structure | |
US20190220363A1 (en) | Method, apparatus and computer program product for improving inline pattern detection | |
CN110489236A (en) | A kind of Internet of Things network interface card and its method for realizing FLASH load balancing | |
US20040181777A1 (en) | Method and device for programming electronic devices using a uniform parameter format |