Fecha actual 12 Dic 2017 05:44

Estoy un poquito off / Desarrollo de versión Oracle

Noticias no tan importantes...
Responder
Avatar de Usuario
asturcon3
Site Admin
Site Admin
Mensajes: 5938
Registrado: 12 Nov 2007 14:36
Alianza: aSACo, ofcourse

Estoy un poquito off / Desarrollo de versión Oracle

Mensaje por asturcon3 » 09 Mar 2009 09:34

Llevais una semana casi sin verme y posiblemente pasara otra igual.

Motivos (dos):
- Lio en el trabajo, prioritario :P
- Estoy convirtiendo todo el juego a Oracle, para cargarme el MySQL y sus problemas (*). Mientras tenga eso a medias no quiero andar tocando el juego, pues tendria que hacerlo en dos sitios (lo que funciona, y lo que estoy haciendo) y ademas sin poder probarlo. Dado que lo que hay tampoco es tan grave (sigue sin ir como deberia, y las estrellas parece que se han tomado pastillitas de colores) pues ahi queda.

En otro orden de cosas, me acaba de llegar un SMS de ya.com de que hoy me entregan el router nuevo (que por supuesto no voy ni a abrir). El cambio de operador puede ser que este proximo, no se :?

(*) Problema con MySQL: Por fin consegui averiguar la causa de los problemas de rendimiento del server, que se pone la CPU al 100% a partir de 90 online haciendo que todo vaya fatal cuando se llega a unos 100/110. Bueno, pues que es una mierda. La unica forma de que un server normalito funcione medio bien con la de actuaciones que hay en la base de datos es haciendo uso de procedimientos almacenados, opcion que MySQL soporta desde hace unas cuantas versiones. El pequeño problema es que es una MIERDA, cuando yo le doy un fichero y le digo 'compilalo' lo unico que hacees comprobar errores de sintañis y meterlo en fuente en una tabla. Se compila posteriormente, cuando se usa. Pero se compila a una zona de memoria que va por conexion, no es global. Y como en un servidor web las conexiones se crean y destruyen con cada pagina, el resultado es que a cada pagina que se pide se lle el codigo fuente, se compila, se usa... y se pierde, no queda disponible ya compilado para la siguiente vez que se pida la pagina. Asi que a 300K paginas diarias, pues 300k veces que se compilan los mismos procedimientos. Ahi es donde esta mi CPU, compilando como una imbecil una y otra vez lo mismo.

A quien haya sido capaz de leer lo anterior, quiza le interese que el resto de bases de datos existentes lo hacen bastante mejor. Oracle, SQLServer, Postgress, Interbase... todas ellas complan a una zona global y el compilado se mantiene mientras haya memoria para mantenerlo (que la hay).

Lo suyo seria probar Postgress, que es libre. Pero como me jode mucho estar rehaciendo todo el codigo de un año y pico por haberle dado oportunidad a una base de datos de codigo libre blabla, paso de experimeentos y lo estoy haciendo con la mejor, Oracle. Al menos me da garantias de que no tendre que rehacerlo todo otra vez.

En fin.
Imagen

Avatar de Usuario
asturcon3
Site Admin
Site Admin
Mensajes: 5938
Registrado: 12 Nov 2007 14:36
Alianza: aSACo, ofcourse

Plan de cambios

Mensaje por asturcon3 » 09 Mar 2009 09:45

-En unos días tendré el código convertido a Oracle y a mi me parecerá que va medio bien
-Entonces montare, en el mismo server, una copia del juego con las mismas cuentas y funcionando al mismo tiempo que el juego normal. Cuando lo haga avisare de la dirección donde esta, y abrire una zona de bugs propia. El objetivo de esto es que me saquéis fallos, que como lo estoy retecleando casi todo seguro que los habrá. En esta fase el juego de verdad seguirá funcionando igual, y la beta no ira mucho mejor (el Mysql seguirá comiéndose casi toda la cpu). Incluso es posible que tenga que dejar la beta activa solo en el horario de menos gente, ya veremos.
-Pasados unos días en que no aparezcan bugs nuevos en la beta, desconectare el juego para trasladar todos los datos (1 hora aprox) de MySQL a Oracle y, espero, tendremos solucionados los problemas de rendimiento.
-Tras unos días de comprobar que todo va fino, lo daré por bueno y reabriré la puerta, ahora mismo cerrada, de la corrección de bugs, nuevos desarrollos y ... unis propios :D
Imagen

Avatar de Usuario
asturcon3
Site Admin
Site Admin
Mensajes: 5938
Registrado: 12 Nov 2007 14:36
Alianza: aSACo, ofcourse

Re: Estoy un poquito off

Mensaje por asturcon3 » 12 Mar 2009 19:46

Tres cuartas partes pasadas a Oracle, incluyendo casi todo lo importante. En mi máquina va mucho mejor que la versión My, tengo grandes esperanzas. Ya es jugable, ya hace todo lo que hace el juego normal, salvo las misiones de las flotas que es lo que me queda.

Supongo que a lo largo de la semana que viene podré subir la versión de pruebas, para que la trasteéis un poco a ver si le sacáis bugs que se me hayan podido pasar (que seguro que los habrá).

Es un trabajo de chinos, me toca repasar la sintaxis casi línea a línea de programa... desde lo más tonto (nombres de campos DEBEN estar en mayúsculas en la parte PHP) a cosas propias (la forma de hacer cursores en my es una puta mierda y los voy convirtiendo a formato oracle sobre la marcha). Funciones de mysql que se llaman distintas en oracle (ifnull/nvl, if/case, now/sysdate, etc), comportamiento distinto de los nulls, cambio en las operaciones sobre fechas, declaración de variables...)

Por lo pronto me estoy centrando en que funcione sin inventar cambios sobre la marcha, aunque según voy viendo el código me voy encontrando con todos los inventos acumulados en un año para hacer que la cosa rodara medio bien en mysql, y que tendré que limpiarlo cuando ya esté todo funcionando. Hay tres tablas en memoria que se actualizan para sacar la vista galaxia y que realmente no tienen sentido... pero hacían falta. Ahora funcionará mejor sin ellas. Como esa, varias cosas mas, principalmente en las pantallas más lentas/usadas (imperio, v.general, edificios...)

Evidentemente, rato que tengo lo aprovecho para esto, motivo por el cual la parte de bugs la tengo un poco descuidada. Como ya he dicho antes, si arreglara un bug en my, tendría que arreglarlo también en oracle, doble trabajo y perdería ese tiempo que mejor lo dedico a lo que beneficiará a todos.

En fin, para vuestra información.
Imagen

Responder