[GitHub] rdhabalia opened a new pull request #2261: Avoid creating output topic on tenant namespace if output-topic not provided
rdhabalia opened a new pull request #2261: Avoid creating output topic on tenant namespace if output-topic not provided URL: https://github.com/apache/incubator-pulsar/pull/2261 ### Motivation Sometime user wants to use pulsar-function only for processing source-messages and do not want to redirect output to any topic. Right now, if user doesn't provided output topic on function-cli then cli derives output-topic and forces output messages to be redirected to that topic. It causes new topic creation under a tenant's namespace without tenant's permission and PulsarSink unnecessary publishes messages to that newly created topic. Also if the namespace is global then messages of the output topic will be replicated to other clusters as well. So, function should not write messages to output topic if output topic is not provided. ### Modifications - function-cli doesn't compute output topic name if it's not provided - function worker doesn't create output topic if it's not present This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] maskit commented on issue #2251: [website] Enable Translation & Localization
maskit commented on issue #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251#issuecomment-408574638 @sijie The added section looks perfect, but I was worried about a case people suggest translations without reading those contribution guide, because there’s no references on Crowdin side. Maybe I’m too anxious but there should be no cons to have a reference for the README or a statement on Crowdin side. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] rdhabalia opened a new pull request #2260: ack message for atmost processing guaranty
rdhabalia opened a new pull request #2260: ack message for atmost processing guaranty URL: https://github.com/apache/incubator-pulsar/pull/2260 ### Motivation [at-most-once](https://doc.akka.io/docs/akka/current/general/message-delivery-reliability.html?language=scala) delivery can't give delivery guaranteed. If function has pulsar as a source and sink both then right now, `PulsarSinkAtMostOnceProcessor` doesn't ack message to broker so, broker restart can redeliver all messages and user might not be expecting this behavior for `at-most-once`. ### Modifications Pulsar sink acks messages regardless publish-result for `at-most-once` usecase. ### Result Pulsar sink will not redeliver duplicate messages when it is consuming messages from pulsar-source for `at-most-once`. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] rdhabalia opened a new pull request #2259: Fix: set subscription-type based on message ordering
rdhabalia opened a new pull request #2259: Fix: set subscription-type based on message ordering URL: https://github.com/apache/incubator-pulsar/pull/2259 ### Motivation Right now, user can define message processing-guarantees to process/sink messages. however, user can still want to retain message ordering with different processing-types and user should be able to configure FAILOVER subscription type with `ATLEAST_ONCE` option. so, provide option to retain ordering while consuming messages from pulsar-source. ### Modifications Add `retainOrdering` option in functions-cli like we already have in [cli-Sink](https://github.com/apache/incubator-pulsar/blob/master/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSinks.java#L217). ### Result User can configure message ordering option with different processing types. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] rdhabalia commented on issue #2214: Add tls support to authenticate client to access function admin-api
rdhabalia commented on issue #2214: Add tls support to authenticate client to access function admin-api URL: https://github.com/apache/incubator-pulsar/pull/2214#issuecomment-408565039 @sijie added default port for tls and also added tls + authentication test. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] rdhabalia opened a new pull request #2258: Derive source/sink arg-class name from functio-class for file-url archive
rdhabalia opened a new pull request #2258: Derive source/sink arg-class name from functio-class for file-url archive URL: https://github.com/apache/incubator-pulsar/pull/2258 ### Motivation When user submits function with file-url, server loads jar and performs validation. In that case, server should also configures source/sink arg type-class if it's not configured in the function details. ### Modification when user submits function with url using cli, it doesn't pass type-arg classname into the request, so, server will update it by loading jar and function-class name. ### Result User can successfully submit function jar with file-url. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] rdhabalia opened a new pull request #2257: Fix: function-cli avoid arg-type check and class-loading for file url
rdhabalia opened a new pull request #2257: Fix: function-cli avoid arg-type check and class-loading for file url URL: https://github.com/apache/incubator-pulsar/pull/2257 ### Motivation While function-registration, Function does server side validation for function-jar with url (http/file). So, cli can't load jar for file-url protocol and validate classname of the function. ### Modifications [Skip class-name validation](https://github.com/apache/incubator-pulsar/blob/master/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdFunctions.java#L447) for jar with file url. ### Result user can submit function with file-url using cli. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly opened a new pull request #2256: Namespace level policy for offload deletion lag
ivankelly opened a new pull request #2256: Namespace level policy for offload deletion lag URL: https://github.com/apache/incubator-pulsar/pull/2256 Add a policy parameter at the namespace level for the offload deletion lag, the amount of time to wait after offloading a ledger before we delete the ledger from bookkeeper. This namespace policy overrides the broker configured policy. Via the REST api this is exposed at a millisecond granularity while via the CLI it is exposed a minute granularity. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] merlimat commented on a change in pull request #2254: Fix pulsar:version vars in site2 docs.
merlimat commented on a change in pull request #2254: Fix pulsar:version vars in site2 docs. URL: https://github.com/apache/incubator-pulsar/pull/2254#discussion_r205902157 ## File path: site2/docs/deploy-bare-metal.md ## @@ -48,20 +48,20 @@ For machines running a bookie and a Pulsar broker, we recommend using more power To get started deploying a Pulsar cluster on bare metal, you'll need to download a binary tarball release in one of the following ways: * By clicking on the link directly below, which will automatically trigger a download: - * Pulsar pulsar:version binary release + * Pulsar {{pulsar:version}} binary release * From the Pulsar [downloads page](pulsar:download_page_url) * From the Pulsar [releases page](https://github.com/apache/incubator-pulsar/releases/latest) on [GitHub](https://github.com) * Using [wget](https://www.gnu.org/software/wget): ```bash -$ wget http://archive.apache.org/dist/incubator/pulsar/pulsar-pulsar:version/apache-pulsar-pulsar:version-bin.tar.gz +$ wget pulsar:binary_release_url Review comment: Sure, no problem with that. In any case, I think that the notation `{{pulsar:version}}`, since it's common in many template languanges, would make it clearer to someone editing this document that this will be somehow replaced on the published version. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on issue #2236: how to unsubscribe pulsar mailing list.
sijie commented on issue #2236: how to unsubscribe pulsar mailing list. URL: https://github.com/apache/incubator-pulsar/issues/2236#issuecomment-408532621 @mykidong when you send emails to users-unsubscribe, did you receive any emails from the mailing list confirming you are removed? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on issue #2250: How to manage namespace policies efficiently
sijie commented on issue #2250: How to manage namespace policies efficiently URL: https://github.com/apache/incubator-pulsar/issues/2250#issuecomment-408532443 I never try rocketmq UI before. do you have any experiences that you can share with us? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on issue #2251: [website] Enable Translation & Localization
sijie commented on issue #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251#issuecomment-408531124 rerun java8 tests This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on a change in pull request #2253: Add Test Specific Examples
sijie commented on a change in pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253#discussion_r205888617 ## File path: pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/test/CustomBaseToBaseFunction.java ## @@ -0,0 +1,28 @@ +/** + * Copyright (c) 2018 Streamlio Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.pulsar.functions.api.examples.test; + +import org.apache.pulsar.functions.api.Context; +import org.apache.pulsar.functions.api.Function; + +public class CustomBaseToBaseFunction implements Function { Review comment: also please document them. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on a change in pull request #2253: Add Test Specific Examples
sijie commented on a change in pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253#discussion_r205888563 ## File path: pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/test/ByteBufferSerDe.java ## @@ -0,0 +1,33 @@ +/** + * Copyright (c) 2018 Streamlio Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.pulsar.functions.api.examples.test; Review comment: I can see only one function is for negative test. It can be under `test` package. However all the other classes are examples: - examples for customizing serde - examples for using custom objects - examples for using context.publish - examples for windowing - examples for config This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie opened a new pull request #2255: [website] Add contribution guide to README.md
sijie opened a new pull request #2255: [website] Add contribution guide to README.md URL: https://github.com/apache/incubator-pulsar/pull/2255 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] aahmed-se commented on a change in pull request #2253: Add Test Specific Examples
aahmed-se commented on a change in pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253#discussion_r205881296 ## File path: pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/test/ByteBufferSerDe.java ## @@ -0,0 +1,33 @@ +/** + * Copyright (c) 2018 Streamlio Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.pulsar.functions.api.examples.test; Review comment: not sure about that, some of them are negative test function they are expected to fail, these should be kept in a separate package. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] aahmed-se commented on a change in pull request #2253: Add Test Specific Examples
aahmed-se commented on a change in pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253#discussion_r205880996 ## File path: pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/test/ByteBufferSerDe.java ## @@ -0,0 +1,33 @@ +/** Review comment: fixed all headers This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] cckellogg commented on a change in pull request #2254: Fix pulsar:version vars in site2 docs.
cckellogg commented on a change in pull request #2254: Fix pulsar:version vars in site2 docs. URL: https://github.com/apache/incubator-pulsar/pull/2254#discussion_r205880941 ## File path: site2/docs/deploy-bare-metal.md ## @@ -48,20 +48,20 @@ For machines running a bookie and a Pulsar broker, we recommend using more power To get started deploying a Pulsar cluster on bare metal, you'll need to download a binary tarball release in one of the following ways: * By clicking on the link directly below, which will automatically trigger a download: - * Pulsar pulsar:version binary release + * Pulsar {{pulsar:version}} binary release * From the Pulsar [downloads page](pulsar:download_page_url) * From the Pulsar [releases page](https://github.com/apache/incubator-pulsar/releases/latest) on [GitHub](https://github.com) * Using [wget](https://www.gnu.org/software/wget): ```bash -$ wget http://archive.apache.org/dist/incubator/pulsar/pulsar-pulsar:version/apache-pulsar-pulsar:version-bin.tar.gz +$ wget pulsar:binary_release_url Review comment: We are going to change those in future patches for consistency. This one is just to make sure we got all the pulsar:version ones. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] merlimat commented on a change in pull request #2254: Fix pulsar:version vars in site2 docs.
merlimat commented on a change in pull request #2254: Fix pulsar:version vars in site2 docs. URL: https://github.com/apache/incubator-pulsar/pull/2254#discussion_r205880375 ## File path: site2/docs/deploy-bare-metal.md ## @@ -48,20 +48,20 @@ For machines running a bookie and a Pulsar broker, we recommend using more power To get started deploying a Pulsar cluster on bare metal, you'll need to download a binary tarball release in one of the following ways: * By clicking on the link directly below, which will automatically trigger a download: - * Pulsar pulsar:version binary release + * Pulsar {{pulsar:version}} binary release * From the Pulsar [downloads page](pulsar:download_page_url) * From the Pulsar [releases page](https://github.com/apache/incubator-pulsar/releases/latest) on [GitHub](https://github.com) * Using [wget](https://www.gnu.org/software/wget): ```bash -$ wget http://archive.apache.org/dist/incubator/pulsar/pulsar-pulsar:version/apache-pulsar-pulsar:version-bin.tar.gz +$ wget pulsar:binary_release_url Review comment: Should we use `{{...}}` as well for consistency with `{{pulsar:version}}`? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] cckellogg opened a new pull request #2254: Fix pulsar:version vars in site2 docs.
cckellogg opened a new pull request #2254: Fix pulsar:version vars in site2 docs. URL: https://github.com/apache/incubator-pulsar/pull/2254 ### Motivation pulsar:version shows up in the docs. http://pulsar.incubator.apache.org/staging/docs/standalone/#installing-pulsar ### Modifications Update to the new variable format. ### Result The correct version shows up. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie closed pull request #2248: [website] remove `reference-auth.md`
sijie closed pull request #2248: [website] remove `reference-auth.md` URL: https://github.com/apache/incubator-pulsar/pull/2248 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/site2/docs/reference-auth.md b/site2/docs/reference-auth.md deleted file mode 100644 index cc7e8fc42c..00 --- a/site2/docs/reference-auth.md +++ /dev/null @@ -1,206 +0,0 @@ -id: reference-auth -title: Extending Authentication and Authorization in Pulsar -sidebar_label: Authn & Authz plugins - -Pulsar provides a way to use custom authentication and authorization mechanisms - -## Authentication - -Pulsar supports mutual TLS and Athenz authentication plugins, and these can be used as described -[here](security-overview.md). - -It is possible to use a custom authentication mechanism by providing the implementation in the -form of two plugins one for the Client library and the other for the Pulsar Broker to validate -the credentials. - -### Client authentication plugin - -For client library, you will need to implement `org.apache.pulsar.client.api.Authentication`. This class can then be passed -when creating a Pulsar client: - -```java -PulsarClient client = PulsarClient.builder() -.serviceUrl("pulsar://localhost:6650") -.authentication(new MyAuthentication()) -.build(); -``` - -For reference, there are 2 interfaces to implement on the client side: - * `Authentication` -> [Authentication API](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/Authentication.html) - * `AuthenticationDataProvider` -> [AuthenticationDataProvider API](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/AuthenticationDataProvider.html) - - -This in turn will need to provide the client credentials in the form of `org.apache.pulsar.client.api.AuthenticationDataProvider`. This will leave -the chance to return different kinds of authentication token for different -type of connection or by passing a certificate chain to use for TLS. - - -Examples for client authentication providers can be found at: - - * Mutual TLS Auth -- https://github.com/apache/incubator-pulsar/tree/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth - * Athenz -- https://github.com/apache/incubator-pulsar/tree/master/pulsar-client-auth-athenz/src/main/java/org/apache/pulsar/client/impl/auth - -### Broker authentication plugin - -On broker side, we need the corresponding plugin to validate the credentials -passed by the client. Broker can support multiple authentication providers -at the same time. - -In `conf/broker.conf` it's possible to specify a list of valid providers: - -```properties -# Autentication provider name list, which is comma separated list of class names -authenticationProviders= -``` - -There is one single interface to implement `org.apache.pulsar.broker.authentication.AuthenticationProvider`: - -```java -/** - * Provider of authentication mechanism - */ -public interface AuthenticationProvider extends Closeable { - -/** - * Perform initialization for the authentication provider - * - * @param config - *broker config object - * @throws IOException - * if the initialization fails - */ -void initialize(ServiceConfiguration config) throws IOException; - -/** - * @return the authentication method name supported by this provider - */ -String getAuthMethodName(); - -/** - * Validate the authentication for the given credentials with the specified authentication data - * - * @param authData - *provider specific authentication data - * @return the "role" string for the authenticated connection, if the authentication was successful - * @throws AuthenticationException - * if the credentials are not valid - */ -String authenticate(AuthenticationDataSource authData) throws AuthenticationException; - -} -``` - -Example for Broker authentication plugins: - - * Mutual TLS -- https://github.com/apache/incubator-pulsar/blob/master/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderTls.java - * Athenz -- https://github.com/apache/incubator-pulsar/blob/master/pulsar-broker-auth-athenz/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderAthenz.java - -## Authorization - -Authorization is the operation that checks whether a particular "role" or "principal" is -allowed to perform a certain operation. - -By default, Pulsar provides an embedded authorization, though it's possible to -configure a different one through a plugin. - -To provide a custom provider, one needs to implement the - `org.apache.pulsar.broker.authorization.AuthorizationProvider` interface, have
[incubator-pulsar] branch master updated: [website] remove `reference-auth.md` (#2248)
This is an automated email from the ASF dual-hosted git repository. sijie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git The following commit(s) were added to refs/heads/master by this push: new 9d37897 [website] remove `reference-auth.md` (#2248) 9d37897 is described below commit 9d378978026b532386d89f7af3afc6997d3bff1c Author: Sijie Guo AuthorDate: Fri Jul 27 12:11:39 2018 -0700 [website] remove `reference-auth.md` (#2248) ### Motivation This page is a duplication of `security-extending.md` ### Changes Remove the duplicated `reference-auth.md` --- site2/docs/reference-auth.md | 206 --- site2/website/sidebars.json | 3 +- 2 files changed, 1 insertion(+), 208 deletions(-) diff --git a/site2/docs/reference-auth.md b/site2/docs/reference-auth.md deleted file mode 100644 index cc7e8fc..000 --- a/site2/docs/reference-auth.md +++ /dev/null @@ -1,206 +0,0 @@ -id: reference-auth -title: Extending Authentication and Authorization in Pulsar -sidebar_label: Authn & Authz plugins - -Pulsar provides a way to use custom authentication and authorization mechanisms - -## Authentication - -Pulsar supports mutual TLS and Athenz authentication plugins, and these can be used as described -[here](security-overview.md). - -It is possible to use a custom authentication mechanism by providing the implementation in the -form of two plugins one for the Client library and the other for the Pulsar Broker to validate -the credentials. - -### Client authentication plugin - -For client library, you will need to implement `org.apache.pulsar.client.api.Authentication`. This class can then be passed -when creating a Pulsar client: - -```java -PulsarClient client = PulsarClient.builder() -.serviceUrl("pulsar://localhost:6650") -.authentication(new MyAuthentication()) -.build(); -``` - -For reference, there are 2 interfaces to implement on the client side: - * `Authentication` -> [Authentication API](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/Authentication.html) - * `AuthenticationDataProvider` -> [AuthenticationDataProvider API](http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/AuthenticationDataProvider.html) - - -This in turn will need to provide the client credentials in the form of `org.apache.pulsar.client.api.AuthenticationDataProvider`. This will leave -the chance to return different kinds of authentication token for different -type of connection or by passing a certificate chain to use for TLS. - - -Examples for client authentication providers can be found at: - - * Mutual TLS Auth -- https://github.com/apache/incubator-pulsar/tree/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth - * Athenz -- https://github.com/apache/incubator-pulsar/tree/master/pulsar-client-auth-athenz/src/main/java/org/apache/pulsar/client/impl/auth - -### Broker authentication plugin - -On broker side, we need the corresponding plugin to validate the credentials -passed by the client. Broker can support multiple authentication providers -at the same time. - -In `conf/broker.conf` it's possible to specify a list of valid providers: - -```properties -# Autentication provider name list, which is comma separated list of class names -authenticationProviders= -``` - -There is one single interface to implement `org.apache.pulsar.broker.authentication.AuthenticationProvider`: - -```java -/** - * Provider of authentication mechanism - */ -public interface AuthenticationProvider extends Closeable { - -/** - * Perform initialization for the authentication provider - * - * @param config - *broker config object - * @throws IOException - * if the initialization fails - */ -void initialize(ServiceConfiguration config) throws IOException; - -/** - * @return the authentication method name supported by this provider - */ -String getAuthMethodName(); - -/** - * Validate the authentication for the given credentials with the specified authentication data - * - * @param authData - *provider specific authentication data - * @return the "role" string for the authenticated connection, if the authentication was successful - * @throws AuthenticationException - * if the credentials are not valid - */ -String authenticate(AuthenticationDataSource authData) throws AuthenticationException; - -} -``` - -Example for Broker authentication plugins: - - * Mutual TLS -- https://github.com/apache/incubator-pulsar/blob/master/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderTls.java - * Athenz --
[GitHub] sijie commented on a change in pull request #2253: Add Test Specific Examples
sijie commented on a change in pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253#discussion_r205868967 ## File path: pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/test/ByteBufferSerDe.java ## @@ -0,0 +1,33 @@ +/** + * Copyright (c) 2018 Streamlio Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.pulsar.functions.api.examples.test; Review comment: all these files should be under `org.apache.pulsar.functions.api.examples`, `test` is not needed. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on a change in pull request #2253: Add Test Specific Examples
sijie commented on a change in pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253#discussion_r205869405 ## File path: pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/test/TestWindowDurationFunction.java ## @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2018 Streamlio Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.pulsar.functions.api.examples.test; + +import java.util.Collection; + +public class TestWindowDurationFunction implements java.util.function.Function, String> { Review comment: WindowDurationExampleFunction This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on a change in pull request #2253: Add Test Specific Examples
sijie commented on a change in pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253#discussion_r205869311 ## File path: pulsar-functions/java-examples/src/main/java/org/apache/pulsar/functions/api/examples/test/TestWindowFunction.java ## @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2018 Streamlio Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.pulsar.functions.api.examples.test; + +import java.util.Collection; + +public class TestWindowFunction implements java.util.function.Function, String> { Review comment: WindowExampleFunction This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on issue #1334: Experimental settings to achieve 5 ms latency
sijie commented on issue #1334: Experimental settings to achieve 5 ms latency URL: https://github.com/apache/incubator-pulsar/issues/1334#issuecomment-408508215 @ratcashdev > Kafka (and also RabbitMQ) can achieve sub 1 ms latency, while using persistence. `persistence` means different things when different people talk about it. when most of the projects talking about disk persistence, they mean data are written to filesystem. However when data is written to filesystem doesn't really mean data is persistent. Kafka only writes to filesystem without fsyncs. the "persistence" here is a `filesystem` persistence, but it still faces data-loss possibility. In relational databases, people talk about "ACID" - "D" for "Durability", when data is persistent to disk, it means writing to filesystem and also *fsync* to disk to ensure data is not lost when machine crashes. this disk-level persistence has much stronger data integrity than filesystem-level persistence. The DZone blog post is benchmarking kafka with filesystem-level-persistence. since most of the data is in filesystem page cache, which even not touch disks. so the latency is expected to be low, since those are effectively "memory" latency. The gigaom report is benchmarking pulsar and kafka with disk-level-persistence (However due to kafka's design, they can not really achieve disk-level-persistence as what Pulsar can achieve. The benchmark was using a close-enough settings to simulate same disk persistence behavior to do an apple-to-apple comparison). so the latency measure there were real disk persistence latency. keep "filesystem-persistence" and "disk-persistence" in the mind when you read the blog posts, they will help you understand those numbers. Pulsar recently added a flag to disable `fsync` behavior. so frankly speaking, pulsar is able to achieve both `filesystem-persistence` and `disk-persistence`, people can decide to choose which one based on their tradeoffs. However I don't think there is any benchmark results regarding pulsar `filesystem-persistence`. All the benchmark results or claims in the blog posts about 5ms latency are about `disk-persistence`. for replicating the claims, you can try out [open-messaging-benchmark](http://openmessaging.cloud/docs/benchmarks/). open messaging is a linux foundation project on building a vendor neutral messaging standard and benchmark. Hope this helps. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] aahmed-se opened a new pull request #2253: Add Test Specific Examples
aahmed-se opened a new pull request #2253: Add Test Specific Examples URL: https://github.com/apache/incubator-pulsar/pull/2253 These are function examples specifically for test scenarios. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[incubator-pulsar] branch asf-site updated: Updated site at revision fd1b459
This is an automated email from the ASF dual-hosted git repository. mmerli pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git The following commit(s) were added to refs/heads/asf-site by this push: new 6cc7861 Updated site at revision fd1b459 6cc7861 is described below commit 6cc7861ee480ef74fe643799283c407cfe28ca09 Author: jenkins AuthorDate: Fri Jul 27 18:10:14 2018 + Updated site at revision fd1b459 --- .../docs/latest/adaptors/PulsarSpark/index.html| 10 +- .../docs/latest/adaptors/PulsarStorm/index.html| 8 content/docs/latest/admin-api/overview/index.html | 18 +- content/docs/latest/clients/Cpp/index.html | 8 content/docs/latest/clients/Java/index.html| 16 content/docs/latest/clients/Python/index.html | 10 +- content/docs/latest/clients/WebSocket/index.html | 8 content/docs/latest/clients/go/index.html | 6 +++--- .../docs/latest/cookbooks/Encryption/index.html| 6 +++--- .../latest/cookbooks/PartitionedTopics/index.html | 16 .../latest/cookbooks/RetentionExpiry/index.html| 16 .../docs/latest/cookbooks/compaction/index.html| 8 .../cookbooks/message-deduplication/index.html | 12 ++-- .../docs/latest/cookbooks/message-queue/index.html | 16 .../latest/cookbooks/tiered-storage/index.html | 6 +++--- .../docs/latest/deployment/Kubernetes/index.html | 4 ++-- .../docs/latest/deployment/aws-cluster/index.html | 6 +++--- content/docs/latest/deployment/cluster/index.html | 6 +++--- content/docs/latest/deployment/instance/index.html | 6 +++--- .../ConceptsAndArchitecture/index.html | 4 ++-- .../latest/getting-started/LocalCluster/index.html | 4 ++-- .../latest/getting-started/Pulsar-2.0/index.html | 2 +- .../docs/latest/getting-started/docker/index.html | 4 ++-- .../docs/latest/project/BinaryProtocol/index.html | 4 ++-- content/docs/latest/project/CompileCpp/index.html | 8 .../docs/latest/project/SimulationTools/index.html | 2 +- .../docs/latest/project/schema-storage/index.html | 4 ++-- content/docs/latest/reference/CliTools/index.html | 22 +++--- .../docs/latest/security/authorization/index.html | 14 +++--- content/docs/latest/security/encryption/index.html | 6 +++--- content/ja/adaptors/PulsarSpark/index.html | 8 content/ja/adaptors/PulsarStorm/index.html | 6 +++--- content/ja/admin/AdminInterface/index.html | 12 ++-- content/ja/admin/Authz/index.html | 12 ++-- content/ja/admin/ClustersBrokers/index.html| 6 +++--- content/ja/admin/PropertiesNamespaces/index.html | 6 +++--- content/ja/advanced/PartitionedTopics/index.html | 12 ++-- content/ja/advanced/RetentionExpiry/index.html | 12 ++-- content/ja/clients/Cpp/index.html | 6 +++--- content/ja/clients/Java/index.html | 8 content/ja/clients/Python/index.html | 8 content/ja/clients/WebSocket/index.html| 8 content/ja/deployment/InstanceSetup/index.html | 6 +++--- content/ja/deployment/Kubernetes/index.html| 4 ++-- .../ConceptsAndArchitecture/index.html | 2 +- content/ja/getting-started/LocalCluster/index.html | 4 ++-- content/ja/project/BinaryProtocol/index.html | 4 ++-- content/ja/project/SimulationTools/index.html | 2 +- content/ja/reference/CliTools/index.html | 18 +- content/staging/download.html | 4 +--- content/staging/download/index.html| 4 +--- content/staging/en/download.html | 4 +--- content/staging/en/download/index.html | 4 +--- content/staging/en/release-notes.html | 2 +- content/staging/en/release-notes/index.html| 2 +- content/staging/en/versions.html | 2 +- content/staging/en/versions/index.html | 2 +- content/staging/release-notes.html | 2 +- content/staging/release-notes/index.html | 2 +- content/staging/versions.html | 2 +- content/staging/versions/index.html| 2 +- 61 files changed, 214 insertions(+), 222 deletions(-) diff --git a/content/docs/latest/adaptors/PulsarSpark/index.html b/content/docs/latest/adaptors/PulsarSpark/index.html index 6bd0b47..afa2d4a 100644 --- a/content/docs/latest/adaptors/PulsarSpark/index.html +++ b/content/docs/latest/adaptors/PulsarSpark/index.html @@ -1072,9 +1072,9 @@ - Spark Streaming Pulsar receiver + Spark Streaming Pulsar receiver @@ -1316,9
[incubator-pulsar] branch master updated: Throw exception on non-zero command exit in integ tests (#2249)
This is an automated email from the ASF dual-hosted git repository. sijie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git The following commit(s) were added to refs/heads/master by this push: new e2aca36 Throw exception on non-zero command exit in integ tests (#2249) e2aca36 is described below commit e2aca368910c437e4d8eefe826ffb6cf86b232da Author: Ivan Kelly AuthorDate: Fri Jul 27 19:10:05 2018 +0100 Throw exception on non-zero command exit in integ tests (#2249) This patch replaces the boolean flag to ignore failure, and instead always throws an exception if a command exits with non-zero. This means that test code doesn't need to check the exit code for each invokation. For non-zero exits, the ContainerExecResult is carried as part of the exception, so the test can also assert on the contents of stdout, stderr and the exit code. --- .../pulsar/tests/integration/cli/CLITest.java | 52 ++ .../integration/containers/ChaosContainer.java | 3 +- .../integration/docker/ContainerExecException.java | 32 + .../runtime/PulsarFunctionsRuntimeTest.java| 28 ++-- .../tests/integration/io/PulsarIOSinkTest.java | 40 ++--- .../tests/integration/io/PulsarIOSourceTest.java | 39 +--- .../tests/integration/utils/DockerUtils.java | 29 7 files changed, 129 insertions(+), 94 deletions(-) diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java index 22cc937..acdae26 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java @@ -22,8 +22,10 @@ import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotEquals; import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; import org.apache.pulsar.tests.integration.containers.BrokerContainer; +import org.apache.pulsar.tests.integration.docker.ContainerExecException; import org.apache.pulsar.tests.integration.docker.ContainerExecResult; import org.apache.pulsar.tests.integration.topologies.PulsarCluster; import org.apache.pulsar.tests.integration.topologies.PulsarClusterTestBase; @@ -39,7 +41,6 @@ public class CLITest extends PulsarClusterTestBase { String tenantName = "test-deprecated-commands"; ContainerExecResult result = pulsarCluster.runAdminCommandOnAnyBroker("--help"); -assertEquals(0, result.getExitCode()); assertFalse(result.getStdout().isEmpty()); assertFalse(result.getStdout().contains("Usage: properties ")); result = pulsarCluster.runAdminCommandOnAnyBroker( @@ -73,7 +74,6 @@ public class CLITest extends PulsarClusterTestBase { "--subscription", "" + subscriptionPrefix + i ); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().isEmpty()); assertTrue(result.getStderr().isEmpty()); i++; @@ -93,7 +93,6 @@ public class CLITest extends PulsarClusterTestBase { "1", topicName); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().contains("1 messages successfully produced")); // terminate the topic @@ -102,20 +101,21 @@ public class CLITest extends PulsarClusterTestBase { "persistent", "terminate", topicName); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().contains("Topic succesfully terminated at")); // try to produce should fail -result = pulsarCluster.getAnyBroker().execCmd( -PulsarCluster.CLIENT_SCRIPT, -"produce", -"-m", -"\"test topic termination\"", -"-n", -"1", -topicName); -assertNotEquals(0, result.getExitCode()); -assertTrue(result.getStdout().contains("Topic was already terminated")); +try { +pulsarCluster.getAnyBroker().execCmd(PulsarCluster.CLIENT_SCRIPT, + "produce", + "-m", + "\"test topic termination\"", + "-n", + "1", + topicName); +fail("Command should have exited with non-zero"); +} catch (ContainerExecException e) { +assertTrue(e.getResult().getStdout().contains("Topic was already terminated")); +} }
[GitHub] sijie closed pull request #2249: Throw exception on non-zero command exit in integ tests
sijie closed pull request #2249: Throw exception on non-zero command exit in integ tests URL: https://github.com/apache/incubator-pulsar/pull/2249 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java index 22cc93780a..acdae263be 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/CLITest.java @@ -22,8 +22,10 @@ import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotEquals; import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; import org.apache.pulsar.tests.integration.containers.BrokerContainer; +import org.apache.pulsar.tests.integration.docker.ContainerExecException; import org.apache.pulsar.tests.integration.docker.ContainerExecResult; import org.apache.pulsar.tests.integration.topologies.PulsarCluster; import org.apache.pulsar.tests.integration.topologies.PulsarClusterTestBase; @@ -39,7 +41,6 @@ public void testDeprecatedCommands() throws Exception { String tenantName = "test-deprecated-commands"; ContainerExecResult result = pulsarCluster.runAdminCommandOnAnyBroker("--help"); -assertEquals(0, result.getExitCode()); assertFalse(result.getStdout().isEmpty()); assertFalse(result.getStdout().contains("Usage: properties ")); result = pulsarCluster.runAdminCommandOnAnyBroker( @@ -73,7 +74,6 @@ public void testCreateSubscriptionCommand() throws Exception { "--subscription", "" + subscriptionPrefix + i ); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().isEmpty()); assertTrue(result.getStderr().isEmpty()); i++; @@ -93,7 +93,6 @@ public void testTopicTerminationOnTopicsWithoutConnectedConsumers() throws Excep "1", topicName); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().contains("1 messages successfully produced")); // terminate the topic @@ -102,20 +101,21 @@ public void testTopicTerminationOnTopicsWithoutConnectedConsumers() throws Excep "persistent", "terminate", topicName); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().contains("Topic succesfully terminated at")); // try to produce should fail -result = pulsarCluster.getAnyBroker().execCmd( -PulsarCluster.CLIENT_SCRIPT, -"produce", -"-m", -"\"test topic termination\"", -"-n", -"1", -topicName); -assertNotEquals(0, result.getExitCode()); -assertTrue(result.getStdout().contains("Topic was already terminated")); +try { +pulsarCluster.getAnyBroker().execCmd(PulsarCluster.CLIENT_SCRIPT, + "produce", + "-m", + "\"test topic termination\"", + "-n", + "1", + topicName); +fail("Command should have exited with non-zero"); +} catch (ContainerExecException e) { +assertTrue(e.getResult().getStdout().contains("Topic was already terminated")); +} } @Test @@ -131,7 +131,6 @@ public void testSchemaCLI() throws Exception { "-n", "1", topicName); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().contains("1 messages successfully produced")); result = container.execCmd( @@ -142,7 +141,6 @@ public void testSchemaCLI() throws Exception { "-f", "/pulsar/conf/schema_example.conf" ); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().isEmpty()); assertTrue(result.getStderr().isEmpty()); @@ -152,7 +150,6 @@ public void testSchemaCLI() throws Exception { "schemas", "get", topicName); -assertEquals(0, result.getExitCode()); assertTrue(result.getStdout().contains("\"type\" : \"STRING\"")); // delete the schema @@ -161,19 +158,20 @@ public void testSchemaCLI() throws Exception { "schemas", "delete", topicName); -
[GitHub] sijie commented on issue #2251: [website] Enable Translation & Localization
sijie commented on issue #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251#issuecomment-408491528 > Can we have a statement that says translated documents will be licensed under AL2 on the project description or somewhere? We don't store the translated the md files directly. However we store the generated html files in asf-site branch. It is a good idea to put a statement in the site2 README explaining all the translated documents will be licensed under AL2. > And we also need to make sure that only committers have a privilege to approve suggested translations. yes. I will add committers as managers to that crowdin project once this is live on the website. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] merlimat closed pull request #2247: [website] Add versions page
merlimat closed pull request #2247: [website] Add versions page URL: https://github.com/apache/incubator-pulsar/pull/2247 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/site2/website/oldversions.json b/site2/website/oldversions.json new file mode 100644 index 00..a83f27fb69 --- /dev/null +++ b/site2/website/oldversions.json @@ -0,0 +1,8 @@ +[ +"2.0.1-incubating", +"2.0.0-rc1-incubating", +"1.22.0-incubating", +"1.21.0-incubating", +"1.20.0-incubating", +"1.19.0-incubating" +] diff --git a/site2/website/pages/en/download.js b/site2/website/pages/en/download.js index 248487446b..6d34397cb2 100644 --- a/site2/website/pages/en/download.js +++ b/site2/website/pages/en/download.js @@ -89,15 +89,20 @@ class Download extends React.Component { Release notes - - [Release notes](/release-notes) for all Pulsar's versions - + + +Release notes for all Pulsar's versions + + Getting started - - Once you've downloaded a Pulsar release, instructions on getting up and running with a standalone cluster - that you can run on your laptop can be found in the [Run Pulsar locally](/docs/standalone) tutorial. - + + +Once you've downloaded a Pulsar release, instructions on getting up and running with a standalone cluster +that you can run on your laptop can be found in the{' '} +Run Pulsar locally tutorial. + + If you need to connect to an existing Pulsar cluster or instance using an officially supported client, see the client docs for these languages: @@ -160,7 +165,7 @@ class Download extends React.Component { sha512) - Release Notes + Release Notes ) diff --git a/site2/website/pages/en/release-notes.js b/site2/website/pages/en/release-notes.js index 09643e3773..076d6a6eb7 100644 --- a/site2/website/pages/en/release-notes.js +++ b/site2/website/pages/en/release-notes.js @@ -19,7 +19,7 @@ class ReleaseNotes extends React.Component { - Apache Pulsar downloads + Apache Pulsar Release Notes diff --git a/site2/website/pages/en/versions.js b/site2/website/pages/en/versions.js index 5aabeb1824..c730e201c3 100644 --- a/site2/website/pages/en/versions.js +++ b/site2/website/pages/en/versions.js @@ -8,90 +8,99 @@ const GridBlock = CompLibrary.GridBlock; const CWD = process.cwd(); const siteConfig = require(`${CWD}/siteConfig.js`); -//const versions = require(CWD + '/versions.json'); +// versions post docusaurus +// const versions = require(`${CWD}/versions.json`); +// versions pre docusaurus +const oldversions = require(`${CWD}/oldversions.json`); -/* -class Versions extends React.Component { - render() { -const latestVersion = versions[0]; +function Versions(props) { +const latestStableVersion = oldversions[0]; +const repoUrl = `https://github.com/${siteConfig.organizationName}/${ + siteConfig.projectName +}`; return ( - - - - - {siteConfig.title + ' Versions'} - -New versions of this project are released every so often. -Current version (Stable) - - - - {latestVersion} - -Documentation - - -Release Notes - - - - - - This is the version that is configured automatically when you - first install this project. - -Pre-release versions - - - - master - -Documentation - - -Release Notes - - - - -Other text describing this section. -Past Versions - - -{versions.map( - version => -version !== latestVersion && ( - -{version} - - Documentation -
[GitHub] merlimat commented on issue #2248: [website] remove `reference-auth.md`
merlimat commented on issue #2248: [website] remove `reference-auth.md` URL: https://github.com/apache/incubator-pulsar/pull/2248#issuecomment-408486971 run java8 tests This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[incubator-pulsar] branch master updated: [website] Add versions page (#2247)
This is an automated email from the ASF dual-hosted git repository. mmerli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git The following commit(s) were added to refs/heads/master by this push: new fd1b459 [website] Add versions page (#2247) fd1b459 is described below commit fd1b4593d9f993a3450a151e8aa7d1ce671f215e Author: Sijie Guo AuthorDate: Fri Jul 27 10:31:39 2018 -0700 [website] Add versions page (#2247) * Update release notes title * [website] Add versions page ### Motivation We need to link back to the documentation for the old versions. ### Changes Update `versions` page to include links back to old versions. ### NOTES This change doesn't include cutting a version for 2.1.0 release. This will be done after 2.1.0 release is cut. --- site2/website/oldversions.json | 8 ++ site2/website/pages/en/download.js | 21 ++-- site2/website/pages/en/release-notes.js | 2 +- site2/website/pages/en/versions.js | 171 +--- site2/website/siteConfig.js | 2 +- 5 files changed, 113 insertions(+), 91 deletions(-) diff --git a/site2/website/oldversions.json b/site2/website/oldversions.json new file mode 100644 index 000..a83f27f --- /dev/null +++ b/site2/website/oldversions.json @@ -0,0 +1,8 @@ +[ +"2.0.1-incubating", +"2.0.0-rc1-incubating", +"1.22.0-incubating", +"1.21.0-incubating", +"1.20.0-incubating", +"1.19.0-incubating" +] diff --git a/site2/website/pages/en/download.js b/site2/website/pages/en/download.js index 2484874..6d34397 100644 --- a/site2/website/pages/en/download.js +++ b/site2/website/pages/en/download.js @@ -89,15 +89,20 @@ class Download extends React.Component { Release notes - - [Release notes](/release-notes) for all Pulsar's versions - + + +Release notes for all Pulsar's versions + + Getting started - - Once you've downloaded a Pulsar release, instructions on getting up and running with a standalone cluster - that you can run on your laptop can be found in the [Run Pulsar locally](/docs/standalone) tutorial. - + + +Once you've downloaded a Pulsar release, instructions on getting up and running with a standalone cluster +that you can run on your laptop can be found in the{' '} +Run Pulsar locally tutorial. + + If you need to connect to an existing Pulsar cluster or instance using an officially supported client, see the client docs for these languages: @@ -160,7 +165,7 @@ class Download extends React.Component { sha512) - Release Notes + Release Notes ) diff --git a/site2/website/pages/en/release-notes.js b/site2/website/pages/en/release-notes.js index 09643e3..076d6a6 100644 --- a/site2/website/pages/en/release-notes.js +++ b/site2/website/pages/en/release-notes.js @@ -19,7 +19,7 @@ class ReleaseNotes extends React.Component { - Apache Pulsar downloads + Apache Pulsar Release Notes diff --git a/site2/website/pages/en/versions.js b/site2/website/pages/en/versions.js index 5aabeb1..c730e20 100644 --- a/site2/website/pages/en/versions.js +++ b/site2/website/pages/en/versions.js @@ -8,90 +8,99 @@ const GridBlock = CompLibrary.GridBlock; const CWD = process.cwd(); const siteConfig = require(`${CWD}/siteConfig.js`); -//const versions = require(CWD + '/versions.json'); +// versions post docusaurus +// const versions = require(`${CWD}/versions.json`); +// versions pre docusaurus +const oldversions = require(`${CWD}/oldversions.json`); -/* -class Versions extends React.Component { - render() { -const latestVersion = versions[0]; +function Versions(props) { +const latestStableVersion = oldversions[0]; +const repoUrl = `https://github.com/${siteConfig.organizationName}/${ + siteConfig.projectName +}`; return ( - - - - - {siteConfig.title + ' Versions'} - -New versions of this project are released every so often. -Current version (Stable) - - - - {latestVersion} - -Documentation - - -Release Notes - - - -
[GitHub] awilliams opened a new issue #2252: documentation: incorrect flags for bin/pulsar
awilliams opened a new issue #2252: documentation: incorrect flags for bin/pulsar URL: https://github.com/apache/incubator-pulsar/issues/2252 Expected behavior The documentation lists `-c` and `--conf` as possible arguments of the `bin/pulsar` command. https://pulsar.incubator.apache.org/docs/v2.0.1-incubating/reference/CliTools/#zookeeper-90gyx Actual behavior In practice, the `-c` and `--conf` args to `bin/pulsar` are not respected. It seems that the proper way to specify an alternative config file is via the [`PULSAR_ZK_CONF`](https://github.com/apache/incubator-pulsar/blob/fd47532380d770e4fd78cabe71dea293fc2f0e06/bin/pulsar#L264) env variable. ```shell $ ./bin/pulsar zookeeper -c conf/zookeeper.conf [AppClassLoader@4dd8dc3] info AspectJ Weaver Version 1.8.9 built on Monday Mar 14, 2016 at 21:18:16 GMT [AppClassLoader@4dd8dc3] info register classloader sun.misc.Launcher$AppClassLoader@4dd8dc3 [AppClassLoader@4dd8dc3] info using configuration file:/src/github.com/apache/incubator-pulsar-v2/pulsar-broker/target/pulsar-broker.jar!/META-INF/aop.xml [AppClassLoader@4dd8dc3] info using configuration file:/src/github.com/apache/incubator-pulsar-v2/pulsar-zookeeper/target/pulsar-zookeeper.jar!/META-INF/aop.xml [AppClassLoader@4dd8dc3] info register aspect org.apache.pulsar.broker.zookeeper.aspectj.ClientCnxnAspect [AppClassLoader@4dd8dc3] info register aspect org.apache.pulsar.zookeeper.FinalRequestProcessorAspect [AppClassLoader@4dd8dc3] info register aspect org.apache.pulsar.zookeeper.ZooKeeperServerAspect 10:49:25.346 [main] INFO org.apache.pulsar.zookeeper.ZooKeeperStarter - Starting ZK stats HTTP server at port 8000 10:49:25.367 [main] INFO org.eclipse.jetty.util.log - Logging initialized @2001ms 10:49:25.425 [main] INFO org.eclipse.jetty.server.Server - jetty-9.3.11.v20160721 10:49:25.459 [main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@fcb4004{/,null,AVAILABLE} 10:49:25.486 [main] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@3cc41abc{HTTP/1.1,[http/1.1]}{0.0.0.0:8000} 10:49:25.486 [main] INFO org.eclipse.jetty.server.Server - Started @2122ms 10:49:25.492 [main] INFO org.apache.zookeeper.server.DatadirCleanupManager - autopurge.snapRetainCount set to 3 10:49:25.492 [main] INFO org.apache.zookeeper.server.DatadirCleanupManager - autopurge.purgeInterval set to 0 10:49:25.493 [main] INFO org.apache.zookeeper.server.DatadirCleanupManager - Purge task is not scheduled. 10:49:25.493 [main] WARN org.apache.zookeeper.server.quorum.QuorumPeerMain - Either no config or no quorum defined in config, running in standalone mode 10:49:25.535 [main] ERROR org.apache.zookeeper.server.ZooKeeperServerMain - Invalid arguments, exiting abnormally java.lang.NumberFormatException: For input string: "/src/github.com/apache/incubator-pulsar-v2/conf/zookeeper.conf" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_161] at java.lang.Integer.parseInt(Integer.java:569) ~[?:1.8.0_161] at java.lang.Integer.parseInt(Integer.java:615) ~[?:1.8.0_161] at org.apache.zookeeper.server.ServerConfig.parse(ServerConfig.java:59) ~[pulsar-broker.jar:2.0.1-incubating] at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:84) ~[pulsar-broker.jar:2.0.1-incubating] at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:53) [pulsar-broker.jar:2.0.1-incubating] at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116) [pulsar-broker.jar:2.0.1-incubating] at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) [pulsar-broker.jar:2.0.1-incubating] at org.apache.pulsar.zookeeper.ZooKeeperStarter.start(ZooKeeperStarter.java:68) [pulsar-zookeeper.jar:2.0.1-incubating] at org.apache.pulsar.zookeeper.ZooKeeperStarter.main(ZooKeeperStarter.java:38) [pulsar-zookeeper.jar:2.0.1-incubating] 10:49:25.540 [main] INFO org.apache.zookeeper.server.ZooKeeperServerMain - Usage: ZooKeeperServerMain configfile | port datadir [ticktime] [maxcnxns] Usage: ZooKeeperServerMain configfile | port datadir [ticktime] [maxcnxns] ``` Steps to reproduce See above "Actual behavior" System configuration `v2.0.1-incubating` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205821168 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. + +Regarding driver type "google-cloud-storage", the administrator should configure `gcsManagedLedgerOffloadBucket`. + +```conf +gcsManagedLedgerOffloadBucket=pulsar-topic-offload +``` + + Configuring the Bucket Region + +Bucket Region is the region where bucket located. + +Regarding GCS, buckets are default created in the `us multi-regional location`, page [Bucket Locations](https://cloud.google.com/storage/docs/bucket-locations) contains more information. + +- GCS Region example: + +```conf +gcsManagedLedgerOffloadRegion=europe-west3 +``` + + Configuring the Authenticating + +The administrator need configure `gcsManagedLedgerOffloadServiceAccountKeyFile` in `broker.conf` to get GCS service available. It is a Json file, which contains GCS credentials of service account key. +[This page](https://support.google.com/googleapi/answer/6158849) contains more information of how to create this key file for authentication. You could also get more information regarding google cloud [IAM](https://cloud.google.com/storage/docs/access-control/iam). + +Usually these are the steps to create the authentication file: +1. Open the API Console Credentials page. +2. If it's not already selected, select the project that you're creating credentials for. +3. To set up a new service account, click New credentials and then select Service account key. +4. Choose the service account to use for the key. +5. Choose whether to download the service account's public/private key as a JSON file that can be loaded by a Google API client library. + +Here is an example: Review comment: Remove this line. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205817782 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver -{% include admonition.html type="warning" content="If the endpoint is specified directly, then the region must _not_ be set." %} + Configuring the Bucket -{% include admonition.html type="warning" content="The broker.conf of all brokers must have the same configuration for driver, region and bucket for offload to avoid data becoming unavailable as topics move from one broker to another." %} +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. -Pulsar also provides some knobs to configure the size of requests sent to S3. +Regarding AWS S3, the administrator should configure `s3ManagedLedgerOffloadBucket`. -- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. -- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from S3. Default is 1MB. +```conf +s3ManagedLedgerOffloadBucket=pulsar-topic-offload +``` -In both cases, these should not be touched unless you know what you are doing. + Configuring the Bucket Region -{% include admonition.html type="warning" content="The broker must be rebooted for any changes in the configuration to take effect." %} +Bucket Region is the region where bucket located. -### Authenticating with S3 +Regarding AWS S3, the default region is `US East (N. Virginia)`. Page [AWS Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html) contains more information. -To be able to access S3, you need to authenticate with S3. Pulsar does not provide any direct
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205820170 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. + +Regarding driver type "google-cloud-storage", the administrator should configure `gcsManagedLedgerOffloadBucket`. + +```conf +gcsManagedLedgerOffloadBucket=pulsar-topic-offload +``` + + Configuring the Bucket Region + +Bucket Region is the region where bucket located. + +Regarding GCS, buckets are default created in the `us multi-regional location`, page [Bucket Locations](https://cloud.google.com/storage/docs/bucket-locations) contains more information. + +- GCS Region example: + +```conf +gcsManagedLedgerOffloadRegion=europe-west3 +``` + + Configuring the Authenticating Review comment: As above, just "Authentication" is enough. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205821093 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. + +Regarding driver type "google-cloud-storage", the administrator should configure `gcsManagedLedgerOffloadBucket`. + +```conf +gcsManagedLedgerOffloadBucket=pulsar-topic-offload +``` + + Configuring the Bucket Region + +Bucket Region is the region where bucket located. + +Regarding GCS, buckets are default created in the `us multi-regional location`, page [Bucket Locations](https://cloud.google.com/storage/docs/bucket-locations) contains more information. + +- GCS Region example: + +```conf +gcsManagedLedgerOffloadRegion=europe-west3 +``` + + Configuring the Authenticating + +The administrator need configure `gcsManagedLedgerOffloadServiceAccountKeyFile` in `broker.conf` to get GCS service available. It is a Json file, which contains GCS credentials of service account key. +[This page](https://support.google.com/googleapi/answer/6158849) contains more information of how to create this key file for authentication. You could also get more information regarding google cloud [IAM](https://cloud.google.com/storage/docs/access-control/iam). + +Usually these are the steps to create the authentication file: +1. Open the API Console Credentials page. +2. If it's not already selected, select the project that you're creating credentials for. +3. To set up a new service account, click New credentials and then select Service account key. +4. Choose the service account to use for the key. +5. Choose whether to download the service account's public/private key as a JSON file that can be loaded by a Google API client library. Review comment: Remove "Choose whether to". This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205817635 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver -{% include admonition.html type="warning" content="If the endpoint is specified directly, then the region must _not_ be set." %} + Configuring the Bucket -{% include admonition.html type="warning" content="The broker.conf of all brokers must have the same configuration for driver, region and bucket for offload to avoid data becoming unavailable as topics move from one broker to another." %} +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. -Pulsar also provides some knobs to configure the size of requests sent to S3. +Regarding AWS S3, the administrator should configure `s3ManagedLedgerOffloadBucket`. -- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. -- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from S3. Default is 1MB. +```conf +s3ManagedLedgerOffloadBucket=pulsar-topic-offload +``` -In both cases, these should not be touched unless you know what you are doing. + Configuring the Bucket Region -{% include admonition.html type="warning" content="The broker must be rebooted for any changes in the configuration to take effect." %} +Bucket Region is the region where bucket located. Review comment: Add a note about whether bucket region is a required configuration. What happens if it is not configured. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205820891 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. + +Regarding driver type "google-cloud-storage", the administrator should configure `gcsManagedLedgerOffloadBucket`. + +```conf +gcsManagedLedgerOffloadBucket=pulsar-topic-offload +``` + + Configuring the Bucket Region + +Bucket Region is the region where bucket located. + +Regarding GCS, buckets are default created in the `us multi-regional location`, page [Bucket Locations](https://cloud.google.com/storage/docs/bucket-locations) contains more information. + +- GCS Region example: + +```conf +gcsManagedLedgerOffloadRegion=europe-west3 +``` + + Configuring the Authenticating + +The administrator need configure `gcsManagedLedgerOffloadServiceAccountKeyFile` in `broker.conf` to get GCS service available. It is a Json file, which contains GCS credentials of service account key. +[This page](https://support.google.com/googleapi/answer/6158849) contains more information of how to create this key file for authentication. You could also get more information regarding google cloud [IAM](https://cloud.google.com/storage/docs/access-control/iam). Review comment: The [Service Accounts section of this page](...) contains more information... More information about [Google Cloud IAMs is available here](...). This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205818346 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. + +Regarding driver type "google-cloud-storage", the administrator should configure `gcsManagedLedgerOffloadBucket`. Review comment: Remove this line This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205818275 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket Review comment: Again, I'd have same "Bucket & Region" header as I said above. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205816884 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver Review comment: -> "aws-s3" Driver configuration This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205819601 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. + +Regarding driver type "google-cloud-storage", the administrator should configure `gcsManagedLedgerOffloadBucket`. + +```conf +gcsManagedLedgerOffloadBucket=pulsar-topic-offload +``` + + Configuring the Bucket Region + +Bucket Region is the region where bucket located. Review comment: Is this a required config? What happens if it isn't configured. Is it required if the bucket has been explicitly created in a region? What are the tradeoffs between `us multi-regional location` and a single bucket? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205819012 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver -{% include admonition.html type="warning" content="If the endpoint is specified directly, then the region must _not_ be set." %} + Configuring the Bucket -{% include admonition.html type="warning" content="The broker.conf of all brokers must have the same configuration for driver, region and bucket for offload to avoid data becoming unavailable as topics move from one broker to another." %} +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. Review comment: Duplicate of text on line 22, which is in intro so it covers all drivers. I would replace this with a brief intro to what the bucket is. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205817742 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver -{% include admonition.html type="warning" content="If the endpoint is specified directly, then the region must _not_ be set." %} + Configuring the Bucket -{% include admonition.html type="warning" content="The broker.conf of all brokers must have the same configuration for driver, region and bucket for offload to avoid data becoming unavailable as topics move from one broker to another." %} +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. -Pulsar also provides some knobs to configure the size of requests sent to S3. +Regarding AWS S3, the administrator should configure `s3ManagedLedgerOffloadBucket`. -- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. -- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from S3. Default is 1MB. +```conf +s3ManagedLedgerOffloadBucket=pulsar-topic-offload +``` -In both cases, these should not be touched unless you know what you are doing. + Configuring the Bucket Region -{% include admonition.html type="warning" content="The broker must be rebooted for any changes in the configuration to take effect." %} +Bucket Region is the region where bucket located. -### Authenticating with S3 +Regarding AWS S3, the default region is `US East (N. Virginia)`. Page [AWS Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html) contains more information. Review comment: With AWS S3, ...
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205820379 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. + +Regarding driver type "google-cloud-storage", the administrator should configure `gcsManagedLedgerOffloadBucket`. + +```conf +gcsManagedLedgerOffloadBucket=pulsar-topic-offload +``` + + Configuring the Bucket Region + +Bucket Region is the region where bucket located. + +Regarding GCS, buckets are default created in the `us multi-regional location`, page [Bucket Locations](https://cloud.google.com/storage/docs/bucket-locations) contains more information. + +- GCS Region example: + +```conf +gcsManagedLedgerOffloadRegion=europe-west3 +``` + + Configuring the Authenticating + +The administrator need configure `gcsManagedLedgerOffloadServiceAccountKeyFile` in `broker.conf` to get GCS service available. It is a Json file, which contains GCS credentials of service account key. Review comment: The administrator needs to configure `gcsManagedLedgerOffloadServiceAccountKeyFile` in `broker.conf` for the broker to be able to access the GCS service. `gcsManagedLedgerOffloadServiceAccountKeyFile` is a Json file, containing the GCS credentials of a service account. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205819223 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver + + Configuring the Bucket + +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. Review comment: dupe of text on line 22 in the intro. Replace with brief description of what bucket is in GCS. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205818158 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -86,6 +93,67 @@ If you are running in EC2 you can also use instance profile credentials, provide {% include admonition.html type="warning" content="The broker must be rebooted for credentials specified in pulsar_env to take effect." %} + Configuring the size of block read/write + +Pulsar also provides some knobs to configure the size of requests sent to AWS S3. + +- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. +- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from AWS S3. Default is 1MB. + +In both cases, these should not be touched unless you know what you are doing. + + +### Configuring for "google-cloud-storage" driver Review comment: "google-cloud-storage" Driver Configuration This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205817080 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver -{% include admonition.html type="warning" content="If the endpoint is specified directly, then the region must _not_ be set." %} + Configuring the Bucket -{% include admonition.html type="warning" content="The broker.conf of all brokers must have the same configuration for driver, region and bucket for offload to avoid data becoming unavailable as topics move from one broker to another." %} +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. -Pulsar also provides some knobs to configure the size of requests sent to S3. +Regarding AWS S3, the administrator should configure `s3ManagedLedgerOffloadBucket`. Review comment: Remove this line. It adds little. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205816007 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. Review comment: -> the bucket and authentication credentials. -> bucket region This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205820083 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver -{% include admonition.html type="warning" content="If the endpoint is specified directly, then the region must _not_ be set." %} + Configuring the Bucket -{% include admonition.html type="warning" content="The broker.conf of all brokers must have the same configuration for driver, region and bucket for offload to avoid data becoming unavailable as topics move from one broker to another." %} +On the broker, the administrator must configure the bucket and credentials for the cloud storage service. The configured bucket and credentials must exist before attempting to offload. If it does not exist, the offload operation will fail. -Pulsar also provides some knobs to configure the size of requests sent to S3. +Regarding AWS S3, the administrator should configure `s3ManagedLedgerOffloadBucket`. -- ```s3ManagedLedgerOffloadMaxBlockSizeInBytes``` configures the maximum size of a "part" sent during a multipart upload. This cannot be smaller than 5MB. Default is 64MB. -- ```s3ManagedLedgerOffloadReadBufferSizeInBytes``` configures the block size for each individual read when reading back data from S3. Default is 1MB. +```conf +s3ManagedLedgerOffloadBucket=pulsar-topic-offload +``` -In both cases, these should not be touched unless you know what you are doing. + Configuring the Bucket Region -{% include admonition.html type="warning" content="The broker must be rebooted for any changes in the configuration to take effect." %} +Bucket Region is the region where bucket located. -### Authenticating with S3 +Regarding AWS S3, the default region is `US East (N. Virginia)`. Page [AWS Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html) contains more information. -To be able to access S3, you need to authenticate with S3. Pulsar does not provide any direct
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205815813 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Review comment: -> Configuring the offload driver This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205817458 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -17,44 +19,50 @@ A topic in Pulsar is backed by a log, known as a managed ledger. This log is com The Tiered Storage offloading mechanism takes advantage of this segment oriented architecture. When offloading is requested, the segments of the log are copied, one-by-one, to tiered storage. All segments of the log, apart from the segment currently being written to can be offloaded. -## Amazon S3 - -Tiered storage currently supports S3 for long term storage. On the broker, the administrator must configure a S3 bucket and the AWS region where the bucket exists. Offloaded data will be placed into this bucket. +On the broker, the administrator must configure the bucket or credentials for the cloud storage service. The configured bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. -The configured S3 bucket must exist before attempting to offload. If it does not exist, the offload operation will fail. +Pulsar uses multi-part objects to upload the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a life cycle rule your bucket to expire incomplete multi-part upload after a day or two to avoid getting charged for incomplete uploads. -Pulsar users multipart objects to update the segment data. It is possible that a broker could crash while uploading the data. We recommend you add a lifecycle rule your S3 bucket to expire incomplete multipart upload after a day or two to avoid getting charged for incomplete uploads. - -### Configuring the broker +## Configuring the driver for "aws-s3" or "google-cloud-storage" in the broker Offloading is configured in ```broker.conf```. -At a minimum, the user must configure the driver, the region and the bucket. +At a minimum, the administrator must configure the driver, the bucket and the authenticating. There is also some other knobs to configure, like the bucket regions, the max block size in backed storage, etc. + +Currently we support driver of types: { "aws-s3", "google-cloud-storage" }, +{% include admonition.html type="warning" content="Driver names are case-insensitive for driver's name. "s3" and "aws-s3" are similar, with "aws-s3" you just don't need to define the url of the endpoint because it is aligned with region, and default is `s3.amazonaws.com`; while with s3, you must provide the endpoint url by `s3ManagedLedgerOffloadServiceEndpoint`." %} ```conf -managedLedgerOffloadDriver=S3 -s3ManagedLedgerOffloadRegion=eu-west-3 -s3ManagedLedgerOffloadBucket=pulsar-topic-offload +managedLedgerOffloadDriver=aws-s3 ``` -It is also possible to specify the s3 endpoint directly, using ```s3ManagedLedgerOffloadServiceEndpoint```. This is useful if you are using a non-AWS storage service which provides an S3 compatible API. +### Configuring for "aws-s3" driver -{% include admonition.html type="warning" content="If the endpoint is specified directly, then the region must _not_ be set." %} + Configuring the Bucket Review comment: I would change this to Bucket & Region and then remove the region header below. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS
ivankelly commented on a change in pull request #2152: GCS offload support(4): add documentations for GCS URL: https://github.com/apache/incubator-pulsar/pull/2152#discussion_r205815559 ## File path: site/docs/latest/cookbooks/tiered-storage.md ## @@ -5,6 +5,8 @@ tags: [admin, tiered-storage] Pulsar's **Tiered Storage** feature allows older backlog data to be offloaded to long term storage, thereby freeing up space in BookKeeper and reducing storage costs. This cookbook walks you through using tiered storage in your Pulsar cluster. +Tiered storage currently leverage [Apache Jclouds](https://jclouds.apache.org) to supports [S3](https://aws.amazon.com/s3/) and [Google Cloud Storage](https://cloud.google.com/storage/)(GCS for short) for long term storage. And by Jclouds, it is easy to add more [supported](https://jclouds.apache.org/reference/providers/#blobstore-providers) cloud storage provider in the future. Review comment: -> currently uses [Apache Jclouds](...) to support [Amazon S3](...). And by Jclouds.. -> With jclouds, it is easy to add support for more cloud storage providers in the future. jclouds always seem to write their name in all lowercase. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] maskit commented on issue #2251: [website] Enable Translation & Localization
maskit commented on issue #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251#issuecomment-408417999 Sounds good. Can we have a statement that says translated documents will be licensed under AL2 on the project description or somewhere? I'm not sure whether we really need it, but if the translation will be stored into our git repo or be distributed under pulsar.i.a.o, we probably need it. And we also need to make sure that only committers have a privilege to approve suggested translations. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ratcashdev commented on issue #1334: Experimental settings to achieve 5 ms latency
ratcashdev commented on issue #1334: Experimental settings to achieve 5 ms latency URL: https://github.com/apache/incubator-pulsar/issues/1334#issuecomment-408387040 According to the blog post here: https://dzone.com/articles/benchmarking-message-queue-latency Kafka (and also RabbitMQ) can achieve sub 1 ms latency, while using persistence. Materials presented by Streaml.io suggest Pulsar has a 40% lower latency compared to Kafka (https://www.businesswire.com/news/home/20180306005633/en/Apache-Pulsar-Outperforms-Apache-Kafka-2.5x-OpenMessaging) How can we achieve / replicate these claims? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] jiazhai commented on issue #2251: [website] Enable Translation & Localization
jiazhai commented on issue #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251#issuecomment-408375728 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on issue #2251: [website] Enable Translation & Localization
sijie commented on issue #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251#issuecomment-408369735 for reviewers, this change is based on #2247 . so gitsha 6d08fa3 is the change to be reviewed in this PR. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on issue #2251: [website] Enable Translation & Localization
sijie commented on issue #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251#issuecomment-408369760 @cckellogg ^^ This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie opened a new pull request #2251: [website] Enable Translation & Localization
sijie opened a new pull request #2251: [website] Enable Translation & Localization URL: https://github.com/apache/incubator-pulsar/pull/2251 *Motivation* Docusaurus allows for easy translation functionality using [Crowdin](https://crowdin.com/). Documentation files written in English are uploaded to Crowdin for translation by users within a community. *Changes* - Enable the integration with Crowdin. - Adjust hyperlinks to include `language`. Crowdin project: https://crowdin.com/project/apache-pulsar This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dbsd11 opened a new issue #2250: How to manage namespace policies efficiently
dbsd11 opened a new issue #2250: How to manage namespace policies efficiently URL: https://github.com/apache/incubator-pulsar/issues/2250 Expected behavior Doubts about the use and policies of namespace . It's not very intuitive. I think need an admin-ui project to manage namespaces,topics like rocketmq This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] ivankelly opened a new pull request #2249: Throw exception on non-zero command exit in integ tests
ivankelly opened a new pull request #2249: Throw exception on non-zero command exit in integ tests URL: https://github.com/apache/incubator-pulsar/pull/2249 This patch replaces the boolean flag to ignore failure, and instead always throws an exception if a command exits with non-zero. This means that test code doesn't need to check the exit code for each invokation. For non-zero exits, the ContainerExecResult is carried as part of the exception, so the test can also assert on the contents of stdout, stderr and the exit code. ### Motivation Explain here the context, and why you're making that change. What is the problem you're trying to solve. ### Modifications Describe the modifications you've done. ### Result After your change, what will change. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie commented on issue #2247: [website] Add versions page
sijie commented on issue #2247: [website] Add versions page URL: https://github.com/apache/incubator-pulsar/pull/2247#issuecomment-408351505 rerun java8 tests This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie opened a new pull request #2248: [website] remove `reference-auth.md`
sijie opened a new pull request #2248: [website] remove `reference-auth.md` URL: https://github.com/apache/incubator-pulsar/pull/2248 ### Motivation This page is a duplication of `security-extending.md` ### Changes Remove the duplicated `reference-auth.md` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie closed pull request #2245: [website] fix javadoc template
sijie closed pull request #2245: [website] fix javadoc template URL: https://github.com/apache/incubator-pulsar/pull/2245 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/site2/docs/admin-api-brokers.md b/site2/docs/admin-api-brokers.md index 9cc3023898..3d7ea5cbd8 100644 --- a/site2/docs/admin-api-brokers.md +++ b/site2/docs/admin-api-brokers.md @@ -13,7 +13,7 @@ Pulsar brokers consist of two components: * The [`brokers`](reference-pulsar-admin.md#brokers) command of the [`pulsar-admin`](reference-pulsar-admin.md) tool * The `/admin/v2/brokers` endpoint of the admin [REST API](reference-rest-api.md) -* The `brokers` method of the {% javadoc PulsarAdmin admin org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java API](client-libraries-java.md) +* The `brokers` method of the {@inject: javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin.html} object in the [Java API](client-libraries-java.md) In addition to being configurable when you start them up, brokers can also be [dynamically configured](#dynamic-broker-configuration). diff --git a/site2/docs/admin-api-clusters.md b/site2/docs/admin-api-clusters.md index 9f0d23eab9..eb873efd38 100644 --- a/site2/docs/admin-api-clusters.md +++ b/site2/docs/admin-api-clusters.md @@ -11,7 +11,7 @@ Clusters can be managed via: * The [`clusters`](reference-pulsar-admin.md#clusters) command of the [`pulsar-admin`](reference-pulsar-admin.md) tool * The `/admin/v2/clusters` endpoint of the admin [REST API](reference-rest-api.md) -* The `clusters` method of the {% javadoc PulsarAdmin admin org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java API](client-libraries-java.md) +* The `clusters` method of the {@inject: javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object in the [Java API](client-libraries-java.md) ## Clusters resources diff --git a/site2/docs/admin-api-namespaces.md b/site2/docs/admin-api-namespaces.md index 9ebd77029a..a203c83317 100644 --- a/site2/docs/admin-api-namespaces.md +++ b/site2/docs/admin-api-namespaces.md @@ -10,7 +10,7 @@ Namespaces can be managed via: * The [`namespaces`](reference-pulsar-admin.md#clusters) command of the [`pulsar-admin`](reference-pulsar-admin.md) tool * The `/admin/v2/namespaces` endpoint of the admin [REST API](reference-rest-api.md) -* The `namespaces` method of the {% javadoc PulsarAdmin admin org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java API](client-libraries-java.md) +* The `namespaces` method of the {@inject: javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object in the [Java API](client-libraries-java.md) ## Namespaces resources diff --git a/site2/docs/admin-api-overview.md b/site2/docs/admin-api-overview.md index 2220418825..db77a8db3f 100644 --- a/site2/docs/admin-api-overview.md +++ b/site2/docs/admin-api-overview.md @@ -50,7 +50,7 @@ You can find documentation for the REST API exposed by Pulsar [brokers](referenc ### Java admin client -To use the Java admin API, instantiate a {% javadoc PulsarAdmin admin org.apache.pulsar.client.admin.PulsarAdmin %} object, specifying a URL for a Pulsar [broker](reference-terminology.md#broker) and a {% javadoc ClientConfiguration admin org.apache.pulsar.client.admin.ClientConfiguration %}. Here's a minimal example using `localhost`: +To use the Java admin API, instantiate a {@inject: javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object, specifying a URL for a Pulsar [broker](reference-terminology.md#broker) and a {@inject: javadoc:ClientConfiguration:/admin/org/apache/pulsar/client/admin/ClientConfiguration}. Here's a minimal example using `localhost`: ```java URL url = new URL("http://localhost:8080;); diff --git a/site2/docs/administration-dashboard.md b/site2/docs/administration-dashboard.md index 9305f1e2d6..0c4bf9d2fd 100644 --- a/site2/docs/administration-dashboard.md +++ b/site2/docs/administration-dashboard.md @@ -12,7 +12,7 @@ A [Django](https://www.djangoproject.com) web app is used to render the collecte ## Install -The easiest way to use the dashboard is to run it inside a [Docker](https://www.docker.com/products/docker) container. A [`Dockerfile`](pulsar:repo_url/dashboard/Dockerfile) to generate the image is provided. +The easiest way to use the dashboard is to run it inside a [Docker](https://www.docker.com/products/docker) container. A {@inject: github:`Dockerfile`:/dashboard/Dockerfile} to generate the image is provided. To generate the Docker image: diff --git a/site2/docs/administration-geo.md b/site2/docs/administration-geo.md index 1093323bf8..4f65127a61 100644 --- a/site2/docs/administration-geo.md +++
[incubator-pulsar] branch master updated: [website] fix javadoc template (#2245)
This is an automated email from the ASF dual-hosted git repository. sijie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git The following commit(s) were added to refs/heads/master by this push: new d8c171b [website] fix javadoc template (#2245) d8c171b is described below commit d8c171bff58659cbc801db5987508ca860827a88 Author: Sijie Guo AuthorDate: Thu Jul 26 23:47:55 2018 -0700 [website] fix javadoc template (#2245) ### Motivation the existing site is using `{% javadoc ... %}` for templating url to the javadoc link of a given java class. since the new site doesn't use any templating language. we need to fix these templates. ### Changes I am extending the `inject` logic in markdown rendering, providing a similar feature as existing site. when you want to create a link to a java class, you can use `{@inject: javadoc::}`. Example: if you want to link to https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html, you can use `{@inject: javadoc:PulsarAdmin:admin/org/apache/pulsar/client/admin/PulsarAdmin}` and the rendered result will be [PulsarAdmin](https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html) --- site2/docs/admin-api-brokers.md | 2 +- site2/docs/admin-api-clusters.md | 2 +- site2/docs/admin-api-namespaces.md | 2 +- site2/docs/admin-api-overview.md | 2 +- site2/docs/administration-dashboard.md | 2 +- site2/docs/administration-geo.md | 2 +- site2/docs/client-libraries-java.md | 20 ++-- site2/docs/cookbooks-partitioned.md | 2 +- site2/docs/deploy-kubernetes.md | 2 +- site2/docs/functions-api.md | 4 ++-- site2/docs/functions-metrics.md | 2 +- .../getting-started-concepts-and-architecture.md | 4 ++-- site2/website/scripts/replace.js | 12 ++-- site2/website/siteConfig.js | 17 - 14 files changed, 41 insertions(+), 34 deletions(-) diff --git a/site2/docs/admin-api-brokers.md b/site2/docs/admin-api-brokers.md index 9cc3023..3d7ea5c 100644 --- a/site2/docs/admin-api-brokers.md +++ b/site2/docs/admin-api-brokers.md @@ -13,7 +13,7 @@ Pulsar brokers consist of two components: * The [`brokers`](reference-pulsar-admin.md#brokers) command of the [`pulsar-admin`](reference-pulsar-admin.md) tool * The `/admin/v2/brokers` endpoint of the admin [REST API](reference-rest-api.md) -* The `brokers` method of the {% javadoc PulsarAdmin admin org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java API](client-libraries-java.md) +* The `brokers` method of the {@inject: javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin.html} object in the [Java API](client-libraries-java.md) In addition to being configurable when you start them up, brokers can also be [dynamically configured](#dynamic-broker-configuration). diff --git a/site2/docs/admin-api-clusters.md b/site2/docs/admin-api-clusters.md index 9f0d23e..eb873ef 100644 --- a/site2/docs/admin-api-clusters.md +++ b/site2/docs/admin-api-clusters.md @@ -11,7 +11,7 @@ Clusters can be managed via: * The [`clusters`](reference-pulsar-admin.md#clusters) command of the [`pulsar-admin`](reference-pulsar-admin.md) tool * The `/admin/v2/clusters` endpoint of the admin [REST API](reference-rest-api.md) -* The `clusters` method of the {% javadoc PulsarAdmin admin org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java API](client-libraries-java.md) +* The `clusters` method of the {@inject: javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object in the [Java API](client-libraries-java.md) ## Clusters resources diff --git a/site2/docs/admin-api-namespaces.md b/site2/docs/admin-api-namespaces.md index 9ebd770..a203c83 100644 --- a/site2/docs/admin-api-namespaces.md +++ b/site2/docs/admin-api-namespaces.md @@ -10,7 +10,7 @@ Namespaces can be managed via: * The [`namespaces`](reference-pulsar-admin.md#clusters) command of the [`pulsar-admin`](reference-pulsar-admin.md) tool * The `/admin/v2/namespaces` endpoint of the admin [REST API](reference-rest-api.md) -* The `namespaces` method of the {% javadoc PulsarAdmin admin org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java API](client-libraries-java.md) +* The `namespaces` method of the {@inject: javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object in the [Java API](client-libraries-java.md) ## Namespaces resources diff --git a/site2/docs/admin-api-overview.md b/site2/docs/admin-api-overview.md index 2220418..db77a8d 100644 ---
[GitHub] sijie commented on issue #2247: [website] Add versions page
sijie commented on issue #2247: [website] Add versions page URL: https://github.com/apache/incubator-pulsar/pull/2247#issuecomment-408328064 @cckellogg ^^ This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] sijie opened a new pull request #2247: [website] Add versions page
sijie opened a new pull request #2247: [website] Add versions page URL: https://github.com/apache/incubator-pulsar/pull/2247 ### Motivation We need to link back to the documentation for the old versions. ### Changes Update `versions` page to include links back to old versions. ### NOTES This change doesn't include cutting a version for 2.1.0 release. This will be done after 2.1.0 release is cut. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[incubator-pulsar] branch master updated: add function-name reference with function failure log (#2246)
This is an automated email from the ASF dual-hosted git repository. sanjeevrk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git The following commit(s) were added to refs/heads/master by this push: new 4544f6e add function-name reference with function failure log (#2246) 4544f6e is described below commit 4544f6eb3706e21c8953210c256eb22445a1a440 Author: Rajan Dhabalia AuthorDate: Thu Jul 26 23:36:06 2018 -0700 add function-name reference with function failure log (#2246) --- .../main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java index 8329ed7..6abb5fb 100644 --- a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java +++ b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java @@ -82,7 +82,9 @@ public class RuntimeSpawner implements AutoCloseable { @Override public void run() { if (!runtime.isAlive()) { -log.error("Function Container is dead with exception", runtime.getDeathException()); +log.error("[{}-{}] Function Container is dead with exception", +instanceConfig.getFunctionDetails().getName(), instanceConfig.getInstanceId(), +runtime.getDeathException()); log.error("Restarting..."); // Just for the sake of sanity, just destroy the runtime runtime.stop();
[GitHub] srkukarni closed pull request #2246: add function-name reference with function failure log
srkukarni closed pull request #2246: add function-name reference with function failure log URL: https://github.com/apache/incubator-pulsar/pull/2246 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java index 8329ed7bbc..6abb5fbfc0 100644 --- a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java +++ b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeSpawner.java @@ -82,7 +82,9 @@ public void start() throws Exception { @Override public void run() { if (!runtime.isAlive()) { -log.error("Function Container is dead with exception", runtime.getDeathException()); +log.error("[{}-{}] Function Container is dead with exception", +instanceConfig.getFunctionDetails().getName(), instanceConfig.getInstanceId(), +runtime.getDeathException()); log.error("Restarting..."); // Just for the sake of sanity, just destroy the runtime runtime.stop(); This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services