Skip to content

[WIP] add icebug-format impl#331

Open
aheev wants to merge 1 commit intoLadybugDB:mainfrom
aheev:dev
Open

[WIP] add icebug-format impl#331
aheev wants to merge 1 commit intoLadybugDB:mainfrom
aheev:dev

Conversation

@aheev
Copy link
Contributor

@aheev aheev commented Mar 26, 2026

No description provided.

*Note: The `structure` keyword is used here to mean either a file or an in-memory structure.*

## Syntax
We might need to extend `ATTACH` to support attaching an Icebug-formatted graph. This would create node/rel tables in the database and point to the CSR structures.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fundamental idea behind DuckLake is that yaml/json are brittle and should be replaced with the system catalog of a SQL database. It implements duckdb, postgres and mysql as system catalogs.

Similarly, the main idea behind Icebug Disk is to avoid yaml/json that Apache GraphAR uses to represent the graph and replace it with LadybugDB's system catalog. Perhaps people can implement it with other cypher implementations such as ArcadeDB or Grafeo.

Then a compliant implementation would do:

lbug > ATTACH 'mygraph:mygraph.lbdb';

where mygraph.lbdb is a small ladybugdb file with only the catalog, but no data.

Such a mygraph.lbdb would be created via lbug -i schema.cypher and shared with many users who could use it to connect to the graph lake backed by Icebug Disk.

Alternatively, we can create a new syntax: `ATTACH GRAPH`.

## Metadata File
The metadata file(passed to `ATTACH`) describes the structure of the graph, including node labels, node table structures, and relationship structures, which will be used to create the corresponding tables in the database(no need of `schema.cypher`). It also includes information about the CSR structures and how they map to the node/rel tables in the database.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GraphAR already does this. The main reason we have Icebug is to avoid the yaml/json parsing and the specificity of a database DDL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants