change idempiere to easy choose topology of hazelcast when deploy

Description

while doing https://idempiere.atlassian.net/browse/IDEMPIERE-3722#icft=IDEMPIERE-3722 I see some improve of cache on idempiere:

idempiere have two cache
+ distribute cache use hazelcast
+ internal cache development by dev

I suggest some improve:
+ internal cache can move to use a implement of JCache API (IDEMPIERE-3834 for tracking it)
this change help we standardized about cache, configurable easy exchange provide implement of JCache

+ this ticket to tracking improve of distribute cache
the main purpose of hazelcast on idempiere to decrease workload for database by distribute query result around app server.
don't like normal cache, distribute cache need serialization process each time we take object from cache to use Yellow Star.

so current implement cache of idempiere have some weakness
+ in case idempiere run standalone (just one instance per system) it still use distribute cache.
on this case it should use normal cache at all
+ in case we have n instance of idempiere deploy on same server, we have n distribute cache. take a lot memory.
on this case better need one hazelcast instance run standalone and share with all idempiere is enough
+ in case we have n instance of idempiere deploy on n server on same Lan. we have one distribute cache per server.
on this case i think we need only some (n/m) distribute cache node and high speed Lan
in case some idempiere instance need faster we can configuration near cache for it.
near cache is small than main cache, it cache only object use by that idempiere instance.

conclude my propose that replace hazelcast embed on idempiere by hazelcast client.

Environment

None

Activity

Show:

Hiep Lq December 14, 2018 at 1:13 PM

yeb. i see
so improve to let BroadCast can work normal in case hasn't any ICacheService active

otherwise get issue report here:
https://groups.google.com/forum/#!topic/idempiere/hRHiX6ZC2Ac

Carlos Ruiz December 14, 2018 at 11:36 AM

Hi , are you aware that is not mandatory to use hazelcast, it can be turned off, or it can be replaced easily, for example I recently saw an proof of concept replacing hazelcast with redis.

Is just to implement and register an org.idempiere.distributed.ICacheService

Also, hazelcast is not there just for cache, it's being used also for messaging and other stuff.

I think a good documentation page about recommended practices for standalone server, multiple servers in one node, would be great and enough for solving this ticket.

Incomplete

Details

Assignee

Reporter

Priority

Created November 29, 2018 at 5:32 AM
Updated May 1, 2022 at 1:50 PM
Resolved March 8, 2022 at 3:32 PM