Hi Andrey,
I tried Asynchronous select query using java but while connecting to the db
it throwing exception given below, I am attaching the code which I used.
C:\Program Files\Java\jdk1.8.0_31\bin>java Async_query
Feb 24, 2015 12:20:19 PM com.orientechnologies.common.log.OLogManager log
INFO: OrientDB auto-config DISKCACHE=224MB (heap=13,890MB os=62,499MB
disk=448MB)
Exception in thread "main"
com.orientechnologies.orient.core.exception.OStorageException: Cannot open
local storage 'localhost:2480/GratefulDeadConcerts' with mode=rw
at
com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.open(OAbstractPaginatedStorage.java:214)
at
com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.open(ODatabaseDocumentTx.java:243)
at Async_query.main(Async_query.java:18)
Caused by: com.orientechnologies.orient.core.exception.OStorageException:
Cannot open the storage 'GratefulDeadConcerts' because it does not exist in
path: localhost:2480/GratefulDeadConcerts
at
com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.open(OAbstractPaginatedStorage.java:159)
... 2 more
Thanks,
--Shivanandan Gupta
On Monday, 23 February 2015 12:44:10 UTC+5:30, Shivanandan Gupta wrote:
>
> Thanks Andrey for your suggestion I will try this out.
>
> -- Shivanandan Gupta
>
> On Monday, 23 February 2015 12:33:39 UTC+5:30, Andrey Lomakin wrote:
>>
>> HI,
>> Did you consider asynchronous SQL queries ?
>> When all results are sent on the fly to the client and do not collected
>> on server side.
>>
>> On Fri, Feb 20, 2015 at 10:30 AM, Shivanandan Gupta <[email protected]
>> > wrote:
>>
>>> Hi All,
>>>
>>> I am trying to select 100,000 records from a class (class is having
>>> 1,000,000 records and each record is having 74 properties) but I am
>>> getting out of memory GC overhead limit exceeded error. My normal query
>>> will be to select 1,000,000 records from the class and the class will have
>>> 70+ properties.
>>>
>>> memory configuration used is given below in server.bat file
>>>
>>> rem ORIENTDB MAXIMUM HEAP. USE SYNTAX -Xmx<memory>, WHERE <memory> HAS
>>> THE TOTAL MEMORY AND SIZE UNIT. EXAMPLE: -Xmx512m
>>> set MAXHEAP=-Xmx6g
>>> rem ORIENTDB MAXIMUM DISKCACHE IN MB, EXAMPLE 8192 FOR 8GB
>>> set MAXDISKCACHE=-Dstorage.diskCache.bufferSize=40960
>>>
>>>
>>>
>>> query executed is "select from abcd limit 100000"
>>>
>>> 2015-02-20 08:10:06:775 INFO {db=eigenin1} [TIP] Query 'select from
>>> s_asset limit 100000' returned a result set with more than 10000 records.
>>> Reduce it to improve performance and reduce RAM used
>>> [OProfiler]java.lang.OutOfMemoryError: GC overhead limit exceeded
>>> Dumping heap to java_pid3952.hprof ...
>>> Dump file is incomplete: No space left on device
>>>
>>> 2015-02-20 08:14:36:759 INFO {db=eigenin1} [TIP] Query 'select from
>>> s_asset limit 20000' returned a result set with more than 10000 records.
>>> Reduce it to improve performance and reduce RAM used [OProfiler]
>>> 2015-02-20 08:16:48:239 INFO {db=eigenin1} [TIP] Query 'select from
>>> s_asset limit 30000' returned a result set with more than 10000 records.
>>> Reduce it to improve performance and reduce RAM used [OProfiler]
>>>
>>> Thanks,
>>> Shivanandan Gupta
>>>
>>> --
>>>
>>> ---
>>> 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.
>>>
>>
>>
>>
>> --
>> Best regards,
>> Andrey Lomakin.
>>
>>
--
---
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.
import com.orientechnologies.orient.test.*;
import com.orientechnologies.orient.core.db.document.*;
import com.orientechnologies.orient.core.sql.query.*;
import com.orientechnologies.orient.core.command.*;
import com.orientechnologies.orient.core.record.impl.*;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import com.googlecode.concurrentlinkedhashmap.*;
import javax.annotation.concurrent.GuardedBy;
class Async_query {
public static void main(final String[] args) throws Exception {
ODatabaseDocumentTx db = new ODatabaseDocumentTx("plocal:localhost\\databases\\GratefulDeadConcerts");
// I tried this option as well. "plocal:C:\\orientdb-community-2.0.1\\orientdb-community-2.0.1\\databases\\GratefulDeadConcerts "
db.open("root","root");
try {
db.begin();
// YOUR CODE
System.out.println("Program is Started");
List<ODocument> result = db.command(
new OSQLAsynchQuery<ODocument>("select * from sung_by",
new OCommandResultListener() {
int resultCount = 0;
@Override
public boolean result(Object iRecord) {
resultCount++;
ODocument doc = (ODocument) iRecord;
// DO SOMETHING WITH THE DOCUMENT
return resultCount > 20 ? false : true;
}
@Override
public void end() {
}
})).execute();
db.commit();
System.out.println(result.size());
for(ODocument doc : result){
System.out.println(doc);
}
} finally {
db.close();
}
}
}