OrioleDB tincturae statum hodiernam humili graduum API explicaverunt pro extensionibus ad accessum tabularum et indices in PostgreSQL (Tabula/Index Obvius Methodi (AM) API) suggessit et vias emendandi fecit. Cum introductio talis API in PostgreSQL 12, tincidunt mechanismos repositionis notas modo creare potuisset. Nihilominus, licet huius API existentia et notae limites machinarum in repositionis constructae, nullae adhuc machinationes transactionales repositae plene functiones tantum impleverunt sicut extensiones.
Maxime popularis lineamenta pro joco PostgreSQL machinis mensae sunt:
- Alternativum MVCC exsecutiones, ut thesauros IMO substructio.
- Tabulae index-ordinatae, ubi index non est additio libitum tabulae quae queritur accelerat, sed est primaria notitia structura in qua tabulae notae reponuntur.
Mutationes quae in Tabula/Indice AM API necessariae sunt ad MVCC exsecutiones supportandas tractatae sunt cum oculo ad extensionem OrioleDB, qui designatus erat ad notas defectus machinationis in PostgreSQL constructo-inscriptio. Problema est plena integratio OrioleDB cum PostgreSQL mutationes requirit ad codicem PostgreSQL, quae involvit exsequendam incepti et necessitatem ad hodiernam Tabulam AM API modernizandam.
Tabula AM API non directe dictat quomodo MVCC implenda sit. Nihilominus Tabula AM API et Index AM API hoc assumptum faciunt: uterque TID (Tuple/row Identifier) vel index omnium index est vel nullatenus index. Etsi Index AM plures notas habet ad unum TID (exempli gratia GIN), omnes istae spectantes ad eundem valorem indicem pertinere debent.

Hoc principium reprehensum est ad numerum scribentium operationes augendum ("exaggeratio scribentis") - si unum attributum recensitum renovatum est, omnis index in tabula renovandus est. Si vis uteretur UNDO stipes, vel aliam rationem repositionis aedificare sine "exaggerationis scribe" (qualis est methodus calida), necesse est hanc assumptionem frangere.

Tabula AM superfluo fundata quae hanc assumptionem non violabit modum exsistentis HOT (Heap-Soli Tuples) significat, nisi quod antiquae versiones in UNDO trunco repositae sunt nec in eadem pagina aptare debent. Sed, secundum auctores, haec utilitas non sufficit ad purgandam existentiam separatae Tabulae AM.
Circumscriptiones practicae API existentis:
- Cum tabula ordinis renovatur, indices in omni fundamento vel nihili renovantur.
- Index AM API facultate caret tuples selectas selectas delere. Praesens possibile est tuples ex indicibus in mole delere utendo modos ambulkdelete et amvacui. Locum efficere conatur, per hanc API deletam efficaciam minore resultare debet, cum maxime praesentes exsecutiones totum indicem lustrare debent. Praeterea API non permittit te denotare quod tuples idem TID deleri debet. Solum omnes delere potest.
- Indices currently referentes tabulas ordines per numerum obstructionum (32 bits) et numerum cingulorum (16 bits). Et solum 11 modii cinguli numeri e tabula TID tuto transiri ad omnes modos indicem accessi possunt. Exsecutiones alternativae MVCC tamen necessariae sunt reponere additamenta cum TID. Exempli gratia, OrioleDB unam vel plures particulas requirit ut indices "delete-notati" vel plenam visibilitatis informationem requirit.
Duo modi limites in praxi vincendi proponuntur;
Accede 1: Index AM API optiones praebet ad exsequendum jocus MVCC.
Dum Tabula AM pergit esse responsabilis omnium partium MVCC, Index AM necessarias facultates praebet ad alterum exsequendum MVCC, nempe: accommodandi usoris payload una cum TID, punctum delete methodum ac etiam punctum renovationis (si TID in indice mutari non potest, usor payload potest). Praeterea, cum multiplex index tuplis ad idem TID referre liceat, API methodi in indicis lustrationibus adhibitae etiam renovari debent.
Accede II: MVCC—conscientiae indices.
Vel potest permittere indices MVCC auxiliorum. Hoc est, "exsecutor" (vel fortasse Tabula AM) simpliciter appellat inserta ac deletas () modos in Indice AM, dum Index AM MVCC conscius facultatem intuens praebet. Hoc indicem solum multo facilius intuens faceret. Etiam tota Tabula AM tunc fieri potuit ut in indice notitia tabulata media accommodaretur.
Exemplum infra figuratum est. Valor indicis 2 per transactionem 11 ex valore "A" ad valorem "B" renovatur. Valor ergo "A" ut xmax == 11, valor "B" ut xmin == 11. Hoc modo index 2 explorari potest et solum tuplum visibile recuperari potest secundum MVCC sine lapidum congerie. Index 2 purgamentorum collectio etiam sine acervo confici potest.

Cum omnia supradictarum innovationum in methodis indicem accessum API, veri simile est omnes indices simul renovari posse ad omnia novarum lineamentorum supportanda. Verius est ut multiplices exsecutiones unius indici accessus methodi permittat. Exempli gratia, praeter arborem regularem B, extensio alterius B-arboris cum MVCC auxilio intra indicem et subsidium pro arbitrario-longitudine identificantis instrumenti efficere poterit.

Ita proponitur non solum Tabulam AM API recognoscere, sed etiam Index AM API, quae communitati PostgreSQL per multos annos bene inservivit. Proponitur insuper Index AM in stratum logicum dividere et iacuit exsecutionem. Haec architectura emendata permittet PostgreSQL ad exempla multa reposita sustentanda.
Source: opennet.ru
