LDBC SNB Interactive — IC01–IC12
NamiDB apunta a las 12 queries de Complex Read en scope del workload LDBC Social Network Benchmark — Interactive. Las doce parsean, planifican y se ejecutan de punta a punta en el motor v0.3.
Referencia rápida
| # | Nombre | Pattern |
|---|---|---|
| IC01 | Amigos con un nombre dado | Traversal KNOWS de 1–3 hops |
| IC02 | Mensajes recientes de amigos | KNOWS + POST + ORDER BY |
| IC03 | Amigos y amigos-de-amigos en países X e Y | 2-hop + filtro |
| IC04 | Topics nuevos | agregación de tags sobre una ventana |
| IC05 | Grupos nuevos | ventana de membresía en foros |
| IC06 | Co-ocurrencia de tags | edge join + group by |
| IC07 | Likers recientes | LIKES + recencia |
| IC08 | Replies recientes | traversal REPLY_OF |
| IC09 | Mensajes recientes de amigos y FoF | KNOWS de 1–2 hops + posts |
| IC10 | Recomendación de amigos | similitud 2-hop |
| IC11 | Referidos laborales de amigos | KNOWS + WORKS_AT |
| IC12 | Búsqueda de expertos | KNOWS + intersección de tags |
IC01 — Encontrar amigos con un nombre dado
MATCH (p:Person {_id: $personId})-[:KNOWS*1..3]-(friend:Person {firstName: $name})WHERE friend._id <> $personIdRETURN friend._id AS friendId, friend.lastName AS friendLastName, length(path) AS distanceORDER BY distance ASC, friendLastName ASC, friendId ASCLIMIT 20IC02 — Mensajes recientes de amigos
MATCH (p:Person {_id: $personId})-[:KNOWS]-(friend)MATCH (friend)<-[:HAS_CREATOR]-(message)WHERE message.creationDate <= $maxDateRETURN friend._id AS friendId, friend.firstName AS firstName, message._id AS messageId, message.content AS content, message.creationDate AS creationDateORDER BY creationDate DESC, messageId ASCLIMIT 20(IC03–IC12 en el bench harness)
Los textos completos de las queries canónicas viven en
crates/namidb-query/tests/fixtures/
en el repo del motor. El bench harness en
bench/ corre las
doce contra un dataset sintético e imprime una comparación contra Kùzu.
Correr el bench localmente
git clone https://github.com/namidb/namidb.gitcd namidb/benchpython kuzu_runner.py # generar datasetcargo run --release -p namidb-benchVer bench/README.md
para la receta completa de reproducción.