You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Ivan Kelly (JIRA)" <ji...@apache.org> on 2012/06/20 11:33:42 UTC

[jira] [Created] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Ivan Kelly created BOOKKEEPER-303:
-------------------------------------

             Summary: LedgerMetadata should serialized using protobufs
                 Key: BOOKKEEPER-303
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
             Project: Bookkeeper
          Issue Type: Bug
            Reporter: Ivan Kelly
            Assignee: Ivan Kelly
             Fix For: 4.1.0


Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 

We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.

http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-303:
----------------------------------

    Attachment: BOOKKEEPER-303.diff

Updated patch to fix a few small oversights. (and empty try {} finally {} and writing the correct version number for the ledger metadata)
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.1.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-303:
----------------------------------

    Fix Version/s:     (was: 4.1.0)
                   4.2.0
    
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-303:
----------------------------------

    Attachment: BOOKKEEPER-303.diff

Patch adds protobuf for ledgermetadata. To regenerate the protocol file, run maven with the protobuf profile.

{code}
mvn install -Pprotobuf
{code}

                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.1.0
>
>         Attachments: BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-303:
----------------------------------

    Attachment: BOOKKEEPER-303.diff

Updated patch so that fencing an old client with a new client doesn't stop the old client from reading the ledger it was writing to.
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.1.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401913#comment-13401913 ] 

Sijie Guo commented on BOOKKEEPER-303:
--------------------------------------

the patch is OK for me. but I had a question, should we need to put the generated protobuf java files in svn? why not let it be generated during build? in hedwig, we put generated java file in svn path but we don't put generated c++ files in svn path. If I remembered correctly, in the early version of hedwig, it also doesn't put the generated java files in svn path. I am not sure when we started put them in svn path.
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-303:
----------------------------------

    Attachment: BOOKKEEPER-303.diff

New patch adds protobuf entry to NOTICE.bin.txt and LICENSE.bin.txt
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401993#comment-13401993 ] 

Ivan Kelly commented on BOOKKEEPER-303:
---------------------------------------

Because to generate during build, it requires that a person has protoc installed on their computer. Whats more, it requires that specific version is installed. Putting the generated files in, removes that headache from people downloading and trying out bookkeeper. 
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402240#comment-13402240 ] 

Hudson commented on BOOKKEEPER-303:
-----------------------------------

Integrated in bookkeeper-trunk #580 (See [https://builds.apache.org/job/bookkeeper-trunk/580/])
    BOOKKEEPER-303: LedgerMetadata should serialized using protobufs (ivank) (Revision 1354492)

     Result = FAILURE
ivank : 
Files : 
* /zookeeper/bookkeeper/trunk/CHANGES.txt
* /zookeeper/bookkeeper/trunk/bookkeeper-server/pom.xml
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingAddOp.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingReadOp.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadLastConfirmedOp.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/DataFormats.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/proto
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/proto/DataFormats.proto
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/resources/LICENSE.bin.txt
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/resources/NOTICE.bin.txt
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
* /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/TestBackwardCompat.java
* /zookeeper/bookkeeper/trunk/hedwig-protocol/pom.xml
* /zookeeper/bookkeeper/trunk/hedwig-protocol/src/main/java/org/apache/hedwig/protocol/PubSubProtocol.java

                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13397396#comment-13397396 ] 

Sijie Guo commented on BOOKKEEPER-303:
--------------------------------------

good work, Ivan.

I haven't go thru all the patch. but just one question, why there are changes about Hedwig PubSubProtocol?
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.1.0
>
>         Attachments: BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13397397#comment-13397397 ] 

Ivan Kelly commented on BOOKKEEPER-303:
---------------------------------------

Just to keep the version harmonized. It was 2.3.0, it's 2.4.1. I have no real preference for which version we use, but as HDFS uses 2.4.1, i need to keep that one installed. Also I changed hedwig-protocol to build the protobuf using the profile approach also. 
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.1.0
>
>         Attachments: BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402042#comment-13402042 ] 

Sijie Guo commented on BOOKKEEPER-303:
--------------------------------------

OK. I got the idea. but the generated files aren't included for hedwig cpp client. It is inconsistent behavior for cpp project. How is your opinion?
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Sijie Guo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402073#comment-13402073 ] 

Sijie Guo commented on BOOKKEEPER-303:
--------------------------------------

OK. thanks Ivan for explanation. it makes sense for me.

+1 for the patch. thanks Ivan for this work.
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402052#comment-13402052 ] 

Ivan Kelly commented on BOOKKEEPER-303:
---------------------------------------

For the C++ client, you need the protobuf library installed, as well as other dependencies, so requiring protoc isn't too much (I should install with library anyhow). But for java, protobuf comes as a mvn dependency. So, for C++, generating the files doesn't add extra overhead. For java it does.
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (BOOKKEEPER-303) LedgerMetadata should serialized using protobufs

Posted by "Uma Maheswara Rao G (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401157#comment-13401157 ] 

Uma Maheswara Rao G commented on BOOKKEEPER-303:
------------------------------------------------

@Sijie, Could you please review this patch? It is touching hedwig related protocols.
Many of the BK-237 JIRAs are marking as dependent on this JIRA and BK-2.
                
> LedgerMetadata should serialized using protobufs
> ------------------------------------------------
>
>                 Key: BOOKKEEPER-303
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-303
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.2.0
>
>         Attachments: BOOKKEEPER-303.diff, BOOKKEEPER-303.diff, BOOKKEEPER-303.diff
>
>
> Google protobufs is a library for serializing and deserializing data. It elegantly handles the cases where new data is added to a data format. This is useful in the case of something like LedgerMetadata, which may change over time. However, at the moment, whenever we make a change to the LedgerMetadata serialization format we have to break compatibility with old clients. By using protobufs, even if we add something to the format, old clients should be able to read the ledgers. 
> We should also change our protocols to use protobufs for the same reason, but this should be done in 4.3.0.
> http://code.google.com/p/protobuf/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira