A few of points:
- CategoryWorker.getCategoriesWithNoParent(...) is a seldom used method and 
certainly not used in the eCommerce application.  If would be better to 
understand properly how OFBiz navigates Categories and then worry about the 
performance of that.  I'm quite sure that method could be improved though.
- A structure of 1 million categories is in my opinion probably not a good one, 
my guess is that they may have more categories than parts and is probably 
indicative of the limitations of the software they're using rather than OFBiz's 
limitations.  OFBiz provides many methods for navigating, filtering and 
searching around products.  Are there going to bottlenecks when you have 
millions of products? Absolutely, but I'm quite sure they could be overcome 
fairly easily.
- I don't believe primaryParentCategory can be used in this case, it is merely 
additional information that is not guaranteed to be present.  I would either 
create a view entity that forms an outer join between ProductCategory and 
ProductCategoryRollup (although that may not be performant enough), or 
otherwise I would introduce some stronger business rules that prevent 
categories being created if the don't have a parent (either parent category or 
catalog).

Regards
Scott

HotWax Media
http://www.hotwaxmedia.com

On 30/04/2010, at 11:02 PM, Michal Cukierman wrote:

> Sorry for sending you another message but I have just found an interesting
> link:
> 
> http://allegro.pl/category_map.php
> 
> It's a category map.
> 
> If you want to use OFBiz in real commercial systems (not for SMB industry)
> you need to face such use cases.
> 
> Regards,
> Michał Cukierman
> 
> W dniu 30 kwietnia 2010 12:56 użytkownik Michal Cukierman
> <[email protected]>napisał:
> 
>> Hi,
>> 
>> Yes I am sure that I am talking about categories. See the example of
>> rockauto or any other automotive ecommerce shop:
>> 200 brands x 20 years x 10 models x 5 engine types x 12 part groups
>> (interior, engine, exterior, accesories)
>> 200 x 20 x 10 x 5 x 12 = 2 400 000.
>> Its only an example. Software like Alldata or PartExpert generates much
>> more cateogies. What about American car parts association?
>> 
>> Anyway this is not a case. It's not a point to discuss.
>> Please consider the application with 10 000 categories and select * from
>> statement running concurently. Please try to update some category with
>> ReadCommited isolation level (As you use as default).
>> 
>> This disscusion does not make sens. My question was:
>> - What is the way of using primary_parent_category?
>> - Is my fix ok?
>> - In addition I pointed you a mistake in your code (which kills my
>> application and is a performance issue)
>> - I said that i will prepare a patch as soon as I will find whats around
>> 
>> Whats you response:
>> - read our books that could be bought here
>> - your fix is a bad one, no suggestion how to improve it
>> - our code is a good one and we don't need to change it. As ofbiz works on
>> my laptop
>> - after such constructive responses I don't really want to sent you my
>> patches (just to show you, not saying that you are going to commit it)
>> 
>> All I wanted to do from my side is to give you my input and a little help.
>> After all, I still can't understand why selecting even 1000 record from
>> database if we need to use 10 is a good solution.
>> 
>> Regards,
>> Michał
>> 
>> 
>> 
>> 
>> W dniu 30 kwietnia 2010 12:06 użytkownik BJ Freeman 
>> <[email protected]>napisał:
>> 
>> are you sure you are not referring to 1 million products.
>>> I run in the real world over 100,000 products.
>>> I have approx 18 top categories with 3-10 levels of sub categories.
>>> if your see 1,000,000 categories that way then it is feasible.
>>> I use automated updating from my suppliers to keep thing up-to-date.
>>> these updates happen every 24 for prices new and obsolete products.
>>> availability is as often as 15 min.
>>> The average Cpu usage during these operations is about 15% of a 1.6ghz
>>> Cpu with enough RAM to not use the swap file. the peak cpu usage is
>>> about 75% when the scheduled services and large imports (1 gig data) are
>>> happening.
>>> 
>>> 
>>> =========================
>>> BJ Freeman
>>> http://bjfreeman.elance.com
>>> Strategic Power Office with Supplier Automation <
>>> http://www.businessesnetwork.com/automation/viewforum.php?f=93>
>>> Specialtymarket.com <http://www.specialtymarket.com/>
>>> 
>>> Systems Integrator-- Glad to Assist
>>> 
>>> Chat  Y! messenger: bjfr33man
>>> Linkedin
>>> <
>>> http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro
>>>> 
>>> 
>>> 
>>> Michal Cukierman sent the following on 4/30/2010 1:51 AM:
>>>> Hello,
>>>> 
>>>> Thank you for your quick response. Regarding your question about real
>>> world
>>>> applications:
>>>> Ecommerce:
>>>> http://www.rockauto.com/
>>>> http://allegro.pl/
>>>> 
>>>> There are applications that holds > 1 000 000 categories.
>>>> In a PLM industry it's also very common to have a couple of milions of
>>>> objects (consider the complexity of a train or a plain for example).
>>>> 
>>>> The point of my post was not a fix, but the implementation of  the find
>>> root
>>>> category method.
>>>> I think that you should avoid such a code. You have got great database
>>> layer
>>>> (great possibility to improve performance)  so it would be great to
>>> utilize
>>>> it as much as it's possible.
>>>> I really like Ofbiz application thats why I try to give you my input.
>>>> 
>>>> Once again thank you for the response and for the link you send me. I
>>> will
>>>> come back with the better solution after studing  the datamodel.
>>>> 
>>>> Regards,
>>>> Michał Cukierman
>>>> 
>>>> 
>>>> 
>>>> W dniu 30 kwietnia 2010 10:11 użytkownik Jacques Le Roux <
>>>> [email protected]> napisał:
>>>> 
>>>>> For instanc
>>>> 
>>> 
>>> 
>>> 
>> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to