0

Since there are no answers to my previous question. I'm really thinking to implement a custom DB which will satisfy my requirements.

Yes I know, sounds crazy.

But what books, articles and etc. would you recommend to read?

If it does matter the requirements for my DB are following

  1. Graph oriented - optimized for storing graphs and traversal(e.g HyperGraphDB, Neo4j)
  2. Running in memory, but having a persisted storage (e.g. Redis)
  3. Distributed (e.g. membase)
  4. Had .NET adapter (TCP/IP, not HTTP REST)

I don't look for technical details, just want to find some source of theoretical information on how things usually done and what choices do I have.

Community
  • 1
  • 1
Insomniac
  • 3,354
  • 2
  • 23
  • 24

3 Answers3

4

If you are willing to spend effort in coding, why not join an existing project and adapt/extend it to your needs? For instance, both transparent distribution and RAM only data (optionally persisted) are on the TODO list of HyperGraphDB, so we'd be happy to have you help out :) Actually, being mainly main memory was in HyperGraphDB's original requirements, but it kind of became uninteresting at some point given the projects it got used for.

Cheers, Boris (http://www.hypergraphdb.org)

user252690
  • 116
  • 1
  • 2
  • 1
    Thanks for suggestion, Boris. But I'm not very good at Java, and my last C++ line of code was about 5 years ago, so I think I'm not a good contributor to your project. I've reviewed HGDB (several times to be hones) to use with our project, but it doesn't have .NET adaptor. And we have a lot of code already written in .NET and integrated even deeply in ASP.NET. – Insomniac Nov 24 '10 at 12:29
0

You could start a bounty on your previous question to get more attention for it. But as for this question, I would recommend "Don't." It does sound a little crazy, and you'll spend months (probably years) creating something that delivers only incremental improvement over an existing solution.

It might be worth posting some more details of the project and explaining why you have these requirements. It's possible that you could meet all of your requirements through a different combination of solutions (eg: why #2? Why can't you use caching instead of having to run in memory?).

If this is for a commercial product then I'm assuming you have a really interesting project with lots of money to burn. If it's for a personal project then good luck, and you're a lot braver than I am! ;-)

Dan Puzey
  • 33,626
  • 4
  • 73
  • 96
  • The first thing comes to mind is "Don't" :) I do expect that most of the answers will be - "you will not succeed" or "don't even try". But as you can see there are lot of new NoSQL databases, which I assume started similar to my case. – Insomniac Oct 26 '10 at 08:13
  • I can't provide too much details on a project because of NDA, but this is a Semantic Web/Linked Data related project which is really interesting. Our experiments with additional layer over relational or other DB shows that it is really slow, you have to load all the data in memory and then work with it there. Caching is not an option because data gets updated very often. – Insomniac Oct 26 '10 at 08:16
0

Did you try mongoDB http://www.mongodb.org/ ? I think it satisfy your requirements. Tell me if it does.

Cheers ]:>

ikirachen
  • 77
  • 7