我有一个需要图形数据库的产品,不幸的是,我发现的所有图形数据库都不够成熟,花费了很多钱,或者根本无法满足我的需求。
我想实现一个具有以下功能的量身定制的图形数据库:
为了将此作为概念证明,我需要知道什么?写它需要多长时间? 一个面向功能的方法(我知道它更好地处理递归)是否比面向对象的方法更适合这里? 我的约束是否更容易实现?
答案 0 :(得分:1)
如果您使用其他数据存储作为后端,您可以非常快速地编写概念验证,只需在顶部添加graphdb API即可。关于项目的大小:环顾一下像SourceForge和GitHub这样的地方你应该能够找到小的graphdb实现。然后,您可以查看源代码与功能的关系,并了解您的项目。你没有提到诸如交易和故障恢复之类的东西 - 如果你想要这样,它将需要更多的努力。
答案 1 :(得分:1)
数据库必须嵌入正在运行的进程中,因此它将保存在内存中。
您基本上可以使用任何类型的图形处理库(如QuickGraph for C#),并在后台线程中定期将数据库序列化为磁盘(如果突然断电或崩溃)。
你需要对图论(当然),多线程,并行计算(锁,事务等)有所了解,但如果你不需要交易,那么使用库基本上就可以成为IMO的周末项目。