Pavel, Not everything that gets put in Ignite has a class, and not everything can be annotated. For example, what about byte[] or a binary object?
I would prefer a separate cache with specific purpose of storing blobs. It will be easier for users to understand and configure. It can also have a custom logic of splitting a blob into multiple batches to be able to transfer it over the network faster. D. On Fri, Aug 3, 2018 at 3:21 AM, Pavel Kovalenko <jokse...@gmail.com> wrote: > Dmitriy, > > I think we don't need a separate implementation of cache like BLOB cache. > Instead of it, a user can mark value class or value class field with the > special annotation "@BLOB". > During cache put, marshaller will place a special placeholder on such > fields, write byte[] array payload of a field to special internal blob > storage and place the only reference to actual DataEntry in the page > memory. > During cache get, marshaller will place a special proxy instead of an > actual class that can be downloaded and unmarshalled by demand from > internal storage on the user side. > Using such approach we will also solve eager/lazy problem, this will also > give user possibility to adjust his own marshallers (like Jackson, Jaxb, > etc.) to marshal/unmarshal his blob classes from/to byte[] arrays. > No major changes in public API are required, it can be pluggable component. > > > 2018-08-03 0:25 GMT+03:00 Dmitriy Setrakyan <dsetrak...@apache.org>: > > > On Thu, Aug 2, 2018 at 1:08 AM, Pavel Kovalenko <jokse...@gmail.com> > > wrote: > > > > > Dmitriy, > > > > > > I still don't understand why do you think that it will be file system? > > > In all my previous messages I emphasized that this storage shouldn't be > > > considered as a file system. It's just a large data storage, whose > > entities > > > can be easily accessed using key/link (internally, or externally using > > > web/binary protocol interfaces). > > > > > > > Instead, if we must focus on large blobs, I would solve the problem > of > > > supporting large blobs in regular Ignite caches, as I suggested before. > > > > > > This is impossible. Our page memory can't handle efficiently it by > > design. > > > > > > > But our API does. What is stopping us from creating a cache as a BLOB > cache > > and using whatever storage we need? > > >