You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gora.apache.org by "Damien Raude-Morvan (JIRA)" <ji...@apache.org> on 2013/08/15 11:20:48 UTC

[jira] [Created] (GORA-270) IOUtils static SerializationFactory field

Damien Raude-Morvan created GORA-270:
----------------------------------------

             Summary: IOUtils static SerializationFactory field
                 Key: GORA-270
                 URL: https://issues.apache.org/jira/browse/GORA-270
             Project: Apache Gora
          Issue Type: Bug
          Components: gora-core
            Reporter: Damien Raude-Morvan


(From http://mail-archives.apache.org/mod_mbox/gora-dev/201308.mbox/%3CCAG50ZE_poN4C%2B%2B8t2xLZ3MoJVDMRo6nfW_Wygd%3D%3DeteF3jyLrw%40mail.gmail.com%3E)

Right now, IOUtils keep a *static* reference to an SerializationFactory
which is initialized on first call to writeObject() with a Configuration
instance. Given Configuration is also stored in a static field of same
class for latter usage.

But in fact each call to IOUtils.writeObject() can have a different
Configuration instance than previous one. In my personnal use case, I've
multiple M/R jobs which use Gora M/R feature to process Persistent object
but each job can work with a different datastore configuration (for
instance, name of table/collection/colum family).

If we keep a static reference to SerializationFactory (and so its
Configuration reference),
QueryBase#readFields will then create a DataStore with wrong Configuration
(ie. using first DataStore/Configuration instead of new one)

I've started working on this issue, and come up with a possible fix :
https://github.com/drazzib/gora/compare/apache-gora-0.2.1...ioutils_static_conf
- remove static SerializationFactory from IOUtils (will recreate it every
time)
- in PartitionQueryImpl and QueryBase now send *current* configuration to
deserialize
One linked fix, is that gora "drivers" needs to be updated to define
Configuration instance in PartitionQueryImpl (like this
https://github.com/drazzib/gora/commit/395f2e2ad50d524f42ecc563104c165fa0fa6f39
).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira