[go: up one dir, main page]

FI106989B - Method for writing and reading data - Google Patents

Method for writing and reading data Download PDF

Info

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
Application number
FI972499A
Other languages
Finnish (fi)
Swedish (sv)
Other versions
FI972499A0 (en
FI972499L (en
Inventor
Jukka Heino
Jan-Erik Granbacka
Petteri Kolppo
Jyrki Valli
Original Assignee
Nokia Networks Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Networks Oy filed Critical Nokia Networks Oy
Priority to FI972499A priority Critical patent/FI106989B/en
Publication of FI972499A0 publication Critical patent/FI972499A0/en
Priority to PCT/FI1998/000501 priority patent/WO1998059305A1/en
Priority to EP98925665A priority patent/EP0935783A1/en
Priority to AU77688/98A priority patent/AU7768898A/en
Publication of FI972499L publication Critical patent/FI972499L/en
Application granted granted Critical
Publication of FI106989B publication Critical patent/FI106989B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic 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)

1. Förfarande för inskrivning av data i och avläsning av data frän en databas i ett system, där en bestämd informationshelhet avläses bitvis frän databasen, varefter informationshelheten sammanställs av de separat avlästa 5 bitarna, och i vilket system data i databasen kan förändras mellan avläsningen av skilda bitar av informationshelheten, kännetecknat avatt egna räknare anordnas för informationshelheterna i databasen, värdet i en bestämd informationshelhets räknare ändras, när säda-na data inskrivs i databasen som ändrar ifrägavarande informationshelhets 10 data, värdet i informationshelhetens räknare kontrolleras i samband med avläsningen av informationshelhetens första bit och i samband med avläsningen av den sista biten, och slutsatsen dras att avläsningen av informationshelheten har miss-15 lyckats, om räknarens värde har förändrats under tiden mellan nämnda kon-trolltillfällen.A method for entering data into and reading data from a database in a system, where a particular information unit is read bit by bit from the database, after which the information unit is compiled by the separately read bits, and in which system the data in the database can be changed between the reading of separate bits of the information unit, characterized by its own counters are arranged for the information units in the database, the value of a particular information unit's counter changes, when the said data is entered in the database which changes the information unit's data unit, the value of the information unit's relation to the information unit's relation bit and in connection with the reading of the last bit, and it is concluded that the reading of the information unit has failed if the value of the calculator has changed during the time between said control occasions. 2. Förfarande enligt patentkrav 1,kännetecknat av att i anslutning tili databasen anordnas en databasspecifik räknare, och den databasspecifika räknarens värde ändras, när nya data inskrivs 20 i databasen, och värdena i alla de informationshelheters räknare ändras tili att motsvara den databasspecifika räknarens nya värde, vilka informationshelhe-ter päverkas av i databasen inskrivna data. *;* tMethod according to claim 1, characterized in that a database-specific counter is arranged adjacent to the database, and the value of the database-specific counter changes when new data is entered in the database, and the values in all of the information units' counters are changed to correspond to the new database-specific counter value. , which information units are affected by data entered in the database. *; * t ‘ 3. System, tili vilket hör ' minnesorgan (M, M'), 25 skrivorgan (2, 2') för inskrivning av data i minnesorganen (M, M'), • · läsorgan (3) för bitvis avläsning av en informationshelhet lagrad i minnesorganen (M, M’), och buffringsorgan (3) för sammanställning av informationshelheten av bitarna som läsorganen avläst, kännetecknat av 30 att tili systemet hör informationshelhetsspecifika räknare (C1 - Cn), • · ...e att skrivorganen (2, 2') är anordnade att i samband med var och en inskrivning som skall utföras i minnesorganen (M, M') ändra värdena i de in-formationshelheters räknare (C1 - Cn) som päverkas av data som skrivorga-nen skriver in, och 35 att läsorganen (3) är anordnade att kontrollera värdet (C1) i infor- # « .. . mationshelhetens räknare i samband med avläsningen av informationshelhe- • · „ 106989 tens första bit och i samband med avläsningen av den sista biten och att indi-kera att avläsningen misslyckats, sävida värdet (C1) i informationshelhetens räknare har förändrats under tiden mellan nämnda kontroller.3. System belonging to memory means (M, M '), write means (2, 2') for entering data into memory means (M, M '), reading means (3) for bit reading of an information unit stored in the memory means (M, M '), and buffering means (3) for compiling the information unit of the bits read by the reading means, characterized in that the system includes information unit-specific counters (C1 - Cn), and that the writing means (2 , 2 ') are arranged, in connection with each entry to be performed in the memory means (M, M'), to change the values of the information integers (C1 - Cn) which are affected by the data entered by the writing entity, and The reading means (3) are arranged to check the value (C1) of the information. the data unit counter in connection with the reading of the first bit of information and in connection with the reading of the last bit and to indicate that the reading failed, unless the value (C1) in the information unit's counter has changed during the time between said checks. 4. System enligt patentkrav 3, 5 kännetecknatavatt systemet vidare omfattar en helhets- räknare (C), varvid skrivorganen (2') är anordnade att ändra helhetsräknarens (C) värde i samband med varje inskrivningsoperation som skall utföras i min-nesorganet (M') samt att ändra värdena (C1) i de informationshelheters räknare som päverkas av data som skrivorganen (2') skrivit in i minnesorganen (M1) 10 till att motsvara helhetsräknarens (C) nya ändrade värde.The system according to claim 3, characterized in that the system further comprises an integer counter (C), wherein the write means (2 ') are arranged to change the value of the integer counter (C) in connection with each write-in operation to be performed in the memory means (M'). ) and to change the values (C1) in the information unit's counters affected by data entered by the writing means (2 ') into the memory means (M1) 10 to correspond to the new value of the total counter (C). 5. System enligt patentkrav 3 eller 4, kännetecknat av att nämnda system är en del av ett telefonväxelsystem. « « « • · • · « < « 4 ···· « · • · · • · · • · • · « · « « e « • « · ♦ 1 c. • · · m • · « · · • · • · · • · » · • · · • · ·System according to claim 3 or 4, characterized in that said system is part of a telephone exchange system. «« «• · • ·« <«4 ····« · • · · • · · • · • · «·« «e« • «· ♦ 1 c. • · · m • ·« · · • · · · · · · · · · · · · · · ·
FI972499A 1997-06-12 1997-06-12 Method for writing and reading data FI106989B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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