-
Notifications
You must be signed in to change notification settings - Fork 872
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Batch insert sql: Direct buffer memory #7627
Comments
after read the source code, it seems not reuse the allocated buffer and always to allocate new buffer
Some way can I reuse the allocated buffer? |
my server.sh command result: I know add XX:MaxDirectMemorySize can solve this issue, but it's still a critical risk: memory leak in produce env. Orientdb out of work if occur this issue. |
|
@zlfsimon why do you think we do not reuse allcoated buffer , I can not get it . Could you elaborate ? |
@zlfsimon btw could you also check https://drive.google.com/file/d/0B2oZq2xVp841THlxbVhhemxMMGM/view?usp=sharing whether an exception is gone with this build? |
@lvca, I try to use XX:MaxDirectMemorySize=512G, but still get this exception, so I change this setting, from error stack, seems it's happen on allocate new buffer |
@zlfsimon what is the value of properties of JMX bean java.nio:type=BufferPool,name=direct after OOM? Could you check them? Could you also use a distribution which I provided to you? |
@Laa I use this distribution with same setting in server.sh, it works fine and no OOM happen, I also check the jvm heap, it seems better then the version 2.2.25 to use heap. |
@zlfsimon so we can treat this issue as resolved? Please do not close it I have to write release notes. |
@Laa yes, thanks |
@santo-it for release notes: "OrientDB able to automatically correct direct memory consumption even if flag XX:MaxDirectMemorySize is not set. But because OrientDB allocates direct memory by the big amount of chunks in previous versions amount of memory to be allocated in the last chunk can exceed direct memory limits. This issue was fixed." It is fixed under #7586 issue. The last issue is not confirmed yet but code already in the repository. |
OrientDB Version: 2.2.5
Java Version: 1.8.0_144
OS: centos 7 | mac
Exception
Steps to reproduce
batch insert sql like below with 2000 records in a sql:
INSERT INTO Company(rowkey,_key,name,business_status,ctime,entity_type,capital,city,enterprise_type,industry,operation_startdate,province,utime) VALUES ('09A626712730E39B779AB5BDA1E318D0','','','','','','','','','','','','2017-06-2718:01:37'),('09A626D27DB8C7C98678C3D8CB8737EF','09A626D27DB8C7C98678C3D8CB8737EF','','','2017-06-2718:02:04','Company','','','','','2012-08-13','',''),('09A626D27DB8C7C98678C3D8CB8737EF','','','','','','','','','','','','2017-06-2718:02:04'),('09A626EC2ED573F799C603CCC3244B2C','09A626EC2ED573F799C603CCC3244B2C','','','2017-06-2717:59:02','Company','100000.00','','','','2010-12-21','','')
run sometimes then always get the above exception
The text was updated successfully, but these errors were encountered: