A Portable Graph Database Library, Like SQLite?

2,515 views
Skip to first unread message

James Thornton

unread,
Jun 25, 2011, 4:18:47 PM6/25/11
to gremli...@googlegroups.com
Someone on Hacker News asked about "a portable graph database library, ala SQLite, that can be used as a file format for graph-based data?" (http://news.ycombinator.com/item?id=2694857). I referred them to TinkeGraph as something close. It would be cool to see TinkerGraph become the SQLite of graph databases.

Marko Rodriguez

unread,
Jun 25, 2011, 4:22:58 PM6/25/11
to gremli...@googlegroups.com

Cool. I know a few projects that use TinkerGraph as an internal light weight, memory graph.

Thanks for promotion,
Marko.

James Thornton

unread,
Jun 25, 2011, 5:12:03 PM6/25/11
to gremli...@googlegroups.com
SQLite (http://www.sqlite.org/) is "a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine." 

What would it take for TinkerGraph to become a self-contained software library?   SQLite is written in C, but a self-contained TinkerGraph implementation in Google's Go (http://go-lang.com/) might be interesting -- it's typed, garbage collected, and doesn't require a VM (http://golang.org/doc/go_faq.html). 

Pierre De Wilde

unread,
Jun 25, 2011, 6:31:17 PM6/25/11
to gremli...@googlegroups.com
TinkerGraph is in-memory and doesn't support transactions.
OrientDB is much closer... waiting for a stable 1.0.

Pierre

2011/6/25 James Thornton <james.t...@gmail.com>

Russell Jurney

unread,
Jun 25, 2011, 6:39:58 PM6/25/11
to gremli...@googlegroups.com
I am working using and working on TinkerGraph, and this is exactly what I have in mind for it.

Perhaps I should fork it, since it is the reference implementation, and call it GraphDBLite?

Russell Jurney

Russell Jurney

unread,
Jun 25, 2011, 6:42:08 PM6/25/11
to gremli...@googlegroups.com
Well, they can be stored in GraphML, and in my branch, JSON.

Anyone got suggestions on how to most easily add transactions?

James Thornton

unread,
Jun 25, 2011, 6:48:56 PM6/25/11
to gremli...@googlegroups.com
Or what do you think of "Litegraph"?

Pierre De Wilde

unread,
Jun 25, 2011, 6:52:33 PM6/25/11
to gremli...@googlegroups.com
+1 for LiteGraph
+1 for JSON load/save

2011/6/26 James Thornton <james.t...@gmail.com>

Joshua Shinavier

unread,
Jun 25, 2011, 9:49:36 PM6/25/11
to gremli...@googlegroups.com
Gmail
Calendar
Documents
Photos
Reader
Web
more
Joshua Shinavier
Gmail Logo
Search MailSearch the Web Show search options
Create a filter
Mail
Contacts
Tasks
Compose mail
Priority Inbox (7)
Inbox (405)
Buzz
Chats
Sent Mail
Drafts (75)
Spam (217)
accounts (119)
agents (291)
alerts (34)
CASIA
entrepreneurial
Franz
help-flex-owner (13)
KDevelop
LANL (63)
LarKC (88)
network
Notes
political
practical (968)
Qt
TinkerPop (334)
XMPP (497)

60 more▼
Chat


Joshua Shinavier
Connecting…

Unable to reach Gmail. Please check your internet connection. Help
Bernard Chang
emil
Jie Bao
Joe Geldart
johan
Li Ding
Marko A. Rodriguez
Shangguan(Steve)
Tweettalk
xixi Luo
Invite a friend
Give Gmail to:

Send Invite 96 left
Preview Invite
><
Web Clip
CNN.com Recently Published/Updated - Leading Libyan soccer players
join the side of the rebels - 4 hours ago
« Back to Priority InboxArchiveReport spamDelete
Move to Labels More actions
1 of hundreds Older ›
A Portable Graph Database Library, Like SQLite?
X
Inbox
X
TinkerPop
X
Reply
James Thornton to gremlin-users
show details 4:18 AM (5 hours ago)


Someone on Hacker News asked about "a portable graph database library,
ala SQLite, that can be used as a file format for graph-based data?"
(http://news.ycombinator.com/item?id=2694857). I referred them to
TinkeGraph as something close. It would be cool to see TinkerGraph
become the SQLite of graph databases.

Reply
Forward
Reply
Marko Rodriguez to gremlin-users
show details 4:22 AM (5 hours ago)


Cool. I know a few projects that use TinkerGraph as an internal light
weight, memory graph.

Thanks for promotion,
Marko.

- Show quoted text -
Reply
Forward
Marko is not available to chat
James Thornton
SQLite (http://www.sqlite.org/) is "a software library that implements a self...
5:12 AM (4 hours ago)
Pierre De Wilde
TinkerGraph is in-memory and doesn't support transactions. OrientDB is much c...
6:31 AM (3 hours ago)
Russell Jurney
I am working using and working on TinkerGraph, and this is exactly what I hav...
6:39 AM (3 hours ago)
Russell Jurney
Well, they can be stored in GraphML, and in my branch, JSON. Anyone got sugge...
6:42 AM (3 hours ago)
James Thornton

Or what do you think of "Litegraph"?

6:48 AM (2 hours ago)
Reply
Pierre De Wilde to gremlin-users
show details 6:52 AM (2 hours ago)

Reply
Forward

SendSave NowDiscardDraft autosaved at 9:43 AM (5 minutes ago)
From:
Joshua Shinavier <jo...@fortytwo.net> change
To:
Add Cc | Add Bcc | Edit Subject Attach a file Insert:
Invitation Consider including: Marko A. Rodriguez Dan Brickley
Claudio Martella
Rich formatting » Check Spelling


SendSave NowDiscardDraft autosaved at 9:43 AM (5 minutes ago)
New window
Print all
Expand all
Forward all
« Back to Priority InboxArchiveReport spamDelete
Move to Labels More actions
1 of hundreds Older ›
Visit settings to save time with keyboard shortcuts!
You are currently using 2732 MB (35 %) of your 7597 MB.
This account is open in 1 other location (184.73.7.43). Last account
activity: 3 hours ago on this computer. Details
Gmail view: standard | turn on chat | turn off buzz | older contact
manager | basic HTML Learn more
©2011 Google - Terms - Privacy Policy - Buzz Privacy Policy - Google Home

Joshua Shinavier

unread,
Jun 25, 2011, 9:51:03 PM6/25/11
to gremli...@googlegroups.com
Oops. Sorry about that last email. Much too quick on the
copy-and-paste. This is better:

+1 to mobile Blueprints, but issues of resource consumption aside, I
actually think that a filesystem-based store like Neo4jGraph or
OrientGraph would be more useful in the long run. The fact that
SQLite has to load entire tables into memory before it can answer
queries is a major drawback, IMO. TinkerGraph on a phone would be
handy and lightweight (and with enough tweaking, it could be made to
be transactional), but if we're going for *the* de facto mobile graph
DB, why not make it scale? There's a discussion on the Neo4j list
right now about Neo4j on Android... looking forward to see how that
turns out.

Josh

Daniel Quest

unread,
Jun 25, 2011, 10:06:55 PM6/25/11
to gremli...@googlegroups.com
Being a bit of a gadfly here, but what DBs support asynchronous wrights?  Does it make sense to have eventual consistency models in the GraphDB space?  Does it make sense to make a GraphDB store optimized for writing?

Sorry if that is a bit off topic.  Josh, you just got me thinking that an in memory store may not be so bad if it has the capability to wright when it is not being pounded with requests.

-Daniel

James Thornton

unread,
Jun 25, 2011, 11:48:47 PM6/25/11
to gremli...@googlegroups.com
And when all these mobile graphs can link up... :)

James Thornton

unread,
Jun 27, 2011, 7:31:13 AM6/27/11
to gremli...@googlegroups.com
Consider storing it as BSON (http://bsonspec.org/). 

James Thornton

unread,
Jul 1, 2011, 3:50:13 AM7/1/11
to gremli...@googlegroups.com
Here is an article on "Zero Load Time Formats" (http://stevehanov.ca/blog/index.php?id=123). It discusses how by using an on-disk data structure, you don't have to load the entire file into memory and parse it. Instead it suggests using memory-mapped files that lazy load parts of the file when you access them. This is what SQLite does.

James Thornton

unread,
Jul 29, 2011, 8:16:47 PM7/29/11
to gremli...@googlegroups.com

> TinkerGraph on a phone would be handy and lightweight (and with enough tweaking, 
> it could be made to be transactional

Here is an interesting doc on the the SQLite design goals (http://www.sqlite.org/whentouse.html) --  "SQLite is not designed to replace Oracle. It is designed to replace fopen()".

Russell Jurney

unread,
Jul 29, 2011, 8:51:23 PM7/29/11
to gremli...@googlegroups.com
Or in this case, for(a node/edge list)?
Reply all
Reply to author
Forward
0 new messages