Hi Prachi, Flags parameter in all cache operations is reserved for things like withSkipStore, withExpiryPolicy, withKeepBinary, withNoRetries, withPartitionRecover. See methods in IgniteCache interface.
Thanks, Pavel On Wed, Nov 29, 2017 at 7:10 PM, Prachi Garg <pg...@gridgain.com> wrote: > Hi Pavel, > > In the operation request, what does the 'flags' parameter mean? > > > Thanks, > -Prachi > > On Wed, Nov 29, 2017 at 5:27 AM, Pavel Tupitsyn <ptupit...@apache.org> > wrote: > >> Sergey, good point, done. >> >> On Wed, Nov 29, 2017 at 2:30 PM, Sergey Kozlov <skoz...@gridgain.com> >> wrote: >> >> > Pavel >> > >> > Could you update the page by following: >> > >> > - String, date, UUID arrays allow to put NULL. Due to that every item >> in >> > the array written as type code byte (default item type or null type >> code) + >> > type data. It should be detailed explained (looks like that the table >> > should have an addtional column called for instance "nullable") >> > >> > - UUID type takes 16 bytes length >> > >> > thanks >> > >> > >> > On Mon, Nov 27, 2017 at 4:37 PM, Sergey Kozlov <skoz...@gridgain.com> >> > wrote: >> > >> > > Pavel >> > > >> > > Thanks for explanations! >> > > >> > > On Mon, Nov 27, 2017 at 2:46 PM, Pavel Tupitsyn <ptupit...@apache.org >> > >> > > wrote: >> > > >> > >> Sergey, >> > >> >> > >> 1. Code table size does not affect anything, as I understand, so >> there >> > is >> > >> no reason to introduce an extra byte. >> > >> 2. We have object arrays (code 23), I forgot to mention them, fixed. >> > >> 3. Also forgot, see code 25 in the updated document. >> > >> >> > >> Also note that operation codes have been updated (grouped by >> purpose) as >> > >> part of https://issues.apache.org/jira/browse/IGNITE-6989. >> > >> >> > >> Thanks, >> > >> Pavel >> > >> >> > >> On Sun, Nov 26, 2017 at 9:54 PM, Sergey Kozlov <skoz...@gridgain.com >> > >> > >> wrote: >> > >> >> > >> > Pavel >> > >> > >> > >> > Thanks for the document and your efforts for new protocol. It was >> > really >> > >> > helpful for playing around the python thin client design. >> > >> > >> > >> > Could you explain some things that were still not clear for binary >> > >> object >> > >> > format: >> > >> > >> > >> > 1. What a reason to introduce separated type codes for arrays? Why >> > just >> > >> we >> > >> > can't use the following? >> > >> > *<1 byte universal array code>* >> > >> > *<1 byte primitive code>* >> > >> > *<4 bytes length>* >> > >> > *<N bytes data>* >> > >> > >> > >> > We get 1 byte overhead but save 10 bytes in the code table. For >> arrays >> > >> the >> > >> > overhead is really insignificant:10 longs array takes now >> 1+4+4*10=45 >> > >> bytes >> > >> > vs 1+1+4+4*10=46 bytes for the approach >> > >> > Moreover for that appoach a new primitive code will be available >> for >> > >> using >> > >> > for array immediately. >> > >> > >> > >> > 2. Why the arrays force to use a selected type? For python there's >> no >> > >> > limitations to use different types across one array (list). Would >> be >> > >> good >> > >> > to introduce a new type that will allow that. It could be look like >> > >> > following >> > >> > *<1 byte universal array code>* >> > >> > *<1 byte no common type code*> <-- this says that every item must >> > >> provide >> > >> > its date type code like it does regular primitive data >> > >> > *<4 bytes length>* >> > >> > *<1 byte item 0 type code>* <-- item provides its code >> > >> > *<N byte item 0 data>* <-- item provides its data >> > >> > *<1 byte item 1 type code>* >> > >> > *<N byte item 1 data>* >> > >> > etc >> > >> > >> > >> > Also that allow to put nested arrays without changes in type code >> > table! >> > >> > For instance if we want to store 9 longs and 1 boolean it will take >> > >> > now 1+1+4+(1+9)*4+(1+1)=48 >> > >> > bytes (vs 45 bytes to store as 10 longs as usual). >> > >> > >> > >> > 3. Ther's only one way to store a dictionary (key-value) structure >> as >> > >> value >> > >> > in the cache via Complex Object. But it looks like >> overcomplicated. I >> > >> > suppose to introduce a code for that >> > >> > *<1 byte key-value dictionary code>* >> > >> > >> > >> > *<4 bytes length>* >> > >> > *<1 byte key 1 **name **type code>* >> > >> > *<N byte key 1 name data>* >> > >> > *<1 byte value 1 type code>* >> > >> > *<N byte value 1 value>* >> > >> > *<1 byte key 2 **name **type code>* >> > >> > *<N byte key 2 name data>* >> > >> > *<1 byte value 2 type code>* >> > >> > *<N byte value 2 value>* >> > >> > etc >> > >> > >> > >> > Also that allow to put nested dictionaries without changes in type >> > code >> > >> > table! >> > >> > Of course for the appoach above we get significat overhead for key >> > >> > storing. But I think it is acceptable for some cases and >> definitely ok >> > >> for >> > >> > Python >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > On Wed, Nov 22, 2017 at 9:14 PM, Prachi Garg <pg...@gridgain.com> >> > >> wrote: >> > >> > >> > >> > > Thanks Pavel! The document has good information. I'll create one >> on >> > >> > > readme.io; will also add some examples there. >> > >> > > >> > >> > > On Wed, Nov 22, 2017 at 5:03 AM, Pavel Tupitsyn < >> > ptupit...@apache.org >> > >> > >> > >> > > wrote: >> > >> > > >> > >> > > > Igniters, >> > >> > > > >> > >> > > > I've put together a detailed description of our Thin Client >> > protocol >> > >> > > > in form of IEP on wiki: >> > >> > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP- >> > >> > > > 9+Thin+Client+Protocol >> > >> > > > >> > >> > > > >> > >> > > > To clarify: >> > >> > > > - Protocol implementation is in master (see ClientMessageParser >> > >> class) >> > >> > > > - Protocol has not been released yet, so we are free to change >> > >> anything >> > >> > > > - Protocol is only used by .NET Thin Client for now, but is >> > >> supposed to >> > >> > > be >> > >> > > > used from other languages by third party contributors >> > >> > > > - More operations will be added in future, this is a first set >> of >> > >> them, >> > >> > > > cache-related >> > >> > > > >> > >> > > > >> > >> > > > Please review the document and let me know your thoughts. >> > >> > > > Is there anything missing or wrong? >> > >> > > > >> > >> > > > We should make sure that the foundation is solid and >> extensible. >> > >> > > > >> > >> > > > >> > >> > > > Thanks, >> > >> > > > Pavel >> > >> > > > >> > >> > > >> > >> > >> > >> > >> > >> > >> > >> > -- >> > >> > Sergey Kozlov >> > >> > GridGain Systems >> > >> > www.gridgain.com >> > >> > >> > >> >> > > >> > > >> > > >> > > -- >> > > Sergey Kozlov >> > > GridGain Systems >> > > www.gridgain.com >> > > >> > >> > >> > >> > -- >> > Sergey Kozlov >> > GridGain Systems >> > www.gridgain.com >> > >> > >