Hello, Artem,

*>> Could you be more specific? What class instance do you mean? And where 
it is kept? It would be great if you could point me at code, probably we 
could avoid such behavior.*
Seems like I made a mistake by claiming this. I haven't found anything 
suspicious in code. However I still face the memory issue.. I spent some 
time profiling the application and here are my results with allocated 2GB 
memory for heap. There is definitely something that cannot by collected by 
GC.
Please take a look at the memory usage and GC activity: 
http://snag.gy/kfFLH.jpg
And here is heap gistogram: http://snag.gy/rkRUb.jpg

Please take a look at LinkedHashMap$entry it is increasing all the time. It 
is not used in our code so I assume this is something from orient-core. Do 
you have any ideas what it could be?
 

*>> Have you tried to check if value is set correctly with 
isValidataionEnabled call?*Yes I tries, it returns 'false' after disabling 
it. So seems working fine. However I couldn't notice that it helped a 
lot... So another question is: is validation performed when I'm using 
blueprints API? If so, does it help when I disable it using 
.getRawGraph().set... method and then continue using blueprint API to add 
vertexes and edges?

One more note, after disabling validation, I started getting next messages 
in console (somewhere about 10-15 messages during the whole process):
2014 9:53:42 AM com.orientechnologies.common.log.OLogManager log
WARNING: Update of collection pointer is received but collection is not 
registered


Maybe there is anything else I could disable to perform massive insertion 
without allocating additional GBs heap memory?


вторник, 24 июня 2014 г., 8:52:43 UTC+3 пользователь Artem Orobets написал:
>
> Hi Andrey,
>
>  We found, that after adding a new vertex, a new class instance is created 
>> each time to validate the vertex. However it is not realized after all.
>
> Could you be more specific? What class instance do you mean? And where it 
> is kept? It would be great if you could point me at code, probably we could 
> avoid such behavior.
>
> 2) I'm afraid Blueprints API doesn't aware of schema, it is more orient 
> specific, so that API doesn't allow to configure it.
>
> 3) The setValidationEnabled method change the state of db where it was 
> invoked. So *<OrientBaseGraph>.getRawGraph(*
> *).setValidationEnabled(false);* should work. Have you tried to check if 
> value is set correctly with isValidataionEnabled call?
>
> Best regards,
> Artem Orobets
>
> * Orient Technologiesthe Company behind OrientDB*
>  
>
> 2014-06-23 18:30 GMT+03:00 Андрей Логинов <[email protected] 
> <javascript:>>:
>
>> Good day,
>>
>> We've faced several issue while trying massive insertions (900k vertexes, 
>> millions of edges):
>> It is becoming possible only after adding additional memory to client's 
>> VM (up to 4GB) . We found, that after adding a new vertex, a new class 
>> instance is created each time to validate the vertex. However it is not 
>> realized after all.
>>
>> At the same time I've found next article in wiki: 
>> https://github.com/orientechnologies/orientdb/wiki/Performance-Tuning-Graph. 
>> I noticed that there is special method: 
>>
>> graph.setValidationEnabled(false);
>>
>> The thing is - I'm using blueprint API and can access this method only via 
>> <OrientBaseGraph>.getRawGraph().setValidationEnabled(false);
>> However it seems like that I should work with returned object further in 
>> order to make this change work.
>>
>>
>> So my questions are:
>> 1) how to make orientDB client (via blueprint API) work without adding 
>> additional memory?
>> 2) how to disable validation using this API?
>> 3) how to convert result of setValidationEnabled back to OrientBaseGraph?
>>
>>
>> Thanks in advance. 
>>
>>
>>  -- 
>>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "OrientDB" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to