xtern commented on a change in pull request #7941:
URL: https://github.com/apache/ignite/pull/7941#discussion_r501722997



##########
File path: 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/PageIO.java
##########
@@ -258,6 +258,9 @@
     /** */
     public static final short T_MARKER_PAGE = 33;
 
+    /** */
+    public static final short T_INDEX_META = 34;

Review comment:
       Yes, we adding two int fields into two pages.
   
   We have 2 types of memory pages:
   T_META (index partition)
   T_PART_META (other partition)
   
   We want to add 2 ints into each of them, but don't forget that IO for 
T_PART_META extends IO for T_META.
   
   In my first approach I added 2 ints into T_META, and added 
PagePartitionMetaIOV3 for T_PART_META.
   But since PagePartitionMetaIO "extends" PageMetaIO all offsets in 
PagePartitionMetaIO was shifted and there was a problem with inheritance (for 
example in PagePartitionMetaIO/V2 new methods were visible, all offsets was 
redefined in PagePartitionMetaIOV3), you can imagine what it looked like in 
commit with the second approach 
https://github.com/apache/ignite/pull/7941/commits/036b931bd40e2ffbd519779fde86fae7343da23e
   
   With current approach we simply create the new IO that is only used for the 
"index" partition.
   
   If you can suggest a better approach for storing 2 extra int's in the index 
meta page without losing binary compatibility, please describe.
   
   p.s. I explained this change in wiki 
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=95652384#TDE.Phase3.Cachekeyrotation.-PageMetaIOandPagePartitionMetaIO




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to