You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by eric b <er...@free.fr> on 2011/08/16 01:31:15 UTC

How to rebuild types.rdb ?

Hi,

Doing some performance tests, I just figured out the types.rdb file  
is a binary file, just provided in the sources.

Can someone explain me :

- why a binary blob is directly provided in OpenOffice.org sources ?  
( OOO320_m1x  for instance, but DEV300 is probably the same)

- how to create a new types.rdb (and what are the mandatory tools) ?


Thanks in advance,
Eric Bachard

-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by eric b <er...@free.fr>.
Hi Michael,

Le 18 août 11 à 13:57, Michael Stahl a écrit :

>> Yes thanks, I read, it, but I can't check for sb111 cws ? hg seems  
>> to be down, or at least not accessible. Do you have a diff  
>> available ?
>
> well it was integrated a long time ago (for 3.3 release IIRC), so  
> the CWS has been deleted from the HG server.
>


Ah, ok.


> you'll have to dig into the main DEV300/OOO340 HG history, search  
> the log for the CWS name.
>

I got an hg blob on my disk (not sure it's that recent though), is it  
what you mean ? Or is there another way to obtain one ?

 From my side, I'll search once I'll have found how to extract a cws  
from it (if possible).


Regards,
Eric

-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by Michael Stahl <ms...@openoffice.org>.
On 18.08.2011 13:52, eric b wrote:
> Hi Stephan,
>
> Le 18 août 11 à 09:51, Stephan Bergmann a écrit :

>> incl. combining the data files to a few big ones, was done in CWS
>> sb111, see
>> <http://wiki.services.openoffice.org/wiki/Performance/Configuration>.
>
>
>
> Yes thanks, I read, it, but I can't check for sb111 cws ? hg seems to be
> down, or at least not accessible. Do you have a diff available ?

well it was integrated a long time ago (for 3.3 release IIRC), so the 
CWS has been deleted from the HG server.

you'll have to dig into the main DEV300/OOO340 HG history, search the 
log for the CWS name.

regards,
  michael


Re: How to rebuild types.rdb ?

Posted by eric b <er...@free.fr>.
Hi Stephan,

Le 18 août 11 à 09:51, Stephan Bergmann a écrit :

>> Do you remember the name of the cws ?  I'd like to study the  
>> diffs.   Of course, we could discuss about that on IRC too (more  
>> easy for me too).
>
> The configmgr reimplementation,


I remember.


> incl. combining the data files to a few big ones, was done in CWS  
> sb111, see <http://wiki.services.openoffice.org/wiki/Performance/ 
> Configuration>.



Yes thanks, I read, it, but I can't check for sb111 cws ?  hg seems  
to be down, or at least not accessible.  Do you have a diff available ?



> I'll try to be on #dev.openoffice.org next week, but can't promise.
> See you,
>

Great, See you !

Eric

-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by Stephan Bergmann <st...@googlemail.com>.
On Aug 18, 2011, at 9:05 AM, eric b wrote:
> Le 17 août 11 à 20:20, Stephan Bergmann a écrit :
>> On Aug 16, 2011, at 9:27 AM, eric b wrote:
>>> With a cold start, occurs a big and costly I/O read write process. Searching what seems to cause that, it appears the .rdb files are good candidates. I can be plain wrong, but I think there are a lot of services embedded in the interface, who probably could be loaded ... say somethingl like on demand or at least differently, no ?
>> 
>> Reading a few large files during startup is typically faster overall than reading information in small chunks, on demand.  (That's why I changed the configmgr's .xcs/.xcu files, combining them into a handful of large .xcd files, for example.)
> 
> 
> I think I'll implement this in OOoLight, OOo4Kids. Two goals : understand, document and be able to explain people learning OOo source code, and continue to analyze the perf improvement.
> 
> Do you remember the name of the cws ?  I'd like to study the diffs.   Of course, we could discuss about that on IRC too (more easy for me too).

The configmgr reimplementation, incl. combining the data files to a few big ones, was done in CWS sb111, see <http://wiki.services.openoffice.org/wiki/Performance/Configuration>.

I'll try to be on #dev.openoffice.org next week, but can't promise.

See you,
-Stephan

Re: How to rebuild types.rdb ?

Posted by eric b <er...@free.fr>.
Hi Stephan,

Le 17 août 11 à 20:20, Stephan Bergmann a écrit :

> On Aug 16, 2011, at 9:27 AM, eric b wrote:
>> Le 16 août 11 à 08:34, Mathias Bauer a écrit :
>>> On 16.08.2011 01:31, eric b wrote:
>>>> Doing some performance tests, I just figured out the types.rdb  
>>>> file is a binary file, just provided in the sources.
>>>>
>>>> Can someone explain me :
>>>>
>>>> - why a binary blob is directly provided in OpenOffice.org  
>>>> sources ?
>>>> ( OOO320_m1x  for instance, but DEV300 is probably the same)
>>>
>>> I think that this is the reference file that is used to check the  
>>> IDL files against incompatible changes.
>>>
>>
>>
>> Thanks to confirm what I had in mind :-)
>>
>> Does this method to allow "OpenOffice.org growing" only ?  If we  
>> systematicaly compare to an existing but fixed blob, we have no  
>> way to remove useless/no longer needed services ? (but maybe I  
>> misunderstood )
>
> The relevant items in types.rdb are flagged as "published," meaning  
> they must not change or be taken away (unless we want to become  
> incompatible).
>


That's my concern, but better discuss on IRC too ?


>> With a cold start, occurs a big and costly I/O read write process.  
>> Searching what seems to cause that, it appears the .rdb files are  
>> good candidates. I can be plain wrong, but I think there are a lot  
>> of services embedded in the interface, who probably could be  
>> loaded ... say somethingl like on demand or at least differently,  
>> no ?
>
> Reading a few large files during startup is typically faster  
> overall than reading information in small chunks, on demand.   
> (That's why I changed the configmgr's .xcs/.xcu files, combining  
> them into a handful of large .xcd files, for example.)


I think I'll implement this in OOoLight, OOo4Kids. Two goals :  
understand, document and be able to explain people learning OOo  
source code, and continue to analyze the perf improvement.

Do you remember the name of the cws ?  I'd like to study the diffs.    
Of course, we could discuss about that on IRC too (more easy for me  
too).


>   And yes, Mathias, IIRC Matthias did indeed improve something  
> about the performance of the binary format used by types.rdb not  
> too long ago,
> but can't remember what it was.

Well, I think I missed the information, but I'll ask Mathias.



Regards,
Eric

-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by Stephan Bergmann <st...@googlemail.com>.
On Aug 16, 2011, at 9:27 AM, eric b wrote:
> Le 16 août 11 à 08:34, Mathias Bauer a écrit :
>> On 16.08.2011 01:31, eric b wrote:
>>> Doing some performance tests, I just figured out the types.rdb file is a binary file, just provided in the sources.
>>> 
>>> Can someone explain me :
>>> 
>>> - why a binary blob is directly provided in OpenOffice.org sources ?
>>> ( OOO320_m1x  for instance, but DEV300 is probably the same)
>> 
>> I think that this is the reference file that is used to check the IDL files against incompatible changes.
>> 
> 
> 
> Thanks to confirm what I had in mind :-)
> 
> Does this method to allow "OpenOffice.org growing" only ?  If we systematicaly compare to an existing but fixed blob, we have no way to remove useless/no longer needed services ? (but maybe I misunderstood )

The relevant items in types.rdb are flagged as "published," meaning they must not change or be taken away (unless we want to become incompatible).

> With a cold start, occurs a big and costly I/O read write process. Searching what seems to cause that, it appears the .rdb files are good candidates. I can be plain wrong, but I think there are a lot of services embedded in the interface, who probably could be loaded ... say somethingl like on demand or at least differently, no ?

Reading a few large files during startup is typically faster overall than reading information in small chunks, on demand.  (That's why I changed the configmgr's .xcs/.xcu files, combining them into a handful of large .xcd files, for example.)  And yes, Mathias, IIRC Matthias did indeed improve something about the performance of the binary format used by types.rdb not too long ago, but can't remember what it was.

-Stephan

Re: How to rebuild types.rdb ?

Posted by eric b <er...@free.fr>.
Le 16 août 11 à 09:39, Mathias Bauer a écrit :

> On 16.08.2011 09:27, eric b wrote:
>
>> Does this method to allow "OpenOffice.org growing" only ?  If we
>> systematicaly compare to an existing but fixed blob, we have no way
>> to remove useless/no longer needed services ? (but maybe I
>> misunderstood )
>
> We can do with that reference file whatever we want, until now we  
> had the requirement to refrain from incompatible API changes. Some  
> time ago
> we decided that incompatible API changes should be allowed for  
> future major releases of OOo, so the reference rdb usually would  
> become the one
> of the last major release. There also is an exception list with  
> "allowed incompatible changes", e.g. removal of superfluous  
> (unused) types. This
> list usually was maintained by the API project lead, Jürgen Schmidt.
>

Ok I think I understand.  So correct me if I'm wrong : at every  
build, we compare the just built one with the reference. Any  
difference triggers a breaker.


>> With a cold start, occurs a big and costly I/O read write process.
>> Searching what seems to cause that, it appears the .rdb files are
>> good candidates. I can be plain wrong, but I think there are a lot of
>> services embedded in the interface, who probably could be loaded ...
>> say somethingl like on demand or at least differently, no ?
>
> Sorry, I don't understand. Are you referring the cold start of the  
> OpenOffice.org application? That would be a completely unrelated
> discussion.


Sorry, I mixed my first question and what I'm currently doing :)



> IIRC Stephan Bergmann and/or Matthias Hütsch have worked on  
> performance improvements regarding types.rdb in the OOo 3.2 release  
> time
> frame.
>



Yes, and his work interests me.


Thanks,
Eric

-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by eric b <er...@free.fr>.
Le 17 août 11 à 08:43, Jürgen Schmidt a écrit :

> Hi,
>

Hi Jürgen,


> sorry for the late response but i am currently not in HH until  
> Sunday and
> can not frequently check my emails
>


No problem, I'm completely busy too for a lot of reasons :)

>>
>> We can do with that reference file whatever we want, until now we had
>> the requirement to refrain from incompatible API changes. Some  
>> time ago
>> we decided that incompatible API changes should be allowed for future
>> major releases of OOo, so the reference rdb usually would become  
>> the one
>> of the last major release. There also is an exception list with  
>> "allowed
>> incompatible changes", e.g. removal of superfluous (unused) types.  
>> This
>> list usually was maintained by the API project lead, Jürgen Schmidt.
>>
>
> well, we decided to allow incompatible changes but we should of  
> course be careful and should discuss such changes before.


That's easy to understand.


> I will search the initial proposal how to handle such changes when  
> i am back in HH.
>


Thanks a lot !

> The existing reference rdb is updated after every new official  
> release from me and further manual changes are documented in the  
> history file with some
> comments and relating bug ids
>


Ok, interesting.

>
> it's simply the way how we define interfaces between different  
> components and can use this interface from different (by UNO  
> supported languages). For
> example the extensions make use of well defined interfaces (defined  
> in IDL and implemented somewhere in the office) to communicate with  
> the office. Or
> extensions can implement specific interfaces on their own (e.g.  
> spellchecker) and can replace an existing impl or can extend a list of
> implemenatations. Think about filters, spellchcker, smart tags,  
> grammar checker and many more. But it is also possible to define  
> completely new
> interfaces and implement in an extenssion and make use of this  
> stuff from other extensions or macros. A comfortable way to  
> implement some busness or
> company logic ...
> If you have more concrete questions please ask or we can IRC next  
> week also.
>


Yes I have, and IRC is ok for me. Say one morning like monday or  
tuesday,  #dev.openoffice.org ?

Thanks,
Eric

-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by Jürgen Schmidt <jo...@googlemail.com>.
Hi,

sorry for the late response but i am currently not in HH until Sunday and
can not frequently check my emails

On Tue, Aug 16, 2011 at 9:39 AM, Mathias Bauer <Ma...@gmx.net>wrote:

> On 16.08.2011 09:27, eric b wrote:
>
> > Does this method to allow "OpenOffice.org growing" only ?  If we
> > systematicaly compare to an existing but fixed blob, we have no way
> > to remove useless/no longer needed services ? (but maybe I
> > misunderstood )
>
> We can do with that reference file whatever we want, until now we had
> the requirement to refrain from incompatible API changes. Some time ago
> we decided that incompatible API changes should be allowed for future
> major releases of OOo, so the reference rdb usually would become the one
> of the last major release. There also is an exception list with "allowed
> incompatible changes", e.g. removal of superfluous (unused) types. This
> list usually was maintained by the API project lead, Jürgen Schmidt.
>

well, we decided to allow incompatible changes but we should of course be
careful and should discuss such changes before. I will search the initial
proposal how to handle such changes when i am back in HH.

The existing reference rdb is updated after every new official release from
me and further manual changes are documented in the history file with some
comments and relating bug ids


>
> > With a cold start, occurs a big and costly I/O read write process.
> > Searching what seems to cause that, it appears the .rdb files are
> > good candidates. I can be plain wrong, but I think there are a lot of
> > services embedded in the interface, who probably could be loaded ...
> > say somethingl like on demand or at least differently, no ?
>
> Sorry, I don't understand. Are you referring the cold start of the
> OpenOffice.org application? That would be a completely unrelated
> discussion. IIRC Stephan Bergmann and/or Matthias Hütsch have worked on
> performance improvements regarding types.rdb in the OOo 3.2 release time
> frame.
>
> >> The reference file must not be recreated as it belongs to an older
> >> version that the current source files are compared against.
> >>
> >
> > Thinking rwice I start to see better, and I can imagine people (say
> > companies providing services around OOo) playing with IDL files and
> > introducing some issues, indeed.
>

it's simply the way how we define interfaces between different components
and can use this interface from different (by UNO supported languages). For
example the extensions make use of well defined interfaces (defined in IDL
and implemented somewhere in the office) to communicate with the office. Or
extensions can implement specific interfaces on their own (e.g.
spellchecker) and can replace an existing impl or can extend a list of
implemenatations. Think about filters, spellchcker, smart tags, grammar
checker and many more. But it is also possible to define completely new
interfaces and implement in an extenssion and make use of this stuff from
other extensions or macros. A comfortable way to implement some busness or
company logic ...

If you have more concrete questions please ask or we can IRC next week also.

Juergen


> >
> > In fact I never played too much with idl files (seems to be a simple
> > interface, that UNO will handle, isn't it ? ), excepted when we added
> > code for Impress annotation mode, and that's probably the reason why
> > I ask stupid questions in this domain I don't know well :-)
>
> Your questions weren't stupid at all. :-)
>
> Regards,
> Mathias
>

Re: How to rebuild types.rdb ?

Posted by Mathias Bauer <Ma...@gmx.net>.
On 16.08.2011 09:27, eric b wrote:

> Does this method to allow "OpenOffice.org growing" only ?  If we  
> systematicaly compare to an existing but fixed blob, we have no way  
> to remove useless/no longer needed services ? (but maybe I  
> misunderstood )

We can do with that reference file whatever we want, until now we had
the requirement to refrain from incompatible API changes. Some time ago
we decided that incompatible API changes should be allowed for future
major releases of OOo, so the reference rdb usually would become the one
of the last major release. There also is an exception list with "allowed
incompatible changes", e.g. removal of superfluous (unused) types. This
list usually was maintained by the API project lead, Jürgen Schmidt.

> With a cold start, occurs a big and costly I/O read write process.  
> Searching what seems to cause that, it appears the .rdb files are  
> good candidates. I can be plain wrong, but I think there are a lot of  
> services embedded in the interface, who probably could be loaded ...  
> say somethingl like on demand or at least differently, no ?

Sorry, I don't understand. Are you referring the cold start of the
OpenOffice.org application? That would be a completely unrelated
discussion. IIRC Stephan Bergmann and/or Matthias Hütsch have worked on
performance improvements regarding types.rdb in the OOo 3.2 release time
frame.

>> The reference file must not be recreated as it belongs to an older  
>> version that the current source files are compared against.
>>
> 
> Thinking rwice I start to see better, and I can imagine people (say  
> companies providing services around OOo) playing with IDL files and  
> introducing some issues, indeed.
> 
> In fact I never played too much with idl files (seems to be a simple  
> interface, that UNO will handle, isn't it ? ), excepted when we added  
> code for Impress annotation mode, and that's probably the reason why  
> I ask stupid questions in this domain I don't know well :-)

Your questions weren't stupid at all. :-)

Regards,
Mathias

Re: How to rebuild types.rdb ?

Posted by eric b <er...@free.fr>.
Hi Mathias,

Le 16 août 11 à 08:34, Mathias Bauer a écrit :

> On 16.08.2011 01:31, eric b wrote:
>
>> Hi,
>>
>> Doing some performance tests, I just figured out the types.rdb  
>> file is a binary file, just provided in the sources.
>>
>> Can someone explain me :
>>
>> - why a binary blob is directly provided in OpenOffice.org sources ?
>> ( OOO320_m1x  for instance, but DEV300 is probably the same)
>
> I think that this is the reference file that is used to check the  
> IDL files against incompatible changes.
>


Thanks to confirm what I had in mind :-)

Does this method to allow "OpenOffice.org growing" only ?  If we  
systematicaly compare to an existing but fixed blob, we have no way  
to remove useless/no longer needed services ? (but maybe I  
misunderstood )

With a cold start, occurs a big and costly I/O read write process.  
Searching what seems to cause that, it appears the .rdb files are  
good candidates. I can be plain wrong, but I think there are a lot of  
services embedded in the interface, who probably could be loaded ...  
say somethingl like on demand or at least differently, no ?



>> - how to create a new types.rdb (and what are the mandatory tools) ?
>
> The reference file must not be recreated as it belongs to an older  
> version that the current source files are compared against.
>

Thinking rwice I start to see better, and I can imagine people (say  
companies providing services around OOo) playing with IDL files and  
introducing some issues, indeed.

In fact I never played too much with idl files (seems to be a simple  
interface, that UNO will handle, isn't it ? ), excepted when we added  
code for Impress annotation mode, and that's probably the reason why  
I ask stupid questions in this domain I don't know well :-)


Regards,
Eric
>

-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by Mathias Bauer <Ma...@gmx.net>.
On 16.08.2011 01:31, eric b wrote:

> Hi,
> 
> Doing some performance tests, I just figured out the types.rdb file  
> is a binary file, just provided in the sources.
> 
> Can someone explain me :
> 
> - why a binary blob is directly provided in OpenOffice.org sources ?  
> ( OOO320_m1x  for instance, but DEV300 is probably the same)

I think that this is the reference file that is used to check the IDL
files against incompatible changes.

> - how to create a new types.rdb (and what are the mandatory tools) ?

The reference file must not be recreated as it belongs to an older
version that the current source files are compared against.

Regards,
Mathias

Re: How to rebuild types.rdb ?

Posted by eric b <er...@free.fr>.
Hi,

Le 16 août 11 à 04:23, Chaosun a écrit :

>
>>> - why a binary blob is directly provided in OpenOffice.org sources ?
>>> ( OOO320_m1x  for instance, but DEV300 is probably the same)
>
> "This file is provided with OpenOffice.org and brings a virtual  
> image of all the idl files used by OOo.

Indeed. But what is the goal ?  Compare what we build with a reference ?



> You can use it to create all the hpp and hdl files needed."
>


Okn thanks.  During the build, we create something similar, and   
compare with regcomp.


>>> - how to create a new types.rdb (and what are the mandatory tools) ?
>
> IMHO, you don't need to create a new types.rdb, the office won't  
> work in that way. It's all API related. However, you could write  
> your own idl to have a update on types.rdb.


Yes, if I want to add my own services. But in this case, I'd like to  
remove some services, to analyze / see the relation between cold  
start and services.rdb size. I'm pretty sure this is linked.


>
> More, you can check the contains of .rdb file using regview  
> command, also can output to a .txt file using "Regview types.rdb >  
> service.txt". Then, you will get the pic what is that.


That's the point : I was using regcomp, but that's another usage, and  
I'll play with regview now. Thanks for pointing me in a better  
direction :-)


Regards,
Eric Bachard


-- 
qɔᴉɹə
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news






Re: How to rebuild types.rdb ?

Posted by Chaosun <su...@redoffice.com>.
>>- why a binary blob is directly provided in OpenOffice.org sources ?  
>>( OOO320_m1x  for instance, but DEV300 is probably the same)

"This file is provided with OpenOffice.org and brings a virtual image of all the idl files used by OOo. You can use it to create all the hpp and hdl files needed."

>>- how to create a new types.rdb (and what are the mandatory tools) ?

IMHO, you don't need to create a new types.rdb, the office won't work in that way. It's all API related. However, you could write your own idl to have a update on types.rdb.

More, you can check the contains of .rdb file using regview command, also can output to a .txt file using "Regview types.rdb > service.txt". Then, you will get the pic what is that.

Chao