You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Sheng Liu <li...@gmail.com> on 2021/04/11 16:03:20 UTC

[DISCUSSION] Further question about ARM support for Cassandra

Hi folks,

Previously we have promoted to make Cassandra support ARM64 platform, we
fixed some issues about Cassandra ARM64 support[1][2], and then built the
ARM CI jobs in Cassandra Jenkins CI system, the ARM CI jobs are based on 6
ARM64 servers donated from Huawei Cloud, now all the ARM nodes are online
and work well, please see[3]. The ARM CI will be a gate to ensure long term
development support ARM64 in Cassandra. Now maybe we can consider more
about  that, is it possible to publish releases with ARM specific binary
packages like Hadoop[4] did?  Or add annoucement about ARM platform support
in Cassandra doc ?

[1] https://issues.apache.org/jira/browse/INFRA-21313
[2] https://issues.apache.org/jira/browse/CASSANDRA-16475
[3] https://ci-cassandra.apache.org/view/all/
[4]
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.0/hadoop-3.3.0-aarch64.tar.gz

Re: [DISCUSSION] Further question about ARM support for Cassandra

Posted by Mick Semb Wever <mc...@apache.org>.
> > But my understanding of it all is that we can't create ARM specific
> > releases until we have a release manager that owns an ARM machine
> > where they can keep their gpg private key.
>
>  … the Hadoop 3.3.0 ARM
> artifacts was published with Brahma Reddy Battula help,
> who is Hadoop PMC member and is also working for Huawei, he has served as
> the Hadoop 3.3.0 release manager, and has
> talked with Hadoop community that he will also take charge of the ARM
> artifacts of future releases.  there is a discussion:
> http://mail-archives.apache.org/mod_mbox/hadoop-yarn-dev/202003.mbox/%3CCAPwQCrkgwcDDFtC4+i_pv0pO8Zx6UG_43K=szXtv6k7-h4V3QA@mail.gmail.com%3E



That thread is gold, it answers all the questions I raised. Thanks Sheng Liu!

I suspect we will continue with noarch releases. This kinda makes
sense now that we have dropped support for Windows and are also
talking about removing our Sigar dependency and its libraries. Having
ARM in the CI means we can confidently support ARM on those noarch
releases, and it makes the release managers job simpler and the role
more fluid.

Though, we hit the problem again when we want to publish any ARM
docker images to https://hub.docker.com/u/apache/
  (For example, currently CI has to build ARM docker images
on-the-fly, as we have only amd64 testing images in dockerhub.)


> >  - can we SSH gpg-agent sign releases on hardware the release manager
> > does not own?
>
>  Or add an announcement about ARM platform support in Cassandra doc ?


Yeah, we do need some updates to our docs regarding the platform
support our noarch releases are tested on.

And our debian and redhat packaging needs improvements, particularly
now post-bintray, so worth keeping it in mind there too how we can
best package and document it.


> > Absolutely! I hope this becomes one significant part of the 4.0
> > announcement.
>
> Thanks for doing that. I am not sure if we can find a way to solve the
> above problems finally.
> But if we cannot publish official ARM64 artifacts due to the Apache policy
> limit,  maybe we can publish an unofficial ARM64 artifacts ?


Those nightly artefacts I pointed to are our "unofficial" releases.
But we cannot advertise them outside of development use. Though there
is nothing stopping third parties taking those artefacts and putting
their label of quality on them, announcing and distributing them.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
For additional commands, e-mail: dev-help@cassandra.apache.org


Re: [DISCUSSION] Further question about ARM support for Cassandra

Posted by Sheng Liu <li...@gmail.com>.
Hi Mick, Brandon,
Thanks for your reply and explanation.

Mick Semb Wever <mc...@apache.org> 于2021年4月12日周一 下午11:49写道:

> Sheng Liu,
>
>
> > The ARM CI will be a gate to ensure long term development support ARM64
> in Cassandra.
>
>
> The servers that Huawei have provided have been instrumental in
> getting the build and tests running on arm64.  This is a huge
> contribution to the community and I would like to say a big and public
> "thank you" for the initiative from all of us.
>
>
> > Now maybe we can consider more
> > about  that, is it possible to publish releases with ARM specific binary
> > packages like Hadoop[4] did?
>
>
> Part of the CI pipeline is generating the tarball, debian and redhat
> packages for each commit, which are now stored under nightlies. And we
> now have those for ARM, for example:
>
> https://nightlies.apache.org/cassandra/trunk/Cassandra-trunk-artifacts/519/Cassandra-trunk-artifacts/jdk=jdk_11_latest,label=cassandra-arm64/build/
>
> That looks great!


> Going from nightlies to releases, the biggest challenge I see is the
> gpg signing of them.
>
> From ASF INFRA's policy¹ on releases:
>  • Private keys must not be stored on any ASF machine. Likewise,
> signatures for releases must not be created on ASF machines.
>
> I don't know how Hadoop's release process² deals with it in its
> create-release script³. From the 3.3.0 release, all staged artefacts
> are listed together…⁴
>
> But my understanding of it all is that we can't create ARM specific
> releases until we have a release manager that owns an ARM machine
> where they can keep their gpg private key. It might be possible to
> create a release via SSH and gpg-agent⁵ if we update our release
> scripts⁶, but this should be double-checked with INFRA.
>
> Oh sorry, that's my mistake,  I forgot that, yes, the Hadoop 3.3.0 ARM
artifacts was published with Brahma Reddy Battula help,
who is Hadoop PMC member and is also working for Huawei, he has served as
the Hadoop 3.3.0 release manager, and has
talked with Hadoop community that he will also take charge of the ARM
artifacts of future releases.  there is a discussion:
http://mail-archives.apache.org/mod_mbox/hadoop-yarn-dev/202003.mbox/%3CCAPwQCrkgwcDDFtC4+i_pv0pO8Zx6UG_43K=szXtv6k7-h4V3QA@mail.gmail.com%3E
For Cassandra, Maybe it is a really a big challenge.


> To move forward on the issue, we need the following information:
>  - how is hadoop creating (and gpg signing) multi-architecture
> releases? Is it from multiple `create-release` executions?
>
yes it is from multiple `create-release` executions, but I am not soure
about if there is addtions operations in Apache infra side.

 - are there other apache projects doing multi-architecture releases?
> are they part of one release, or separately created and labelled
> releases? how are they doing the gpg signing?
>
So far only the Hadoop has  multi-architecture releases with ARM artifacts.
some other projects only publish the source code release package, what can
we do is to try to add annoucement about ARM support.


>  - can we SSH gpg-agent sign releases on hardware the release manager
> does not own?

> Or add an announcement about ARM platform support in Cassandra doc ?
>
>
> Absolutely! I hope this becomes one significant part of the 4.0
> announcement.
>
Thanks for doing that. I am not sure if we can find a way to solve the
above problems finally.
But if we cannout publish official ARM64 artifacts due to the Apache policy
limit,  maybe we can publish an unofficial ARM64 artifacts ?

>
> regards,
> Mick
>
>
> [1] https://infra.apache.org/release-distribution.html#sigs-and-sums
> [2] https://cwiki.apache.org/confluence/display/HADOOP2/HowToRelease
> [3]
> https://github.com/apache/hadoop/blob/trunk/dev-support/bin/create-release
> [4] https://home.apache.org/~brahma/Hadoop-3.3.0-RC0/
> [5] https://wiki.gnupg.org/AgentForwarding
> [6]
> https://github.com/apache/cassandra-builds/tree/trunk/cassandra-release
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
> For additional commands, e-mail: dev-help@cassandra.apache.org
>
>

Re: [DISCUSSION] Further question about ARM support for Cassandra

Posted by Mick Semb Wever <mc...@apache.org>.
Sheng Liu,


> The ARM CI will be a gate to ensure long term development support ARM64 in Cassandra.


The servers that Huawei have provided have been instrumental in
getting the build and tests running on arm64.  This is a huge
contribution to the community and I would like to say a big and public
"thank you" for the initiative from all of us.


> Now maybe we can consider more
> about  that, is it possible to publish releases with ARM specific binary
> packages like Hadoop[4] did?


Part of the CI pipeline is generating the tarball, debian and redhat
packages for each commit, which are now stored under nightlies. And we
now have those for ARM, for example:
https://nightlies.apache.org/cassandra/trunk/Cassandra-trunk-artifacts/519/Cassandra-trunk-artifacts/jdk=jdk_11_latest,label=cassandra-arm64/build/

Going from nightlies to releases, the biggest challenge I see is the
gpg signing of them.

From ASF INFRA's policy¹ on releases:
 • Private keys must not be stored on any ASF machine. Likewise,
signatures for releases must not be created on ASF machines.

I don't know how Hadoop's release process² deals with it in its
create-release script³. From the 3.3.0 release, all staged artefacts
are listed together…⁴

But my understanding of it all is that we can't create ARM specific
releases until we have a release manager that owns an ARM machine
where they can keep their gpg private key. It might be possible to
create a release via SSH and gpg-agent⁵ if we update our release
scripts⁶, but this should be double-checked with INFRA.

To move forward on the issue, we need the following information:
 - how is hadoop creating (and gpg signing) multi-architecture
releases? Is it from multiple `create-release` executions?
 - are there other apache projects doing multi-architecture releases?
are they part of one release, or separately created and labelled
releases? how are they doing the gpg signing?
 - can we SSH gpg-agent sign releases on hardware the release manager
does not own?


> Or add an announcement about ARM platform support in Cassandra doc ?


Absolutely! I hope this becomes one significant part of the 4.0 announcement.

regards,
Mick


[1] https://infra.apache.org/release-distribution.html#sigs-and-sums
[2] https://cwiki.apache.org/confluence/display/HADOOP2/HowToRelease
[3] https://github.com/apache/hadoop/blob/trunk/dev-support/bin/create-release
[4] https://home.apache.org/~brahma/Hadoop-3.3.0-RC0/
[5] https://wiki.gnupg.org/AgentForwarding
[6] https://github.com/apache/cassandra-builds/tree/trunk/cassandra-release

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
For additional commands, e-mail: dev-help@cassandra.apache.org


Re: [DISCUSSION] Further question about ARM support for Cassandra

Posted by Brandon Williams <dr...@gmail.com>.
We have certainly paved the way to publishing ARM-specific artifacts,
although we don't currently have any. I do think adding an
announcement of ARM support would be beneficial.

On Sun, Apr 11, 2021 at 11:03 AM Sheng Liu <li...@gmail.com> wrote:
>
> Hi folks,
>
> Previously we have promoted to make Cassandra support ARM64 platform, we
> fixed some issues about Cassandra ARM64 support[1][2], and then built the
> ARM CI jobs in Cassandra Jenkins CI system, the ARM CI jobs are based on 6
> ARM64 servers donated from Huawei Cloud, now all the ARM nodes are online
> and work well, please see[3]. The ARM CI will be a gate to ensure long term
> development support ARM64 in Cassandra. Now maybe we can consider more
> about  that, is it possible to publish releases with ARM specific binary
> packages like Hadoop[4] did?  Or add annoucement about ARM platform support
> in Cassandra doc ?
>
> [1] https://issues.apache.org/jira/browse/INFRA-21313
> [2] https://issues.apache.org/jira/browse/CASSANDRA-16475
> [3] https://ci-cassandra.apache.org/view/all/
> [4]
> https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.0/hadoop-3.3.0-aarch64.tar.gz

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
For additional commands, e-mail: dev-help@cassandra.apache.org