roxrook / concurrent-trees

Automatically exported from code.google.com/p/concurrent-trees
0 stars 0 forks source link

Can we make the trees serializable? #4

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The current implementation is not serializable. If we load a huge amount of 
data each time when starting, this may limit the usage. However, if it is 
serializable, we can load it once and serialize the entire tree onto the disk. 
During the start-up time, we only have to de-serialize it to load the whole 
tree quickly.

Original issue reported on code.google.com by j_yuz...@yahoo.com on 25 Mar 2013 at 2:29

GoogleCodeExporter commented 8 years ago
Yes this would be a good feature, I will look at adding support. Thanks.

Note: in the meantime, you could try the Kryo serialization library [1]. It can 
serialize objects which do not implement the Serializable interface. Let me 
know if it works!

[1] http://code.google.com/p/kryo/

Original comment by ni...@npgall.com on 25 Mar 2013 at 4:57

GoogleCodeExporter commented 8 years ago
Nope, Kryo doesn't work either. It complains about missing no-arg constructor 
on InvertedRadixTree when reading back.

Exception in thread "main" com.esotericsoftware.kryo.KryoException: Class 
cannot be created (missing no-arg constructor): 
com.googlecode.concurrenttrees.radixinverted.InvertedRadixTree
    at com.esotericsoftware.kryo.Kryo.newInstantiator(Kryo.java:1050)
    at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:1062)
    at com.esotericsoftware.kryo.serializers.FieldSerializer.create(FieldSerializer.java:228)
    at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:217)
    at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:626)
...

Original comment by j_yuz...@yahoo.com on 29 Mar 2013 at 9:16

GoogleCodeExporter commented 8 years ago
You'll need to configure kryo to use objenesis to deserialize immutable 
objects: http://code.google.com/p/kryo/#Object_creation

Original comment by ni...@npgall.com on 30 Mar 2013 at 8:28