Re: [basex-talk] Creating db in restxq interface

2016-05-23 Thread Henning Phan
Hi Christian,Just wanted to give you feedback. The job did finish it took 
approximately 30 minutes and around 900 MB memory.
As basexgui does the same thing in 5 minutes I rather recommend my users to 
load the data in basexgui instead.
> From: christian.gr...@gmail.com
> Date: Mon, 23 May 2016 14:24:34 +0200
> Subject: Re: [basex-talk] Creating db in restxq interface
> To: henningp...@hotmail.com
> CC: basex-talk@mailman.uni-konstanz.de
> 
> Hi Henning,
> 
> > db:create("test", "5GB.xml")
> 
> You could try to set the ADDCACHE option:
> 
>   db:create('test', '5GB.xml', (), map { 'addcache': true() })
> 
> The CREATE command will probably be faster, because we can ignore some
> of the XQuery Update semantics on command level.
> 
> Hope this helps,
> Christian
> 
> 
> 
> > results in a crash. It uses more than 1 GB in memory, I changed the http
> > server memory to 1024MB, and takes more than 20 minutes as the job never
> > finished. Doing the same thing but with basexGUI takes 5 minutes and uses
> > 500 MB memory and finishes.
> >
> > My question are:
> > what is the difference between basexgui and restxq to give such discrepency,
> > are they not using the same function?
> > Am I maybe creating the database incorrectly? Is there another db:create
> > function I missed?
> >
> > (Sorry if I sent two mails to Christian Grun)
> >
> >
> >
> >> From: christian.gr...@gmail.com
> >> Date: Sun, 22 May 2016 12:32:17 +0200
> >> Subject: Re: [basex-talk] Creating db in restxq interface
> >> To: henningp...@hotmail.com
> >> CC: basex-talk@mailman.uni-konstanz.de
> >>
> >> Hi Henning,
> >>
> >> The XQuery Update specification does not allow users to mix updating
> >> expressions and return data at the same time. The slides of Arve and
> >> Sabine (see [1]) will give you some hints how updates are usually
> >> performed in RESTXQ contexts. The slides are from 2013, and some
> >> convenience functions have been added since then, but the basic
> >> principle is the same as before. In a nutshell:
> >>
> >> * Use db:output() to both return data and do updates [2];
> >> * use web:redirect() to redirect to another success page [3];
> >> * alternatively, activate the MIXUPDATES option in web.xml to disable
> >> the XQuery Update restriction [4].
> >>
> >> Hope this helps,
> >> Christian
> >>
> >> [1] http://files.basex.org/publications/xmlprague/2013.html
> >> [2] http://docs.basex.org/wiki/Database_Module#db:output
> >> [3] http://docs.basex.org/wiki/Web_Module#web:redirect
> >> [4] http://docs.basex.org/wiki/XQuery_Update#Returning_Results
> >>
> >>
> >> > declare
> >> > %rest:path("/start")
> >> > %updating
> >> > %output:method("xhtml")
> >> > %output:omit-xml-declaration("no")
> >> > %output:doctype-public("-//W3C//DTD XHTML 1.0 Transitional//EN")
> >> >
> >> >
> >> > %output:doctype-system("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";)
> >> > function page:hello()
> >> > as element(Q{http://www.w3.org/1999/xhtml}html)
> >> > {
> >> > http://www.w3.org/1999/xhtml";>
> >> > Good day Sir!
> >> > 
> >> > The current time is: { current-time() }
> >> > 
> >> > 
> >> > Home
> >> > Link 1
> >> > Link 2
> >> > Link 3
> >> > 
> >> > {
> >> > for $result in db:open('factbook')//continent/@name
> >> > return { data($result) }
> >> > }
> >> > 
> >> > {
> >> > db:create("test")
> >> > }
> >> > 
> >> > 
> >> > 
> >> >
> >> >
> >> > === File End 
  

Re: [basex-talk] Creating db in restxq interface

2016-05-23 Thread Christian GrĂ¼n
Hi Henning,

> db:create("test", "5GB.xml")

You could try to set the ADDCACHE option:

  db:create('test', '5GB.xml', (), map { 'addcache': true() })

The CREATE command will probably be faster, because we can ignore some
of the XQuery Update semantics on command level.

Hope this helps,
Christian



> results in a crash. It uses more than 1 GB in memory, I changed the http
> server memory to 1024MB, and takes more than 20 minutes as the job never
> finished. Doing the same thing but with basexGUI takes 5 minutes and uses
> 500 MB memory and finishes.
>
> My question are:
> what is the difference between basexgui and restxq to give such discrepency,
> are they not using the same function?
> Am I maybe creating the database incorrectly? Is there another db:create
> function I missed?
>
> (Sorry if I sent two mails to Christian Grun)
>
>
>
>> From: christian.gr...@gmail.com
>> Date: Sun, 22 May 2016 12:32:17 +0200
>> Subject: Re: [basex-talk] Creating db in restxq interface
>> To: henningp...@hotmail.com
>> CC: basex-talk@mailman.uni-konstanz.de
>>
>> Hi Henning,
>>
>> The XQuery Update specification does not allow users to mix updating
>> expressions and return data at the same time. The slides of Arve and
>> Sabine (see [1]) will give you some hints how updates are usually
>> performed in RESTXQ contexts. The slides are from 2013, and some
>> convenience functions have been added since then, but the basic
>> principle is the same as before. In a nutshell:
>>
>> * Use db:output() to both return data and do updates [2];
>> * use web:redirect() to redirect to another success page [3];
>> * alternatively, activate the MIXUPDATES option in web.xml to disable
>> the XQuery Update restriction [4].
>>
>> Hope this helps,
>> Christian
>>
>> [1] http://files.basex.org/publications/xmlprague/2013.html
>> [2] http://docs.basex.org/wiki/Database_Module#db:output
>> [3] http://docs.basex.org/wiki/Web_Module#web:redirect
>> [4] http://docs.basex.org/wiki/XQuery_Update#Returning_Results
>>
>>
>> > declare
>> > %rest:path("/start")
>> > %updating
>> > %output:method("xhtml")
>> > %output:omit-xml-declaration("no")
>> > %output:doctype-public("-//W3C//DTD XHTML 1.0 Transitional//EN")
>> >
>> >
>> > %output:doctype-system("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";)
>> > function page:hello()
>> > as element(Q{http://www.w3.org/1999/xhtml}html)
>> > {
>> > http://www.w3.org/1999/xhtml";>
>> > Good day Sir!
>> > 
>> > The current time is: { current-time() }
>> > 
>> > 
>> > Home
>> > Link 1
>> > Link 2
>> > Link 3
>> > 
>> > {
>> > for $result in db:open('factbook')//continent/@name
>> > return { data($result) }
>> > }
>> > 
>> > {
>> > db:create("test")
>> > }
>> > 
>> > 
>> > 
>> >
>> >
>> > === File End