I never worked with an OO database before and am currently trying to find out if NeoDatis is the right tool to use.
In my project, I'll have a massive object graph with serveral Gigabytes of data where more or less every object is linked to every other object via other objects in between.
If I got the documentation right, that would mean that if I retrieve one object from the database, the complete database will be copied into memory if I don't set the load depth to 1 or to whatever depth I require. Right?
Now, if I set the load depth to 1, and retrieve an object, what will happen to the references to other objects? Will they just be null, or will they be assigned some value I can test against so I know that there is another object that I'll first have to retrieve from the database?
Is there some best practice to follow that lets me traverse huge graphs of objects by their references to each other without having to keep the whole graph in memory? Maybe even automatic stuff that is able to delete those objects from memory that haven't been accessed for a long time and automatically retrieves objects from the database when I follow the reference to an object that has not yet been copied to the memory?
Same for the other way round: How can I create such a huge graph without having to build it it up in memory before I write it to the database?
Sorry if the answers seem obvious to you, but as I said this is my first contact with OO databases.
Thanks in advance for any answers,
Christian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I never worked with an OO database before and am currently trying to find out if NeoDatis is the right tool to use.
In my project, I'll have a massive object graph with serveral Gigabytes of data where more or less every object is linked to every other object via other objects in between.
If I got the documentation right, that would mean that if I retrieve one object from the database, the complete database will be copied into memory if I don't set the load depth to 1 or to whatever depth I require. Right?
Now, if I set the load depth to 1, and retrieve an object, what will happen to the references to other objects? Will they just be null, or will they be assigned some value I can test against so I know that there is another object that I'll first have to retrieve from the database?
Is there some best practice to follow that lets me traverse huge graphs of objects by their references to each other without having to keep the whole graph in memory? Maybe even automatic stuff that is able to delete those objects from memory that haven't been accessed for a long time and automatically retrieves objects from the database when I follow the reference to an object that has not yet been copied to the memory?
Same for the other way round: How can I create such a huge graph without having to build it it up in memory before I write it to the database?
Sorry if the answers seem obvious to you, but as I said this is my first contact with OO databases.
Thanks in advance for any answers,
Christian