Toon posts:

MySQL/PostgreSQL Storage engine

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hi,

Ik ben voor mijn afstudeerverslag bezig en wil hier graag iets schrijven over MySQL en PostgreSQL. Over de storage engine(s) van MySQL is ZAT te vinden, maar over die van PostgreSQL is eigenlijk niets te vinden!

Het enige dat erover bekend is, is dat PostgreSQL er maar eentje heeft en dat die het Postgres storage system heet (8>

Ik heb echt HEEL lang gezocht, manual van PostgreSQL e.d... Het is gewoon niet te vinden. Weet iemand van jullie misschien iets erover te vertellen... over de werking e.d.?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Kijk eens wat ik gewoon in de docs vond? :)
http://db.cs.berkeley.edu//papers/ERL-M87-06.pdf

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op dinsdag 15 februari 2005 @ 18:09:
Ik ben voor mijn afstudeerverslag bezig en wil hier graag iets schrijven over MySQL en PostgreSQL. Over de storage engine(s) van MySQL is ZAT te vinden, maar over die van PostgreSQL is eigenlijk niets te vinden!
Dat geloof ik niet.
Het enige dat erover bekend is, is dat PostgreSQL er maar eentje heeft en dat die het Postgres storage system heet (8>
"Het enige"? Wow.. Een open source database systeem en niemand die weet hoe de storage engine werkt?
Ik heb echt HEEL lang gezocht, manual van PostgreSQL e.d... Het is gewoon niet te vinden. Weet iemand van jullie misschien iets erover te vertellen... over de werking e.d.?
D'r is op zijn minst een beschrijving in de manual:
http://www.postgresql.org/docs/8.0/interactive/storage.html
Verder is er allerlei "developer" informatie:
http://developer.postgresql.org/
Met o.a. een beschrijving van de backend, dat uiteraard ook wat over de storage managers verteld. Je zult wel een beetje technisch moeten kunnen lezen, want de links in die documentatie wijzen naar de in de broncode verwerkte documentatie voor zover ik kan zien.

Dan is er nog een aardige pdf met een presentatie over diezelfde plaatjes en tekstjes.

Verder is er nog een zoekterm die ik je mee wil geven, namelijk "MVCC" of "Multi-Version Concurrency Control", dat is namelijk de term die men bij postgresql gebruikt voor de werking van controle rond transactions enzo. En het werkt op min of meer dezelfde manier als InnoDB, of wellicht andersom ik weet niet welke eerder was. Iig is het ook weer ongeveer hetzelfde systeem als Oracle gebruikt.

PS, zoek vooral ook in de mailinglists van PostgreSQL, daar komt gigantisch veel informatie voorbij, ook dit soort vragen, die verder niet zo goed te vinden zijn via andere searchomgevingen (tenzij je expliciet site:postgresql.org oid opgeeft bij google).

[ Voor 8% gewijzigd door ACM op 15-02-2005 23:18 ]


  • Onno
  • Registratie: Juni 1999
  • Niet online
ACM schreef op dinsdag 15 februari 2005 @ 23:16:
Verder is er nog een zoekterm die ik je mee wil geven, namelijk "MVCC" of "Multi-Version Concurrency Control", dat is namelijk de term die men bij postgresql gebruikt voor de werking van controle rond transactions enzo. En het werkt op min of meer dezelfde manier als InnoDB, of wellicht andersom ik weet niet welke eerder was.
Weet je dat wel zeker? Volgens mij gebruikt InnoDB gewoon row-level locking bij transactions, wat fundamenteel anders is.

  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Hoofdstuk 5 van Concurrency Control and Recovery in Database Systems. Uit mijn hoofd zou ik zeggen dat de storage engine ooit Timestamp Ordered was, maar omgeschreven is naar een Commit List gebaseerd systeem.

Moet je trouwens voor je afstuderen niet iets nieuws onderzoeken?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Onno schreef op Tuesday 15 February 2005 @ 23:38:
Weet je dat wel zeker? Volgens mij gebruikt InnoDB gewoon row-level locking bij transactions, wat fundamenteel anders is.
Ja, en ik weet dat het fundamenteel anders is, dat row-level locking :)
Because InnoDB is a multi-versioned database, it must keep information about old versions of rows in the tablespace. This information is stored in a data structure called a rollback segment after an analogous data structure in Oracle.
De uitleg voor het InnoDB-systeem is dus grotendeels hetzelfde als voor PostgreSQL's storage-engine, hoewel die (nog) geen automatische "purge" (heet vacuum bij pgsql) heeft en tegenwoordig point-in-time-recovery, waar nog net iets meer werk bij komt kijken.
En het lijkt er op dat InnoDB effectief maar 1 versie van een record opslaat en de rest uit de undo-log's opbouwt, terwijl postgresql bij mijn weten meerdere versies van een records opgeslagen houdt, indien nodig (jochem?)

[ Voor 30% gewijzigd door ACM op 16-02-2005 08:38 ]


  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
ACM schreef op woensdag 16 februari 2005 @ 08:34:

En het lijkt er op dat InnoDB effectief maar 1 versie van een record opslaat en de rest uit de undo-log's opbouwt, terwijl postgresql bij mijn weten meerdere versies van een records opgeslagen houdt, indien nodig (jochem?)
InnoDB slaat ook meerdere versies op, alleen staat er maar één versie in de table en staan de andere versies in de logs. In PostgreSQL staan alle versies gewoon in de table. Er hoeft dus bij een update / delete niets verplaatst te worden en ook een rollback is instantaan.

  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Ik zit me ineens te bedenken dat er nog een storage engine is voor PostgreSQL. Fujitsu heeft een Extended Storage Manager die index/heap, buffer, transactie en lock management op een andere manier implementeert dan de standaard storage engine. Deze storage engine is closed source en ik heb er tot op heden heel weinig over kunnen vinden, anders dan dat deze storage manager afkomstig zou zijn van de Symfoware lijn van Fujitsu en bedoeld is voor hele grote databases.
Pagina: 1