Tagged Coherence

Deploying a Coherence Cluster in Kubernetes


Coherence-Operator is a Kubernetes opeartor for deploying Oracle Coherence in k8s. Let’s see how to do it.

1 Clean previous setup intents:

helm del --purge sample-coherence
helm del --purge sample-coherence-operator
kubectl delete namespace sample-coherence-ns

2 Execute the following:

kubectl config set-context $(kubectl config current-context) --namespace=sample-coherence-ns

helm repo add coherence https://oracle.github.io/coherence-operator/charts

helm repo update

helm --debug install coherence/coherence-operator --name sample-coherence-operator --set "targetNamespaces={}" --set imagePullSecrets=sample-coherence-secret

helm ls

helm status sample-coherence-operator

3 Create a secret with your credentials to Oracle Container Registry:

kubectl create secret docker-registry oracle-container-registry-secret --docker-server=container-registry.oracle.com --docker-username='youruser' --docker-password='yourpasswd' --docker-email='youremail'

4 Install:

helm --debug install coherence/coherence --name sample-coherence --set imagePullSecrets=oracle-container-registry-secret

5 Proxy to a pod:

export POD_NAME=$(kubectl get pods --namespace sample-coherence-ns -l "app=coherence,release=sample-coherence,component=coherencePod" -o jsonpath="{.items[0].metadata.name}")

kubectl --namespace sample-coherence-ns port-forward $POD_NAME 20000:20000

6 Download and install Coherence Stand Alone

7 Download this and this

8 Build the client:

export COHERENCE_HOME=~/Oracle/Middleware/Oracle_Home/coherence
javac -cp .:${COHERENCE_HOME}/lib/coherence.jar HelloCoherence.javaexport COHERENCE_HOME=~/Oracle/Middleware/Oracle_Home/coherence

9 Test it:

java -cp .:${COHERENCE_HOME}/lib/coherence.jar -Dcoherence.cacheconfig=$PWD/example-client-config.xml HelloCoherence

2019-07-11 01:21:33.575/0.538 Oracle Coh...

…

Oracle Coherence Version 12.2.1.3.0 Build 68243

2019-07-11 01:21:34.430/1.392 Oracle 

The value of the key is 7

That’s all, hope it helps 🙂

Street Search Engine Leveraging Oracle Coherence/Buscador de calles con Oracle Coherence


OJETIVO

Ver cómo podemos utilizar Coherence para realizar búsquedas.

PROTOTIPO

El código  fuente y el fichero con calles está al final del blog.

Ejecutamos el prototipo y vemos:

La carga ha tardado 127799 ms ( 15 ms/municipio )

512 bytes de memoria por calle
Tenemos 9997123 calles!
Buscando en el municipio 926 de un total de 8000
#Que quieres buscar?
(pon ‘salir’ para ir al siguiente municipio)>
Buscar %% ha tardado….. 3 ms
El tiempo de respuesta es proporcional al númro de entradas en la caché
Encontradas 6296 coincidencias(mostramos algunas):
[4053]=Street{Name=bulevar de indalecio prieto}

#Que quieres buscar?
(pon ‘salir’ para ir al siguiente municipio)>
Buscar %casa% ha tardado….. 195 ms
El tiempo de respuesta es proporcional al númro de entradas en la caché
Encontradas 42 coincidencias(mostramos algunas):
[2528]=Street{Name=calle del doctor casal}
[1757]=Street{Name=camino de la casa vieja}

OBSERVACIONES

-El tiempo de respuesta es directamente proporcional al número de entradas

-El tamaño de heap consumido por cada entrada es de 512 bytes, parece que se alinean los objetos a la memoria.

-Con una estrategia de crear diferentes colecciones (particiones) podremos buscar en grandes colecciones siempre y cuando el ámbito de búsqueda sea acotado (población, código postal,…) y la caché se organice en mini conjuntos (por poblaciones, códigos postales, etc.)

-Tiempo medio de carga por pobación de 15 milisegundos para 8000 poblaciones con un número de calles entre 1 y 9100 (total de calles cargadas 10 millones)

APLICACIONES

Desarrollo de algoritmos de búsqueda tipo “auto completar” en la capa de presentación  en las que la experiencia de usuario ha de ser excelente siempre que el conjunto de elementos pueda particionarse en colecciones discretas (de unos 10.000 elementos como máximo)

CODIGO

https://www.dropbox.com/s/lyulkxwb96dppyv/CallejeroCompletionText.z?dl=0

Descomprímelo con:

tar -xzf CallejeroCompletionText.z

CALLES DE MADRID

Casi todas…

https://www.dropbox.com/s/6g9zblpfpixsvxz/CALLESMAD.z?dl=0

Descomprímelo con:

tar -xzf CALLESMAD.z