(incubator-fury) branch main updated: feat(java): scoped meta share mode for type forward/backward compaibility (#1660)
This is an automated email from the ASF dual-hosted git repository. chaokunyang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-fury.git The following commit(s) were added to refs/heads/main by this push: new a0a6d7b7 feat(java): scoped meta share mode for type forward/backward compaibility (#1660) a0a6d7b7 is described below commit a0a6d7b7f494f167ac46592dfc8b2a8c4706c5f2 Author: Shawn Yang AuthorDate: Thu May 30 14:19:29 2024 +0800 feat(java): scoped meta share mode for type forward/backward compaibility (#1660) ## What does this PR do? This PR implements scoped meta share mode for type forward/backward compaibility ## Related issues #202 ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark Perf increased from `1900102.586` to `2430410.064` ``` Before: Benchmark (bufferType) (objectType) (references) Mode CntScoreError Units fury_deserialize array MEDIA_CONTENT false thrpt 10 2734151.212 ± 253921.628 ops/s fury_deserialize_compatible array MEDIA_CONTENT false thrpt 10 1900102.586 ± 62176.872 ops/s furymetashared_deserialize_compatible array MEDIA_CONTENT false thrpt 10 3011439.327 ± 260518.752 ops/s After: Benchmark (bufferType) (objectType) (references) Mode CntScoreError Units fury_deserialize array MEDIA_CONTENT false thrpt 10 2661186.814 ± 279377.198 ops/s fury_deserialize_compatible array MEDIA_CONTENT false thrpt 10 2430410.064 ± 164165.865 ops/s furymetashared_deserialize_compatible array MEDIA_CONTENT false thrpt 10 3098083.064 ± 259391.053 ops/s ``` Size decreased from **732 to 577**: ``` Before 2024-05-30 01:00:49 INFO FuryState:157 [fury_deserialize_compatible-jmh-worker-1] - ==> Fury | MEDIA_CONTENT | false | array | 732 | After 2024-05-30 12:57:00 INFO FuryState:157 [fury_deserialize_compatible-jmh-worker-1] - ==> Fury | MEDIA_CONTENT | false | array | 577 | ``` The --- .../integration_tests/RecordSerializersTest.java | 8 +- java/benchmark/pom.xml | 6 ++ .../fury/benchmark/UserTypeDeserializeSuite.java | 8 +- .../fury/benchmark/UserTypeSerializeSuite.java | 6 +- .../org/apache/fury/benchmark/state/FuryState.java | 8 +- .../org/apache/fury/benchmark/state/KryoState.java | 4 + .../src/main/java/org/apache/fury/Fury.java| 20 ++-- .../fury/builder/MetaSharedCodecBuilder.java | 2 +- .../apache/fury/builder/ObjectCodecBuilder.java| 2 +- .../main/java/org/apache/fury/config/Config.java | 26 -- .../java/org/apache/fury/config/FuryBuilder.java | 19 +++- .../main/java/org/apache/fury/meta/ClassDef.java | 48 +- .../java/org/apache/fury/meta/ClassDefDecoder.java | 28 ++ .../java/org/apache/fury/meta/ClassDefEncoder.java | 53 ++- .../main/java/org/apache/fury/meta/ClassSpec.java | 54 +++ .../main/java/org/apache/fury/meta/Encoders.java | 66 + .../org/apache/fury/reflect/ReflectionUtils.java | 5 +- .../java/org/apache/fury/resolver/ClassInfo.java | 29 +- .../org/apache/fury/resolver/ClassResolver.java| 103 - .../apache/fury/resolver/SerializationContext.java | 46 - .../apache/fury/serializer/ArraySerializers.java | 4 + .../fury/serializer/MetaSharedSerializer.java | 5 +- .../apache/fury/serializer/NonexistentClass.java | 17 +++- .../serializer/NonexistentClassSerializers.java| 4 +- .../apache/fury/serializer/ObjectSerializer.java | 14 +-- .../collection/AbstractCollectionSerializer.java | 4 +- .../src/test/java/org/apache/fury/CyclicTest.java | 2 +- .../test/java/org/apache/fury/FuryInitPerf.java| 6 +- .../java/org/apache/fury/ThreadSafeFuryTest.java | 3 +- .../org/apache/fury/meta/ClassDefEncoderTest.java | 7 +- .../java/org/apache/fury/meta/ClassDefTest.java| 6 +- .../apache/fury/reflect/ReflectionUtilsTest.java | 31 +++ .../org/apache/fury/resolver/MetaContextTest.java | 6 +- .../fury/resolver/SerializationContextTest.java| 6 +- .../fury/serializer/MetaSharedCompatibleTest.java | 34 +++ .../NonexistentClassSerializersTest.java | 46 + .../serializer/ProtocolInteroperabilityTest.java | 4 +- .../collection/ChildContainerSerializersTest.java | 3
Re: [PR] feat(java): scoped meta share mode for type forward/backward compaibility [incubator-fury]
chaokunyang commented on PR #1660: URL: https://github.com/apache/incubator-fury/pull/1660#issuecomment-2138763606 Struct perf: ``` Before: fury_deserializearraySTRUCT false thrpt 10 4103952.355 ± 461542.704 ops/s fury_deserialize_compatible arraySTRUCT false thrpt 10 2104530.838 ± 283950.067 ops/s After: Benchmark (bufferType) (objectType) (references) Mode CntScoreError Units fury_deserializearraySTRUCT false thrpt 10 3846945.672 ± 281139.320 ops/s fury_deserialize_compatible arraySTRUCT false thrpt 10 3119394.319 ± 476422.038 ops/s ``` Size: ``` Before: 2024-05-30 02:06:42 INFO FuryState:157 [fury_deserialize-jmh-worker-1] - ==> Fury | STRUCT | false | array | 710 | 2024-05-30 02:07:19 INFO FuryState:157 [fury_deserialize_compatible-jmh-worker-1] - ==> Fury | STRUCT | false | array | 1134 | After: 2024-05-30 02:01:16 INFO FuryState:157 [fury_deserialize-jmh-worker-1] - ==> Fury | STRUCT | false | array | 710 | 2024-05-30 02:01:52 INFO FuryState:157 [fury_deserialize_compatible-jmh-worker-1] - ==> Fury | STRUCT | false | array | 1227 | ``` Size bloat a little, we can optimize it later -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] feat(java): scoped meta share mode for type forward/backward compaibility [incubator-fury]
chaokunyang merged PR #1660: URL: https://github.com/apache/incubator-fury/pull/1660 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] feat(java): scoped meta share mode for type forward/backward compaibility [incubator-fury]
chaokunyang commented on PR #1660: URL: https://github.com/apache/incubator-fury/pull/1660#issuecomment-2138761020 > encodeClassDef Would you like to submit a PR? -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] feat(java): scoped meta share mode for type forward/backward compaibility [incubator-fury]
MrChang0 commented on PR #1660: URL: https://github.com/apache/incubator-fury/pull/1660#issuecomment-2138758064 It fine for me, I will try to experiment this feature. btw, how about increase that init buffer size in `org.apache.fury.meta.ClassDefEncoder#encodeClassDef`. take less growth operate may take more performance. -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] feat(java): Implement classId related logic [incubator-fury]
LiangliangSui commented on PR #1661: URL: https://github.com/apache/incubator-fury/pull/1661#issuecomment-2138649835 Hi @chaokunyang , could you help me check if there is any problem with the implementation logic? If there is no problem, I will handle CI related errors. -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[PR] feat(java): Implement classId related logic [incubator-fury]
LiangliangSui opened a new pull request, #1661: URL: https://github.com/apache/incubator-fury/pull/1661 ## What does this PR do? Implementing xlang_spec typeId. ## Related issues https://github.com/apache/incubator-fury/pull/1413 ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Fury CI" is working again!
The GitHub Actions job "Fury CI" on incubator-fury.git has succeeded. Run started by GitHub user chaokunyang (triggered by chaokunyang). Head commit for run: 651461f6928c2fce1e41e585f1dc9a65ab0275d6 / chaokunyang fix ext meta Report URL: https://github.com/apache/incubator-fury/actions/runs/9296174162 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] [Community] add fury release documentation [incubator-fury-site]
chaokunyang merged PR #109: URL: https://github.com/apache/incubator-fury-site/pull/109 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
(incubator-fury-site) branch main updated: [Community] add fury release documentation (#109)
This is an automated email from the ASF dual-hosted git repository. chaokunyang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-fury-site.git The following commit(s) were added to refs/heads/main by this push: new d7dcd04 [Community] add fury release documentation (#109) d7dcd04 is described below commit d7dcd04d7831e3e669435526c34981a8c9d71000 Author: Shawn Yang AuthorDate: Thu May 30 10:45:19 2024 +0800 [Community] add fury release documentation (#109) # What this PR do? This release doc is referenced from opendal and streampark, thanks for their great work. The website screencut: ![image](https://github.com/apache/incubator-fury-site/assets/12445254/e6117b8e-3223-4d9a-90b2-8cf587e97ea9) ![image](https://github.com/apache/incubator-fury-site/assets/12445254/30fc6ce7-f5c4-4abe-a7c5-1d97301b2e5c) # Related issue https://github.com/apache/incubator-fury/issues/1421 https://github.com/apache/incubator-fury/issues/1389 --- docs/community/how_to_release.md | 508 +++ docs/community/how_to_verify.md | 117 + docusaurus.config.ts | 6 + sidebars.ts | 2 +- 4 files changed, 632 insertions(+), 1 deletion(-) diff --git a/docs/community/how_to_release.md b/docs/community/how_to_release.md new file mode 100644 index 000..0db88b4 --- /dev/null +++ b/docs/community/how_to_release.md @@ -0,0 +1,508 @@ +--- +title: How to release +sidebar_position: 0 +id: how_to_release +--- + +This document mainly introduces how the release manager releases a new version of Apache Fury. + +## Introduction + +Source Release is the most important part which Apache values. + +Please pay more attention to license and signing issues. +Publishing software is a serious thing and has legal consequences. + +## First-time as a release manager + +### Environmental requirements +This release process is operated in the Ubuntu OS, and the following tools are required: + +- JDK 1.8 +- Apache Maven 3.x +- Python 3.8 +- GnuPG 2.x +- Git +- SVN (apache uses svn to host project releases) +- Pay attention to setting environment variables: if you configure gpg keys under a different directory, please `export GNUPGHOME=$(xxx)` + +### Prepare GPG Key +If you are the first to become a release manager, you need to prepare a gpg key. + +Following is a quick setup, you can refer to [Apache openpgp doc](https://infra.apache.org/openpgp.html) for further details. + + Install GPG +```bash +sudo apt install gnupg2 +``` + + Generate GPG Key +Please use your apache name and email for generate key +```bash +$ gpg --full-gen-key +gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Please select what kind of key you want: + (1) RSA and RSA (default) + (2) DSA and Elgamal + (3) DSA (sign only) + (4) RSA (sign only) + (14) Existing key from card +Your selection? 1 # input 1 +RSA keys may be between 1024 and 4096 bits long. +What keysize do you want? (2048) 4096 # input 4096 +Requested keysize is 4096 bits +Please specify how long the key should be valid. + 0 = key does not expire += key expires in n days + w = key expires in n weeks + m = key expires in n months + y = key expires in n years +Key is valid for? (0) 0 # input 0 +Key does not expire at all +Is this correct? (y/N) y # input y + +GnuPG needs to construct a user ID to identify your key. + +Real name: Chaokun Yang # input your name +Email address: chaokuny...@apache.org # input your email +Comment: CODE SIGNING KEY # input some annotations, optional +You selected this USER-ID: +"Chaokun " + +Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # input O +We need to generate a lot of random bytes. It is a good idea to perform +some other action (type on the keyboard, move the mouse, utilize the +disks) during the prime generation; this gives the random number +generator a better chance to gain enough entropy. +We need to generate a lot of random bytes. It is a good idea to perform +some other action (type on the keyboard, move the mouse, utilize the +disks) during the prime generation; this gives the random number +generator a better chance to gain enough entropy. + +# Input the security key +┌──┐ +│ Please enter this passphrase │ +│ │ +│ Passphrase: ___ │ +│ │ +│ │ +└──┘ +# key generation will be done after your inputting the key with the following output
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
LiangliangSui closed pull request #1650: perf(java): Lower the threshold for multi-byte reading URL: https://github.com/apache/incubator-fury/pull/1650 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
LiangliangSui commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1619718644 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: As discussed in WeChat, this solution only benefits the last 4 bytes, but it will introduce extra code, causing the bytecode of this method to become larger. In most cases, this optimization will not take effect, so close this PR. -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Fury CI" failed!
The GitHub Actions job "Fury CI" on incubator-fury.git has failed. Run started by GitHub user chaokunyang (triggered by chaokunyang). Head commit for run: 0f8dedb8347cc226b2faeda9867c099c6a21faa2 / chaokunyang lint code Report URL: https://github.com/apache/incubator-fury/actions/runs/9290741519 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Fury CI" failed!
The GitHub Actions job "Fury CI" on incubator-fury.git has failed. Run started by GitHub user chaokunyang (triggered by chaokunyang). Head commit for run: 44eeb129b4c1a4db954a7f0cdcc960bf277fdae7 / chaokunyang fix SerializationContextTest.java Report URL: https://github.com/apache/incubator-fury/actions/runs/9290625536 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [I] [Java] Meta compression [incubator-fury]
chaokunyang closed issue #203: [Java] Meta compression URL: https://github.com/apache/incubator-fury/issues/203 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Fury CI" failed!
The GitHub Actions job "Fury CI" on incubator-fury.git has failed. Run started by GitHub user chaokunyang (triggered by chaokunyang). Head commit for run: 3a156b4ced5fc5beac194aa8475f86db4d6f21d3 / chaokunyang fix enum morphic Report URL: https://github.com/apache/incubator-fury/actions/runs/9288723189 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] feat(java): scoped meta share mode for type forward/backward compaibility [incubator-fury]
chaokunyang commented on PR #1660: URL: https://github.com/apache/incubator-fury/pull/1660#issuecomment-2137673589 Hi @MrChang0, this PR should make the meta share mode replace kv compatible mode for better performance and smaller space cost -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[PR] feat(java): scoped meta share mode for type forward/backward compaibility [incubator-fury]
chaokunyang opened a new pull request, #1660: URL: https://github.com/apache/incubator-fury/pull/1660 ## What does this PR do? This PR implements scoped meta share mode for type forward/backward compaibility ## Related issues #202 ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
chaokunyang commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1618894452 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: You read five bytes, but you just check 4 bytes here -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
chaokunyang commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1618894899 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: The readVarUint36Slow is very rare, only last five bytes of the whole binary will go to this path. So we try to reduce the check in critical path -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [I] Fury 0.5.1 Deserialize Error [incubator-fury]
chaokunyang commented on issue #1656: URL: https://github.com/apache/incubator-fury/issues/1656#issuecomment-2137422321 It fails at : ![image](https://github.com/apache/incubator-fury/assets/12445254/94fff95e-649b-4f52-9ae8-7f93bbba1537) The serialization and deserialization has different schema, could you share the classdef of your serialization peer? -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
LiangliangSui commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1618881357 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: So the five consecutive `getByte` calls in `readVarUint36Slow` are no different from `UNSAFE.getInt + UNSAFE.getByte`. They all have read checks for `(fourByteValue & 0x8000) != 0` and `(b & 0x80) != 0`. We only need to ensure that `size - readIdx >= 4` to use `UNSAFE.getInt` to read the content normally. -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
(incubator-fury) branch main updated: fix(java): fix scala object type codegen (#1659)
This is an automated email from the ASF dual-hosted git repository. chaokunyang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-fury.git The following commit(s) were added to refs/heads/main by this push: new 3f5cf314 fix(java): fix scala object type codegen (#1659) 3f5cf314 is described below commit 3f5cf31461cfed1f2c1d0f5b620529fe4abb6f40 Author: Shawn Yang AuthorDate: Wed May 29 21:13:23 2024 +0800 fix(java): fix scala object type codegen (#1659) ## What does this PR do? fix scala object type codegen ## Related issues Closes #1658 ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark --- .../org/apache/fury/codegen/CodegenContext.java| 9 +++--- .../java/org/apache/fury/codegen/Expression.java | 2 +- .../org/apache/fury/reflect/ReflectionUtils.java | 9 -- .../main/java/org/apache/fury/type/TypeUtils.java | 4 +-- java/fury-testsuite/pom.xml| 6 .../java/org/apache/fury/test/SparkTypeTest.java | 34 +- .../serializer/SingleObjectSerializerTest.scala| 2 +- 7 files changed, 34 insertions(+), 32 deletions(-) diff --git a/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java b/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java index 624e55e9..4a324f14 100644 --- a/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java +++ b/java/fury-core/src/main/java/org/apache/fury/codegen/CodegenContext.java @@ -252,8 +252,7 @@ public class CodegenContext { if (clz.isArray()) { return "arr"; } else { - String canonicalName = clz.getCanonicalName(); - String type = canonicalName != null ? type(clz) : "Object"; + String type = clz.getCanonicalName() != null ? type(clz) : "Object"; int index = type.lastIndexOf("."); String name; if (index >= 0) { @@ -283,7 +282,7 @@ public class CodegenContext { if (clz.isArray()) { return getArrayType(clz); } -String type = ReflectionUtils.getCanonicalName(clz); +String type = ReflectionUtils.getLiteralName(clz); if (type.startsWith("java.lang")) { if (!type.substring("java.lang.".length()).contains(".")) { String simpleName = clz.getSimpleName(); @@ -360,7 +359,7 @@ public class CodegenContext { */ public void addImports(Class... classes) { for (Class clz : classes) { - imports.add(ReflectionUtils.getCanonicalName(clz)); + imports.add(ReflectionUtils.getLiteralName(clz)); } } @@ -382,7 +381,7 @@ public class CodegenContext { * @param cls class to be imported */ public void addImport(Class cls) { -this.imports.add(ReflectionUtils.getCanonicalName(cls)); +this.imports.add(ReflectionUtils.getLiteralName(cls)); } /** diff --git a/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java b/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java index d2572f77..36cdeb44 100644 --- a/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java +++ b/java/fury-core/src/main/java/org/apache/fury/codegen/Expression.java @@ -343,7 +343,7 @@ public interface Expression { if (valueClass.isArray()) { v = String.format("%s.class", TypeUtils.getArrayType((Class) value)); } else { -v = String.format("%s.class", ReflectionUtils.getCanonicalName((Class) (value))); +v = String.format("%s.class", ReflectionUtils.getLiteralName((Class) (value))); } return new ExprCode(FalseLiteral, new LiteralValue(javaType, v)); } else { diff --git a/java/fury-core/src/main/java/org/apache/fury/reflect/ReflectionUtils.java b/java/fury-core/src/main/java/org/apache/fury/reflect/ReflectionUtils.java index d837896c..f641f14a 100644 --- a/java/fury-core/src/main/java/org/apache/fury/reflect/ReflectionUtils.java +++ b/java/fury-core/src/main/java/org/apache/fury/reflect/ReflectionUtils.java @@ -554,17 +554,22 @@ public class ReflectionUtils { } /** - * Returns the canonical name of the underlying class as defined by The Java Language + * Returns the literal name of the underlying class as defined by The Java Language * Specification. Throw {@link IllegalArgumentException} if the underlying class does not * have a canonical name(i.e., if it is a local or anonymous class or an array whose component * type does not have a canonical name). * * @throws IllegalArgumentException if the canonical name of the underlying class doesn't exist. */ - public static String getCanonicalName(Class cls) { + public static String getLiteralName(Class cls) { String canonicalName = cls.getCanonicalName();
Re: [I] Scala object type field serialization failure [incubator-fury]
chaokunyang closed issue #1658: Scala object type field serialization failure URL: https://github.com/apache/incubator-fury/issues/1658 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] fix(java): fix scala object type codegen [incubator-fury]
chaokunyang merged PR #1659: URL: https://github.com/apache/incubator-fury/pull/1659 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Fury CI" is working again!
The GitHub Actions job "Fury CI" on incubator-fury.git has succeeded. Run started by GitHub user chaokunyang (triggered by chaokunyang). Head commit for run: 33e2697ab33086a71f126631bee4fea09b99b4bc / chaokunyang add header Report URL: https://github.com/apache/incubator-fury/actions/runs/928768 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Fury CI" failed!
The GitHub Actions job "Fury CI" on incubator-fury.git has failed. Run started by GitHub user chaokunyang (triggered by chaokunyang). Head commit for run: a6e2902962359d3d577749e9db672008955aed3d / chaokunyang fix scala object type codegen Report URL: https://github.com/apache/incubator-fury/actions/runs/9286629190 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
chaokunyang commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1618852855 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: As you can see, we have `address + readIdx++`. It will read the 5rd bytes without range check. This will crash jvm if we don't have such big buffer or data is maliciously constructed -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[PR] fix(java): fix scala object type codegen [incubator-fury]
chaokunyang opened a new pull request, #1659: URL: https://github.com/apache/incubator-fury/pull/1659 ## What does this PR do? fix scala object type codegen ## Related issues Closes #1658 ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[I] Scala object type field serialization failure [incubator-fury]
chaokunyang opened a new issue, #1658: URL: https://github.com/apache/incubator-fury/issues/1658 ### Search before asking - [X] I had searched in the [issues](https://github.com/apache/incubator-fury/issues) and found no similar issues. ### Version 0.5.1 ### Component(s) Java ### Minimal reproduce step ```java public class SparkTypeTest extends TestBase { @Test(dataProvider = "enableCodegen") public void testObjectType(boolean enableCodegen) { Fury fury = builder().withRefTracking(true).withCodegen(enableCodegen).build(); fury.serialize(DecimalType$.MODULE$); fury.serialize(new DecimalType(10, 10)); } } ``` Spark 2.4.1 ### What did you expect to see? No compile error ### What did you see instead? ``` java.lang.RuntimeException: Create sequential serializer failed, class: class org.apache.spark.sql.types.DecimalType at org.apache.fury.serializer.CodegenSerializer.loadCodegenSerializer(CodegenSerializer.java:52) at org.apache.fury.resolver.ClassResolver.lambda$getObjectSerializerClass$2(ClassResolver.java:954) at org.apache.fury.builder.JITContext.registerSerializerJITCallback(JITContext.java:131) at org.apache.fury.resolver.ClassResolver.getObjectSerializerClass(ClassResolver.java:952) at org.apache.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:885) at org.apache.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:782) at org.apache.fury.resolver.ClassResolver.createSerializer(ClassResolver.java:1168) at org.apache.fury.resolver.ClassResolver.getClassInfo(ClassResolver.java:1062) at org.apache.spark.sql.types.StructFieldFuryRefCodec_1_666988784_1856050011.writeClassAndObject$(StructFieldFuryRefCodec_1_666988784_1856050011.java:52) at org.apache.spark.sql.types.StructFieldFuryRefCodec_1_666988784_1856050011.writeFields$(StructFieldFuryRefCodec_1_666988784_1856050011.java:74) at org.apache.spark.sql.types.StructFieldFuryRefCodec_1_666988784_1856050011.write(StructFieldFuryRefCodec_1_666988784_1856050011.java:119) at org.apache.fury.Fury.writeNonRef(Fury.java:441) at org.apache.fury.serializer.ArraySerializers$ObjectArraySerializer.write(ArraySerializers.java:104) at org.apache.fury.serializer.ArraySerializers$ObjectArraySerializer.write(ArraySerializers.java:42) at org.apache.spark.sql.types.StructTypeFuryRefCodec_1_666988784_1735054408.writeClassAndObject$(StructTypeFuryRefCodec_1_666988784_1735054408.java:71) at org.apache.spark.sql.types.StructTypeFuryRefCodec_1_666988784_1735054408.writeFields$(StructTypeFuryRefCodec_1_666988784_1735054408.java:137) at org.apache.spark.sql.types.StructTypeFuryRefCodec_1_666988784_1735054408.write(StructTypeFuryRefCodec_1_666988784_1735054408.java:364) at org.apache.fury.serializer.collection.CollectionSerializers$DefaultJavaCollectionSerializer.write(CollectionSerializers.java:541) at org.apache.fury.Fury.writeNonRef(Fury.java:441) at org.apache.fury.serializer.ArraySerializers$ObjectArraySerializer.write(ArraySerializers.java:104) at org.apache.fury.serializer.ArraySerializers$ObjectArraySerializer.write(ArraySerializers.java:42) at org.apache.fury.Fury.writeData(Fury.java:550) at org.apache.fury.Fury.write(Fury.java:314) at org.apache.fury.Fury.serialize(Fury.java:248) at org.apache.fury.Fury.serialize(Fury.java:220) at org.apache.fury.ThreadLocalFury.serialize(ThreadLocalFury.java:91) at com.alibaba.sparklib.FurySerializerInstance.serialize(FurySerializer.scala:35) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:555) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:955) Caused by: org.apache.fury.codegen.CodegenException: Compile error: org.apache.spark.sql.types.DecimalTypeFuryRefCodec_1_666988784_533377181: at org.apache.fury.codegen.JaninoUtils.toBytecode(JaninoUtils.java:133) at org.apache.fury.codegen.JaninoUtils.toBytecode(JaninoUtils.java:73) at org.apache.fury.codegen.CodeGenerator.compile(CodeGenerator.java:145) at org.apache.fury.builder.CodecUtils.loadOrGenCodecClass(CodecUtils.java:110) at org.apache.fury.builder.CodecUtils.loadOrGenObjectCodecClass(CodecUtils.java:43) at org.apache.fury.serializer.CodegenSerializer.loadCodegenSerializer(CodegenSerializer.java:49) ... 30 more Caused by: org.apache.fury.shaded.org.codehaus.commons.compiler.CompileException: File 'org/apache/spark/sql/types/DecimalTypeFuryRefCodec_1_666988784_533377181.java', Li
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
LiangliangSui commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1618808382 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: > later result |= (UNSAFE.getByte(heapMemory, address + readIdx++) & 0x7F) << 28; wqill read one more byte without check. If we lower threshold, we may get crash in such cases. The premise for executing `result |= (UNSAFE.getByte(heapMemory, address + readIdx++) & 0x7F) << 28` is that the fourth byte of `fourByteValue` is `0b1` (that is, there are more bytes to be parsed). In `readVarUint36Slow()`, it is also possible to read 5 bytes continuously (provided that `(b & 0x80) != 0`). Therefore, the premise of executing `result |= (UNSAFE.getByte(heapMemory, address + readIdx++) & 0x7F) << 28` is that we still have content that can be read in the Buffer. If there is no content to read, it means that an error occurred during writing. -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
chaokunyang commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1618614116 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: Could you add a test to cover such cases? -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] perf(java): Lower the threshold for multi-byte reading [incubator-fury]
chaokunyang commented on code in PR #1650: URL: https://github.com/apache/incubator-fury/pull/1650#discussion_r1618613469 ## java/fury-core/src/main/java/org/apache/fury/memory/MemoryBuffer.java: ## @@ -1774,7 +1774,7 @@ private long readVarUint36Slow() { /** Reads the 1-5 byte int part of a non-negative varint. */ public int readVarUint32() { int readIdx = readerIndex; -if (size - readIdx < 5) { +if (size - readIdx < 4) { Review Comment: later `result |= (UNSAFE.getByte(heapMemory, address + readIdx++) & 0x7F) << 28;` wqill read one more byte without check. If we lower threshold, we may get crash in such cases. -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Fury CI" is working again!
The GitHub Actions job "Fury CI" on incubator-fury.git has succeeded. Run started by GitHub user LiangliangSui (triggered by LiangliangSui). Head commit for run: 3e996ffd15f1fb2cd2cbc190404e590b96becceb / wangjie chore(doc): fix example (#1657) ## What does this PR do? fix example code error. ![image](https://github.com/apache/incubator-fury/assets/46479343/eafd5068-7aa0-4cde-af31-ef23b4fc9f55) ## Related issues ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark Report URL: https://github.com/apache/incubator-fury/actions/runs/9283776626 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
(incubator-fury) branch main updated: chore(doc): fix example (#1657)
This is an automated email from the ASF dual-hosted git repository. suiliangliang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-fury.git The following commit(s) were added to refs/heads/main by this push: new 3e996ffd chore(doc): fix example (#1657) 3e996ffd is described below commit 3e996ffd15f1fb2cd2cbc190404e590b96becceb Author: wangjie AuthorDate: Wed May 29 17:36:37 2024 +0800 chore(doc): fix example (#1657) ## What does this PR do? fix example code error. ![image](https://github.com/apache/incubator-fury/assets/46479343/eafd5068-7aa0-4cde-af31-ef23b4fc9f55) ## Related issues ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 11ec450f..b619eeb4 100644 --- a/README.md +++ b/README.md @@ -175,6 +175,9 @@ public class Example { // but may be insecure if the classes contains malicious code. .requireClassRegistration(true) .buildThreadSafeFury(); + // Registering types can reduce class name serialization overhead, but not mandatory. + // If class registration enabled, all custom types must be registered. + fury.register(SomeClass.class); byte[] bytes = fury.serialize(object); System.out.println(fury.deserialize(bytes)); } - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] chore(doc): fix example [incubator-fury]
LiangliangSui merged PR #1657: URL: https://github.com/apache/incubator-fury/pull/1657 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] chore(doc): fix example [incubator-fury]
wangjie-fourth commented on PR #1657: URL: https://github.com/apache/incubator-fury/pull/1657#issuecomment-2136964227 @chaokunyang hi, can you help review this? -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[GH] (incubator-fury): Workflow run "Lint PR" is working again!
The GitHub Actions job "Lint PR" on incubator-fury.git has succeeded. Run started by GitHub user wangjie-fourth (triggered by wangjie-fourth). Head commit for run: a69b9dd58df88476b8a92f524df1b3d9528ee1f1 / jwang55 chore(doc): fix example Report URL: https://github.com/apache/incubator-fury/actions/runs/9283627369 With regards, GitHub Actions via GitBox - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
[PR] chore(doc): fix example [incubator-fury]
wangjie-fourth opened a new pull request, #1657: URL: https://github.com/apache/incubator-fury/pull/1657 ## What does this PR do? fix example code error. ![image](https://github.com/apache/incubator-fury/assets/46479343/eafd5068-7aa0-4cde-af31-ef23b4fc9f55) ## Related issues ## Does this PR introduce any user-facing change? - [ ] Does this PR introduce any public API change? - [ ] Does this PR introduce any binary protocol compatibility change? ## Benchmark -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [PR] [Community] add fury release documentation [incubator-fury-site]
chaokunyang commented on PR #109: URL: https://github.com/apache/incubator-fury-site/pull/109#issuecomment-2136888451 Hi, with two versions released, I think this PR is ready for review -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
Re: [I] [Java] optimize MemoryBuffer.unsafeWritePositiveVarLong bytecode size [incubator-fury]
chaokunyang closed issue #1465: [Java] optimize MemoryBuffer.unsafeWritePositiveVarLong bytecode size URL: https://github.com/apache/incubator-fury/issues/1465 -- 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. To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org