/* Test basic DSA functionality */
PG_FUNCTION_INFO_V1(test_dsa_basic);
Datum
test_dsa_basic(PG_FUNCTION_ARGS)
{ int tranche_id;
dsa_area *a;
dsa_pointer p[100];
/* XXX: this tranche is leaked */
tranche_id = LWLockNewTrancheId();
LWLockRegisterTranche(tranche_id, "test_dsa");
a = dsa_create(tranche_id); for (int i = 0; i < 100; i++)
{
p[i] = dsa_allocate(a, 1000);
snprintf(dsa_get_address(a, p[i]), 1000, "foobar%d", i);
}
for (int i = 0; i < 100; i++)
{ char buf[100];
snprintf(buf, 100, "foobar%d", i); if (strcmp(dsa_get_address(a, p[i]), buf) != 0)
elog(ERROR, "no match");
}
for (int i = 0; i < 100; i++)
{
dsa_free(a, p[i]);
}
dsa_detach(a);
PG_RETURN_VOID();
}
/* Test using DSA across different resource owners */
PG_FUNCTION_INFO_V1(test_dsa_resowners);
Datum
test_dsa_resowners(PG_FUNCTION_ARGS)
{ int tranche_id;
dsa_area *a;
dsa_pointer p[10000];
ResourceOwner oldowner;
ResourceOwner childowner;
/* XXX: this tranche is leaked */
tranche_id = LWLockNewTrancheId();
LWLockRegisterTranche(tranche_id, "test_dsa");
/* Create DSA in parent resource owner */
a = dsa_create(tranche_id);
/* *test_dsa_allocate * *TestDSAallocationacrossarangeofsizestoexercisethepagemap *sizinglogicinmake_new_segment().AfreshDSAiscreatedforeach *iterationsothateachallocationtriggersanewsegmentcreation, *includingtheodd-sizedsegmentpath.
*/
PG_FUNCTION_INFO_V1(test_dsa_allocate);
Datum
test_dsa_allocate(PG_FUNCTION_ARGS)
{ int start_num_pages = PG_GETARG_INT32(0); int end_num_pages = PG_GETARG_INT32(1); int step = PG_GETARG_INT32(2);
size_t usable_pages; int tranche_id;
dsa_area *a;
dsa_pointer dp;
if (start_num_pages > end_num_pages)
elog(ERROR, "incorrect start and end parameters");
/* XXX: this tranche is leaked */
tranche_id = LWLockNewTrancheId();
LWLockRegisterTranche(tranche_id, "test_dsa");
for (usable_pages = start_num_pages; usable_pages < end_num_pages; usable_pages += step)
{
a = dsa_create(tranche_id);
dp = dsa_allocate(a, usable_pages * FPM_PAGE_SIZE);
dsa_free(a, dp);
dsa_detach(a);
}
PG_RETURN_VOID();
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.