Cyklisk database

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 28. oktober 2015; checks kræver 9 redigeringer .

Cirkulær database ( engelsk  Round-robin Database, RRD ) - en database , hvis mængde af lagrede data ikke ændrer sig over tid, [1] da antallet af poster er konstant, i processen med at gemme data bruges de cyklisk [ 2] [3] [4] . Anvendes typisk til at gemme information, der overskrives med jævne mellemrum.

Det fandt den største applikation i MRTG- programmet , som senere blev afløst af RRDtool- softwarepakken [5] .

DBMS og grænseflader til den cirkulære database er inkluderet i de store Linux - distributioners lagre [6] [7] [8] [9] og i CPAN- lageret for Perl- biblioteker [10] . DBMS RRDtool er også tilgængelig som et modul til CMS Drupal [11] .

Databasestruktur

En cyklisk database kan gemme et eller flere datasæt, som er kombineret til arkiver (RRA - round robin archive). Ringtabellerne i arkiver ligner i strukturen arrays , hvor adressen på det sidste element er den samme som adressen på det første element. Positionen af ​​det sidst opdaterede element gemmes som en pointer . Arkiver er som regel indbyrdes forbundne som indlejrende dukker, hvert efterfølgende arkiv gemmer konsolideret information fra det forrige. Dette gøres ved hjælp af konsolideringsfunktionerne indbygget i databasen. Dette giver dig mulighed for at anvende disse funktioner automatisk, når du opdaterer oplysninger i databasen. Det ene arkiv gemmer data med et lille interval mellem poster, det andet gemmer efter et givet antal intervaller de konsoliderede data fra det forrige, det næste gør det endnu sjældnere osv. [12]

Konsolidering af data

Hvis du registrerer data med korte tidsintervaller og derefter danner gennemsnitsværdierne (maksimum, minimum osv.) for et år eller et hvilket som helst andet tilstrækkeligt stort tidsinterval, kan beregningerne og processen med prøveudtagning fra selve databasen kræve en stor mængde ressourcer. For at undgå dette bruger round robin-databaser datakonsolidering på skrivninger i stedet for på læsninger. Der kan være et vilkårligt antal konsolideringsperioder (uge, måned, kvartal, år osv.). For at udføre beregninger bruges specielle konsolideringsfunktioner ( eng.  konsolideringsfunktion , CF), såsom:

Datatyper

Grundlæggende datatyper: [13]

COUNTER er en tæller, hvis værdi kun kan stige, når du gemmer data af denne type, trækkes den tidligere værdi fra den aktuelle værdi.

GAUGE - vilkårlige værdier. Denne type bruges til data, der både kan falde og stige (f.eks. temperaturen på et objekt).

DERIVE-typen er den samme tæller, men med evnen til at lagre ikke kun konstant stigende, men også faldende værdier, det vil sige forskellen mellem tilstødende værdier kan være negativ. Det er vigtigt at huske, at denne type ikke kontrolleres for overløb.

ABSOLUTE er også en modifikation af tælleren, forskellen er, at forskellen mellem værdierne ikke beregnes, men selve tællerværdierne gemmes og tælleren nulstilles ved læsning. Denne type er nyttig til at tælle antallet af hændelser, der har fundet sted siden sidste læsning.

COMPUTE-typen bruges til at registrere beregnede værdier baseret på data fra andre datakilder ( eng.  Data Source, DS ) i den aktuelle RRD-database. I databaseteori kaldes sådanne felter beregnede eller virtuelle. Denne datakilde er ikke angivet under opdateringshandlingen, men dens primære datapunkter (PDP'er )  beregnes ud fra de primære datapunkter (PDP'er) fra andre datakilder ved at anvende omvendt polske notationsformler på dem ( engelsk omvendt polsk notation , RPN ). Konsolideringsfunktioner er også anvendelige til denne datatype.  

Datainterpolation

På grund af det faktum, at cykliske databaser ofte bruges til at repræsentere data fordelt over tid med regelmæssige intervaller, sørger mekanismen for en sådan database for følgende egenskab: hvis data af en eller anden grund (f.eks. en forsinkelse i beregningen af ​​en værdi) ikke blev optaget til tiden (for eksempel skete optagelsen 3 sekunder for sent), vil dataene stadig blive optaget, som om de var blevet leveret til tiden. Den cykliske database "mekanisme" selv vil ændre dataene til korrektion (proportionalt med forsinkelsen eller forsinkelsestiden). Med andre ord har selve databasen et indbygget system til registrering af afvigende adfærd . Dette system består af tre komponenter: [14] 

Hvordan aberreret datainterpolation fungerer , er let at forstå ved at se på specifikke værdier:

data i RRD-databasen rigtige data
tid+000: 0 delta="U" tid+300: 300 delta=300 tid+600: 600 delta=300 tid+900: 900 delta=300 tid+000: 0 delta="U" tid+300: 300 delta=300 tid+603: 603 delta=303 tid+900: 900 delta=297

Men databasen gemmer ikke kun interpolerede data, men også data, der blev indtastet direkte. Dette er nødvendigt for mere nøjagtig interpolation af efterfølgende data.

Datainterpolation kan føre til dataforvrængning, så omfanget er begrænset til områder, hvor nøjagtigheden ikke er kritisk. På andre områder bruges en datatype, som interpolationsmekanismen ikke gælder for.

Noter

  1. http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA1-4053ENW.pdf  (link ikke tilgængeligt)
  2. Arkiveret kopi (link ikke tilgængeligt) . Hentet 2. november 2011. Arkiveret fra originalen 28. august 2013. 
  3. Tobias Oetiker. MRTG. Trafikgrafen til flere routere . - Zürich: Schweiziske føderale teknologiske institut, 1998.
  4. Brug af RRDtool til at diagnosticere årsagerne til problemer med webapplikationens ydeevne
  5. Open Source-overvågning: RRDTool 1.3 tilgængelig, en chat med Tobias Oetiker
  6. librrd_th.so.4()(64bit) RPM DEB Gratis download til Linux - pkgs.org
  7. Ubuntu - Detaljer om pakken torrus-common in hardy
  8. Debian - Detaljer om pakken rrdtool-tcl i lenny-backports
  9. Fedora 8-opdatering: rrdtool-1.3-0.4.beta3.fc8
  10. RRDTool::OO - metacpan.org
  11. RRD-værktøj | drupal.org
  12. RRDtool - rrdtutorial
  13. RRDtool - rrdcreate
  14. RRDtool—rrdtool

Se også

Links