The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Hoog Niveau Programmering
.
google unix.com



Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Het toevoegen van metadata aan digitale foto's vanaf de opdrachtregel iBot UNIX en Linux RSS Nieuws 0 09-19-2008 03:30 PM
Hachoir metadata 1.2 (Default branch) iBot Software releases - RSS Nieuws 0 09-03-2008 08:30 PM
Alweer een Metadata Verstuiver voor FLV 1.4 (Default branch) iBot Software releases - RSS Nieuws 0 05-25-2008 10:10
Alweer een Metadata Verstuiver voor FLV 1.3 (Default branch) iBot Software releases - RSS Nieuws 0 04-27-2008 05:30 PM
help, wat is het verschil tussen core dump en paniek dumpen? Aileen UNIX voor Dummies Questions & Answers 1 06-11-2001 09:08 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-29-2009
emitrax emitrax is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 38
Beste manier te dumpen metadata naar bestand: wanneer en door wie?

Hoi,

mijn aanvraag (eigenlijk bibliotheek) indexen een bestand van vele GB produceren tabellen (arrays van offset en lengte van de gegevens geïndexeerd) voor later hergebruik. De tabellen zijn ook behoorlijk groot, zo groot dat ik liep uit het geheugen in mijn proces (3GB limiet), bij het indexeren van meer dan 8GB dossier of zo. Hoewel ik kon vork een ander proces om te werken rond het geheugen limiet grootte, zou dit niet het probleem op te lossen, dus ik wil graag dump de tabellen naar een bestand om gratis het geheugen, en vermijd om opnieuw indexeren hetzelfde bestand meer dan een keer.

Houd er rekening mee dat moment, de tabellen zijn bewaard in het geheugen in een gekoppelde lijst, gedeeld met een andere thread die gebruiken voor de productie van een andere lijst van gefilterde gegevens. Dus ik liever niet veranderen dit schema. De andere draad alleen toegang tot de lijst een keer het hele bestand is geïndexeerd.

Nu, de vragen die ik mezelf de vraag zijn:

- Wanneer en hoe is het beste tijd te dumpen de tabellen naar een bestand?

Dumpingcode een tabel als deze krijgt volledige klinkt niet erg efficiënt voor mij. Zou ik blijf er niets in het geheugen? De gelinkte lijst zou altijd leeg? Als ik besluit om N tabellen in het geheugen, en dump elke N, hoe kan ik voorkomen dat het maken van een check voor hoeveel tafels heb ik
in het geheugen bij elke cyclus?

- Wie moet dumpen de metadata geproduceerd tot het dossier? Verschillende draad? Dezelfde thread die index de gegevens? Ik ben het ook niet zou willen produceren metadata bestanden wanneer het bestand verwerkt is minder dan een giga (klein bestand geval is), maar tegelijkertijd zou ik niet willen complexer de code van de indexeerfunctie, dat nu is vrij eenvoudig: parse, vindt de gegevens, maakt u een item tabel toevoegen. Als de tabel vol is, maak een andere en voeg deze toe aan de gelinkte lijst.

- Laten we zeggen dat ik dacht dat (met dank aan u) de beste manier (in mijn geval) te dumpen de metadata. Wat moet ik gebruiken voor het laden van de gegevens in om te laten de andere draad
filteren van de index van gegevens zonder radicaal veranderen van de manier waarop het werkt nu (bijvoorbeeld door middel van de gelinkte lijst)?

Een oplossing die in mijn ogen, die zou voorkomen dat een drastical verandering in mijn schema is het creëren van een "list manager" dat zou een interface toe te voegen en op te halen element uit de lijst. Deze entiteit (een draad of een proces) zou zorgen dat bepaalde gegevens in het geheugen (gekoppeld lijst) en enkele andere in het bestand.

Gelieve met mij deelt uw vaardigheden en ervaring! :-)

Thanks in advance.

Groeten,
S.
  #2 (permalink)  
Old 06-30-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Locatie: Innsbruck, Oostenrijk
Berichten: 1.893
Wow, wat een vraag. Bent u re-engineering van een database systeem?
Citaat:
- Wanneer en hoe is het beste tijd te dumpen de tabellen naar een bestand?
Op iets minder dan gigabyte grenzen. Eigenlijk, 256 kB blokken werken ook erg goed.
Citaat:
- Wie moet dumpen de metadata geproduceerd tot het dossier? Verschillende draad?
Als het in een andere draad, wat is het punt? U kunt niet alleen gratis het geheugen als de andere thread nog een lock op.
Citaat:
Wat moet ik gebruiken voor het laden van de gegevens
Ik denk niet dat de verantwoording, tenzij een echt weet uw bestaande software-architectuur.
  #3 (permalink)  
Old 07-08-2009
emitrax emitrax is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 38
Citaat:
Oorspronkelijk geplaatst door otheus View Post
Wow, wat een vraag. Bent u re-engineering van een database systeem?
Nope. Ik probeer te schrijven een aanvraag zo efficiënt als mogelijk is, dat moet dumpen indexen tafel, en ik zou graag willen leren zo veel mogelijk van deze ervaring.

Citaat:
Oorspronkelijk geplaatst door otheus View Post
Op iets minder dan gigabyte grenzen. Eigenlijk, 256 kB blokken werken ook erg goed.
Bedoel je voor de uitvoering van een fwrite van een 256KB buffer? Momenteel heb ik een lijst waar elk element (tabel) is een array van N, voor een totale omvang van 4Kb per array, en ik dump elke tafel in een keer met een enkele fwrite.

Citaat:
Oorspronkelijk geplaatst door otheus View Post
Als het in een andere draad, wat is het punt? U kunt niet alleen gratis het geheugen als de andere thread nog een lock op.

Ik denk niet dat de verantwoording, tenzij een echt weet uw bestaande software-architectuur.
Eigenlijk een draad (A) indexeert het bestand, terwijl een andere thread (B) wacht tot het klaar is, om gebruik te maken van de geproduceerde tabellen (die ik gebruikt om in het geheugen) om de gegevens te verwerken in het bestand. Het probleem is dat het bestand geïndexeerd zijn enorm (~ 30GB) en de productie van meer dan 4 GB aan gegevens, die ik niet kan blijven in het geheugen (limiet van 3 GB per proces) ja, op een punt of een ander heb ik te dumpen de geproduceerde gegevens in een bestand om gratis het geheugen.

De andere draad (B), gebaseerd op een vlag, of lees de tabellen uit het bestand of de lijst in het geheugen.

Bedankt voor uw hulp,
S.
  #4 (permalink)  
Old 07-08-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Locatie: Innsbruck, Oostenrijk
Berichten: 1.893
Ik kan het niet helpen, andere dan citeer een oude software ontwerp stelregel:

Citaat:
niet opnieuw het wiel
  #5 (permalink)  
Old 07-08-2009
emitrax emitrax is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 38
Citaat:
Oorspronkelijk geplaatst door otheus View Post
Ik kan het niet helpen, andere dan citeer een oude software ontwerp stelregel:
Je bedoelt dat ik moet gebruik maken van een database voor het houden van de tabellen, net als sqlite?
  #6 (permalink)  
Old 07-08-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Locatie: Innsbruck, Oostenrijk
Berichten: 1.893
Welke database voornamelijk afhankelijk van hoe u veel indexeerbare en unieke kolommen je hebt, op de verhouding tussen de lezers voor schrijvers. sqlite? LOL. Ik dacht meer langs de lijnen van MySQL of BerkelyDB / SleepyCat DB.
  #7 (permalink)  
Old 07-08-2009
emitrax emitrax is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 38
Citaat:
Oorspronkelijk geplaatst door otheus View Post
Welke database voornamelijk afhankelijk van hoe u veel indexeerbare en unieke kolommen je hebt, op de verhouding tussen de lezers voor schrijvers. sqlite? LOL. Ik dacht meer langs de lijnen van MySQL of BerkelyDB / SleepyCat DB.
Dat is waarom ik niet zou willen gebruiken een database. De werkzaamheden, en de afhankelijkheid geproduceerd, is het niet waard in mijn geval (IMHO).

Ik heb alleen een schrijver en een lezer.

De gegevens zijn geschreven achtereenvolgens, en nooit gewijzigd. Write Once, Read Many.

Een ad-hoc oplossing dacht ik zou mijn beste manier om te gaan.

Ik waardeer uw gedachten over dit.

Bedankt,
S.
Reply

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 04:50 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0