Pegaram pesado!

Eh, ± um cache.

Mas na verdade, vc poderia definir q um objeto é obrigado a ficar na RAM. Quer esteja em uso, qr não.

Mas, pode-se pensar num cache sim.

VELO

PS: Alguem sabe? :oops:

ué, mas se ele não for ser usado, não tem pq deixar ele na ram

Sinceramente eu não vejo isso com bons olhos…

Deixar uma tabela que é muito utilizada na memória…será
que nenhum fabricante de banco de dados pensou nisso antes?

Claro que sim!

O Oracle faz isso já de maneira otimizada, é só configurar o
espaço de memória pra isso.

Além disso é possível vc colocar rotinas (procedure,packages)
fixas na memória. Os dbas usam o verbo “pinar” pra isso…
“vamos pinar a procedure logon”.

Só imagino esse framework sendo usado com bases de dados
pequenas… esquemas de cluster,partição de tabelas,
flashback recovery nem pensar…

Aff, presistência de objetos não é banco de dados, num tem tabela.

Eu também tenho um pé atrás sobre deixar dados na RAM, mas eu tenho os 2 pés atrás em ficar desmontando os objetos pra guardar no banco, e depois, precisando “remontar” para poder usar. Mesmo usando hibernate é isso, vc mata o objeto e depois dah um new denovo…

Eu acredito nos bancos de objetos, chau pra camada intermediaria, mas eh preciso evoluir.

VELO

Sim, mas haveriam objetos em uso tbém em memória!
É aih que estaria o ganho…

Talvez o fato de ser randômico abra muito mais possibilidade de carregar objetos úteis do que se eu tentasse definir regras de escolha para seleção dos objetos que ficarao carregados…

É esse o ponto!

[quote=Diogenes]Talvez o fato de ser randômico abra muito mais possibilidade de carregar objetos úteis do que se eu tentasse definir regras de escolha para seleção dos objetos que ficarao carregados…

É esse o ponto![/quote]

Se for pra fazer randomico, tente um algoritmo genetico. :mrgreen:

Marcio Kuchma

Sei lah, ainda tem o risco de tudo que estiver na memoria seja inutil :frowning:

Concordo contigo, mais FACIL, mas, necessariamente num é melhor. Eu acho q o esquema é deixar mais transparente pro programador final…

Tipo, uma interface, com um boolean e um Date, mais nada.

O date a camada intermediaria* muda toda vez que o objeto for acessado. O boolean vem pronto da aplicação. Esse boolean vai ser um lock. Alias, talvez um int.
0 - Fixo na RAM;
1 - Fixo no HD;
2 - Carrega na RAM ou descarrega de acordo com o uso.

VELO

  • alias, vocês acharam legal essa ideia de uma camada entre a aplicação e o local de armazenamento de objetos?

Bem que eu tentaria, mas matei essa aula no jardim de infância! :mrgreen:

Interessante, serah que tem sabor framboeza ?!

Bem como tem o risco de tudo que vc tiver na memória ser útil naquele momento! :smiley:
Acho q tenho passado poucas horas de minha vida vendo jornal nacional! :lol:

[quote=velo]
Tem algum jeito de eu iniciar o prevayler ou o Space4J simples assim?

public void inserir(Object o){ ObjectContainer db = Db4o.openFile("src/bancoObjetos/db4o/te.yap"); db.set(o); db.close();}

Eu não consigo iniciar ele simples assim, sou taum burro assim?[/quote]

Tem como implementar simples assim?

VELO

Gente, se fosse tao facil desse jeito ja tinha vindo um treco desse na JDK desde a versao 1.2. Como voces vao saber quais objetos estao sendo usados e quais devem ser passivados? Como voces vao fazer queries? Como voces vao fazer replicacao? Como voces vao fazer a consistencia dos dados ser mantida aconteca o que acontecer?

Facil naum eh, mas o JDBC eh facil? Naum existe o hibernate? Alias pq o hibernate naum vem desde o SDK 1.2?..

E eu ainda naum tive retorno, tem como usar o Space4J do jeito q eu falei, bem simples, em 3 linhas?

VELO

[quote=Diogenes][quote=velo]
Sei lah, ainda tem o risco de tudo que estiver na memoria seja inutil :frowning:
[/quote]

Bem como tem o risco de tudo que vc tiver na memória ser útil naquele momento! :smiley:
Acho q tenho passado poucas horas de minha vida vendo jornal nacional! :lol:
[/quote]

hum… isso ferra com a funcionalidade né?

acho que não da pra fazer as coisas na sorte…

[quote=microfilo]
hum… isso ferra com a funcionalidade né?

acho que não da pra fazer as coisas na sorte…[/quote]

Esse eh o ponto!

Pode ser que o randomico carregue os dados 100% aptos para a condição de trabalho atual.
Pode ser que o randomico carregue os dados 100% aptos para a condição de trabalho futura.
Mas, pode ser que o randomico carregue os dados 100% INUTEIS.

Mas eu vou me tornar repetitivo. Tem como carregar o Space4J de uma maneira bem simples como o db4o?

VELO

HelloWorld do Space4J

Jah vi, mas se viu o tamanho?!

Tah, não é enorme, mas nem se compara, 3 linhas pra adicionar algo no db4o, no Space4J eh mais complexo, no prevayler, nossa, nem se compara.

o meu galho tá aqui:

[code] public void addNumber(String user, String number) throws CommandException,
LoggerException {

    space4j.executeCommand(new MapPutCmd("phonenumbers", user, number));
}[/code]

Eu queria fazer ± isso:

space4j.add(Object object);

Enfim, facilitar ao maximo o ADD…

Toh tentando fazer isso (ontem eu tava hoje naum fiz), mas soh consegui exceptions…

VELO

vc quer coisas realmente simples hein???

Pegar objetos de uma área de armazenamento secundária * e trazer para memória principal é facil, até o cv consegue fazer isso. O problema, o ENORME problema, é como tirar da memoria ou saber quais objetos tirar/atualizar.

  • memória ram, disco, rede, ou tudo junto.

Pensando bem, se usar como tamanho mínimo de um objeto 4kb fica até fácil.

Eu vou fazer um exemplo com 2 db4o, vou postar daih…

VELO