Jump to content

Community

Ibragim Pupkevich

+Clients
  • Posts

    392
  • Joined

  • Days Won

    1

 Content Type 

Profiles

Downloads

IPS4 Providers

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Forums

Store

Posts posted by Ibragim Pupkevich

  1. You may see an example of my Redis keys storage structure, and also what I saw in IPS Redis database... 

    Okay, well, IPS is going to store some templates, widget codes etc. in cache storage engine, but there is almost nothing about core data nodes storage like forums, topics, posts etc.

    IPS keys pool looks more like cloaca rather than clear and well structured set of keys.

    So, okay, you save some MySQL resources getting heavy templates from memory cache instead of relative DB (MySQL) or filesystem, but it's just small piece of items, which are impacting performance.

    In my humble opinion, when we are talking about massive database, the main deceleration appears not because you fetch heavy data nodes from relative database, but it appearch exactly because you have to fetch too many small items from DB. But in case of IPS they are not going to be cached as I can see.

    For example - okay, I have over 1000 forums, each forum has over 100 attributes and around 200 access rights flags. Would you agree, that almost all attributes of all these forums and also access rights flags are not changing dynamically when forums is just running? They may be changed only if administrator is going to adjust forum settings in ACP. So, why not to cache all this faeces once after every forums goes to through [Edit -> Save] event? Next time you will have to reset cache only in case forum will be modified in ACP again!

    predis_IPS.PNG

     

     

    Another example, to make things even more clear:

    In my project I have few large tables in database with airports, cities and countries. Would you imagine, if I would need to build whole picture requiring details from all these 3 tables, how heavy could be my SQL query? How many JOINs I would have in query? What I have finally achieved is - I have duplicated almost all static data in Redis and in the very and now I have zero number of queries with sub-quesries. I get main node from MySQL with simple query, all other attributes I get from cache storage.

     

    predis1.PNG

  2. On 26.02.2017 at 9:46 PM, fosters said:

    Hiding it via CSS would still call all the php code to fetch and output the subforums...  Using a plugin to stop IPS4 from executing this could results in less overhead.

    My 0.02$

    I tried to use this plugin and force index board to not show sub-forums. But unfortunately it doesn't bring any performance boost.

    The real problem I see after deep dive is caching. I have already described this issue few posts ago, but nobody paid attention. 

    Really - if you will dive deep into caching logs, you will find that entire HTML of index and other pages are going to be cached/stored directly in MySQL database. Even if you have configured some faster chache engine like Redis.

    Couple of weeks ago I have finished building my own high-load web-site. And I dived deep into Redis, took Redis engine as main chache storage. And I was really shocked how cool this engine can boost entire core performance if it's integrated/used properly. But after some analysis of IPS cache logs (with Redis enabled) I found that even IPS offers integration of many different caching engines out of the box, real cache usage is really poor. It's not integrated deep with IPS core functions.

  3. BTW, @Tom Irons, as tip link is not so neccessary field to be kept in core members table (it isn't searchable, appears only in particular templates, not everywhere), it's better to move tip link db field to some other db table, like custom fields table. Otherwise some day my core members tables will become huge and slow.

  4. Hi there!

    Did anyone succeed with installation of some extra plugins for CKE Editor?

    There are a lot of plugins in their repository. And formally IPS offers a chance to install them easily from ACP.

    But I tried to install few and they have just crashed my CKE editor, I had to roll back my editor to default settings.

    Please share some plugins, which you have succeessfully installed and use with IPS CKE editor.

    Thx!

  5. @Tracy Perry @CalvinK on one hand you are absolutely right and I'd fully agree with you.

    But on other hand - now I have >20k daily visitors, which are mosgly coming from search engines (~70% of traffic comes from google+yandex). And this is pure organic income. 

    I'm really afraid that if I will destroy forum-per-model structure and switch to prefixes, I will lose a lot...

    So, it's not so easy to switch and you see - this subject is quite sensitive in my case :(

  6. 1 minute ago, TSP said:

    a lot of node items will likely contribute to slower loads as there are more language strings that needs to be parsed out

    I don't think that parsing of variables may become huge workload for high-performance server. If you have a lot of free RAM, everything should be cached well in RAM and work fast. But what I see is that if you set IPS to cache pages for guests, it will write cache to DB ignoring any caching method you choose/configure in ACP data store settings page.

    I was really frustrated, when I saw first time, how many GB are transfering to/from DB... now it seems I try to understand the root cause.

  7. Just now, SammyS said:

    Maybe a way to hide those subforums from the home... I think there´s something like that in the marketplace

    I tried to use that plugin from marketplace to hide subforums from board index. Unfortunately it doesn't improve performance of board index page at all :( 

    Can't really reduce number of forums. But I know very old community, which is still running 3.x or even older version (http://4pda.ru/forum/), they have more than 2000 forums and over 10000 online users at the same time is absolutely fine for their board...

  8. Hi guys.

    You may remember, recently I was sharing my concerns about general low performance of IPS 4.x.

    It is still making me a little bit crazy. The most slow page I have is board index (where all the forums are listed). Sometimes it takes up to 3-5 seconds to load this page.

    Just to remind: I have powerful multi-core CPU + SSD + a lot of RAM dedicated server running my community.

    I tried everything. I tried to disable all plugins and 3rd party app to make my community become virgin again. I tried to tune up MySQL settings, I tried to enable OPchache. Whatever you can imagine.

    At the same time I was always looking at official InvisionPower community (this one, yeah), I always looked how fast board index page is loading here and it was making me nervous all the way. God, how come it works so fast? - I thought in hearts.

    And finally today I have noticed the main difference between my community and this one (InvisionPower official). We have almost same number of visitors (avg. 300-500 online at the same time), almost same number of posts (over 500k). But there is one difference. We have different number of forums. My community has over 500 forums, but IPS community has just few (I think less than 50, I'm lazy to count preceisely). And therefore my board index page is quite long (3 or 4 screens), but IPS community board index is very short, even less than 1 screen.

    What I tried to do, you know? I just tried to make a copy of my community on test server and remove all forums except few. I left just 4 or 5 forums.

    And you know what? After I have reduced number of forums, my board index page is just flying like damned swallow in the sky before summer rain.

    Meanwhile I have to say, that almost all other pages (forum view, topic view etc.) are loading quite fast even with high number of forums.

    So... dear IPS team. Could you kindly comment on this? I'm really frustrated a bit that you are running such great and powerful app with beautiful code. But there is such bottle neck right on index page.

    Hope you will investigate this problem ASAP and get back with positive feedback!

    Thanks!

  9. @Tom Irons

    Please kindly note, that tip button node is not very matching parent node type (div inside of list instead of list element) :)

    (Default IPS template)

    tiptiptip.thumb.PNG.01dfbc99d8780d7d2ea0586f1cad2971.PNG

  10. Strange, but it doesn't work on my board at all :( I've configured everything correct incl. access rights, but nothing appears in front end when I type anything in search box. Also no any error in console :(

    How to debug?

    UPD. Figured out root cause: your plugin was in conflict with Kitchen Sink plugin. Just moved your plugin above Kitchen Sink and works fine now.

  11. UPD:

    Please add verification for empty content of input field, otherwise it's impossible to remove link in UCP.

    				/* Is the link not valid? */
    				if ( $val != '' && filter_var($val, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_HOST_REQUIRED)=== FALSE )
    				{
    					throw new \DomainException( 'tipAuthor_notValid' );
    				}

     

×
×
  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy