The issue is a following (I think I had raised it once),
by default when any command is invoked in ovirt-engine a transaction is opened.
Now, lets take a look on complicated command which is performing a lot of XML-RPC/HTTP calls and just simple update ,
such command is a main cause for the following problems:
1. Long transactions, each call increase a time of transaction
2. When transaction is opened a connection which is associated with it also in used, so a number of available DB connections reduced from
3. A errors : transaction was cancelled and operation is failed on engine side, but successes at host side.
4. Performance - "try to keep transactions as short as possible".
5. Performance - to many unneeded transactions
6. Bug debugging - it is very difficult to understand why something was committed and something not why transaction was reverted or not,
when we have a lot of nested transactions.
Now, what should be done by my opinion:
1. Change default behaviour - by default not to open a transaction (Today, transaction is opened and if we don't want a command should be marked
by NonTransactiveCommandAttribute) - it is simple
2. The change described at 1 will require to rewrite and redesign some flows - more difficult, but also can be done pretty fast.
By the way this can be or even should be done at any case.
3. All new commands should not be based on global transaction or keep in mind that global transaction can be disabled
1. Better performance
2. Cleaner code
3. Less bugs
4. Increased scale
I was wondering if there was any interest in the community to add
RESTful methods for collecting the Engine log files (ie.
/var/log/ovirt-engine/*), config files (ie. /etc/ovirt-engine), for
other activities like dumping the DB.
I am asking this question because it seems like it would be useful to be
able to collect all relevant configuration, logs, etc. from the Engine
it is rather cold in Europe, but can I ask, what's the current opinion
or plans about "full" integration of Spring Framework into oVirt engine
This is a commonly accepted integration framework among Java programmers
and industry standard, which
solves many pains from small to large projects. And can lead to a better
understanding of the program.
There are several Spring dependencies inside oVirt project, but mostly
for LDAP and database communication (JDBC template).
Still missing (sorry, looks like marketing, but..):
- dependency injection
- aspect-oriented programming (AOP)
- enterprise integration patterns
Is something true? :-)
1. We tried, but it is too large and overcomplicated, it can be solved
better way for the project purpose
2. We tried, but we think, we need just e.g. JDBC, LDAP layer covered now
3. We would like to integrate with e.g. Hibernate soon, EJB, remoting,
unit tests, integration tests, ... , probably we will need it soon
4. We understand and need dependency injection, but there are other
light DI containers (Pico, Guice, JBoss Seam).
Still, I think there is strong potential, probably not clear today. We
cannot avoid Guice on frontend side because of GWTP, but the backend
I would like to propose a new feature that allows authentication using
the local user database. The details are here:
And the proposed change is available for review here:
I appreciate feedback.
Thanks in advance,
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
In ovirt-engine code we have Guid and NGuid objects.
Guid is extends NGuid and also NGuid class has method getValue() which should return Guid.
As for me these two classes are look like the same and I don't see to much differences between them.
My proposal is to remove NGuid and move it functionality to Guid (Because of Guid is much more common)
Open Attestation is a project aim to enable basic open sourced SDK with Intel TXT technology to get node's trustworthiness in a cloud usage environment. Integration Open Attestation with Ovirt will definitely provide a more secure cloud ecosystem which will give end user a choice of whether guest virtual machine need launch on a trusted host server or not.
Initially, we want to attest the host's trustworthiness every time when every guest virtual machine launch on the host, thanks to Doron Fediuck's reminding, we just need attest the host at the first request and cache the result for subsequent requests is enough, further, we want to bring down server's response time in case of large concurrence request. To resolve/improve engine's performance, we decide to tackle this issue by caching all of node's trustworthiness while the first guest virtual machine's launching, this will take a little longer before its running. Node's trustworthiness would be stored in database or just in system memory, the value will be effective within one hour or so, of course, the period of validity could be configured, node's status need to be updated in the case of end user reboot the virtual machine and the duration exceed valid time.
Does this acceptable and any good suggestion?
Some details can be found in this link: http://wiki.ovirt.org/Trusted_compute_pools