Multiple wikis terminology

Hi devs,

Context

In the context of this this thread, I’d like to open this brainstorming discussion to clarify the terminology we use.

IMO we need different terms for the following:

  • An XWiki installation (with one or several wikis)
  • An XWiki installation with several wikis (e.g. xwiki.org)
  • An XWiki installation used to host several independent wikis (e.g. myxwiki.org)

Analysis

Some definitions of wiki farms:

Thus for me the logic would be to use:

  • An XWiki installation with one or several wikis

= an XWiki instance

  • An XWiki installation with several wikis (e.g. xwiki.org)

= a multi-wiki XWiki instance (it is also an XWiki instance, and a multiwiki XWiki instance is a specific XWiki instance). Short version: a multi-wiki instance.

Synonym: a multi-tenant XWiki instance, see Multitenancy - Wikipedia

  • An XWiki installation used to host several independent wikis (e.g. myxwiki.org)

= an XWiki farm (it is also a multi-wiki instance, and an XWiki farm is a specific multi-wiki instance)

Note that inside companies, it’s possible to setup an XWiki instance to be used by different projects or entities of the company. In this case, the wikis are considered independent and the term “farm” would apply.

We could imagine keeping “farm” as a synonym of “instance” but I see at least 2 problems:

  • It’s not the usual acceptation of the term “farm” which, in all links I’ve found is meant to represent independent wikis.
  • We won’t have any word to mean “An XWiki installation used to host several independent wikis” and “farm” is the one that matches this the best by far. An idea would be to call it an “XWiki independent farm” but it’s not that great and the misuse of the word “farm” remains.

Regarding the “install on farm” label used by the EM UI, I’d say we could have:

  • “Install for current wiki” (instead of just “Install”). We could imagine keeping just “Install” if the instance has a single wiki.
  • “Install for all wikis” (instead of “install on farm”). Another idea is “Install on instance”. Side note: I think we need some tooltip (if we don’t already have one, I haven’t checked) to explain that this means that any future wiki will have the extension available on it when created.

Also note that when Multi-tenancy (XWiki.org) was created, it was meant to be used for hosting independent wikis, at least as the main use case. This is why we give the example of myxwiki.org in the doc. AFAIR we never really considered initially that we could use several wikis for an instance having a single purpose, i.e. the reason Ludovic created the concept of “virtual mode” with independent DBs, was to host independent wikis.

Now, it’s more work to change the terminology than to not do anything, so we need to decide if we want to go in this direction or not. Regarding APIs, the term “farm” is used in several places:

  • DistributionManager
  • WikiFarmFilter
  • AbstractCopyOrMoveRequest
  • SecurityReference#FARM
  • Right#FARM_ONLY
  • There’s also solr.synchronizeAtStartupMode=FARM in xwiki.properties

That’s quite a lot of changes… And too much work to change them IMO.

Conclusion

So, in conclusion, even though I believe we’re using the term “farm” a bit wrongly (i.e. differently than the common acceptation), I’d like to suggest that:

  1. We keep it as a synonym of “XWiki instance”, “multi-wiki” and “multi-tenant” (and “virtualization”, “virtual mode” which are deprecated).
  2. We define a terminology for “An XWiki installation used to host several independent wikis” and I propose an “independent farm” for lack of a better idea.
  3. I update the following wiki page to explain our terminology.

WDYT?

Thanks

Thank you. While I have a programming (and Java) background, I’m only administering a XWiki instance (install, upgrade, configure, etc.), so I know nothing about its internals.

This is one passage I do not completely get yet (even in the other thread): can you share a bit of what’s behind myxwiki? Is it: a) a single XWiki instance or b) a collection of isolated instances (maybe sharing some data, but separate processes or servlet cointainer deployments)?

Because if it’s a) then I’d like a clarification about what independenty wikis means: are they subwiki’s with some special configuration?

[edit]

I’m thinking that it could be useful to distinguish the wiki engine (process, instance, etc.) from the wiki content (i.e. collection of pages, plugins / extensions, etc.), when explaining the terminologies.

DokuWiki has its own too: farms [DokuWiki]

Why not name it “Install globally”? This will mean it’ll be installed for all wikis as it’s most common . Second naming is confusing due to the conflict with above-mentioned terminology

Another question to both terminology with a definition “An XWiki installation with one or several wikis” and “An XWiki installation with several wikis”. Using the word “several wikis” in both cases makes the XWiki instance and multi-wiki instance have the same concept. I assume better to describe the XWiki instance as the instance with one wiki or what you have as the initial state after installation.

In the end, that will be good to replace “farm” with more appropriate synonym/word.

Not really. Multi-wiki means more than 1 wiki. XWiki instance is 1 or several wikis.

I don’t agree with this as I don’t see any logical rationale to make “instance” means only 1 wiki.

Yes that would be an option. It’s a bit less precise and doesn’t mean much for the user since he’ll need to know what “globally” means.

1 Like

b) (single XWiki instance, having lots of independent wikis)

See https://myxwiki.org/

So a), actually :slight_smile:

2 Likes

Indeed, I read too fast, thanks :wink:

Ha! Here it is:

Rules & Limitations

This community farm is subject to the following rules:

  • […]
  • No performance warranty. This farm is hosting a lot of wikis and they share the same XWiki instance so it’s possible that you wiki will be slow.
  • […]
  • You won’t be able to create subwikis.

I must have missed it the first time I red the page, thanks :slight_smile:

So now, for me at least, before moving on to terms evaluation, the next question is about the difference between subwikis and independent wikis: if there’s only one instance, how comes the wikis are independent?

1 Like

I can confirm that for me, too this also complicated. What’s the meaning independant instance? How is it possible to determine independent or not?

Because they have different purposes and they have different permissions (one user of a subwiki cannot see another subwiki - unless the admin has allowed it ofc). Each wiki has a owner who manages his wiki the way he/she wants.

The fact that they are hosted on the same instance is irrelevant. It’s an optimization implementation that the wiki owner should not care about (except for the limitations of the services ofc).

FWIW XWiki Cloud is also a wiki farm, but they’re implementing it with different XWiki instances.