Skip to content

Latest commit

 

History

History
53 lines (48 loc) · 3.29 KB

CHANGES.md

File metadata and controls

53 lines (48 loc) · 3.29 KB

v0.33.0

BigQuery

  • Fix spelling. The name "Bigquery" is some methods are now properly spelled "BigQuery".
  • Job.getQueryResults now waits for the query to complete.
    • You no longer have to call Job.waitFor.
  • BigQuery.getQueryResults(JobId) is replaced.
    • Instead of bigquery.getQueryResults(id), use bigquery.getJob(id).getQueryResults().
  • BigQuery.query and Job.getQueryResults returns TableResult, not QueryResponse.
    • Instead of queryResponse.getResult().iterateAll(), use tableResult.iterateAll().
    • This change should make iterating large result sets significantly faster.
  • BigQuery.listTableData and Table.list returns TableResult instead of Page<FieldValueList>.
    • This remains source-compatible, since TableResult implements Page<FieldValueList>.
    • TableResult allows inserting Shema into each iterated row.
    • TableResult.getTotalRows() can be called to obtain the total number of rows across pages.
  • Various Job statistics are no longer available at QueryResponse.
    • Use BigQuery.getJob then Job.getStatistics instead.

v0.36.0

Pub/Sub

  • TopicName is renamed to ProjectTopicName, and now inherits from a new base class TopicName
  • TopicNameOneOf, ProjectNameType are deleted
    • TopicNameOneOf.parse(String): use TopicNames.parse(String) instead
    • To check the subtype of the new TopicName base class, use instanceof(...)
  • SubscriptionName is renamed to ProjectSubscriptionName
  • SnapshotName is renamed to ProjectSnapshotName
  • Resource name helper methods are removed from request classes:
    • setProjectWithProjectName(myProject): use setProject(myProject.toString()) instead
    • setNameWithTopicName(myTopic): use setName(myTopic.toString()) instead
    • setTopicWithTopicName(myTopic): use setTopic(myTopic.toString()) instead
    • setNameWithSubscriptionName(mySubscription): use setName(mySubscription.toString()) instead
    • setSubscriptionWithSubscriptionName(mySubscription): use setSubscription(mySubscription.toString()) instead
    • setNameWithSnapshotName(mySnapshot): use setName(mySnapshot.toString()) instead
    • setSnapshotWithSnapshotName(mySnapshot): use setSnapshot(mySnapshot.toString()) instead
    • topic.getNameAsTopicName(): use ProjectTopicName.parse(topic.getName())
    • subscription.getTopicAsTopicNameOneof(): use TopicNames.parse(subscription.getTopic())
    • subscription.getNameAsSubscriptionName(): use ProjectSubscriptionName.parse(subscription.getName())
    • snapshot.getNameAsSnapshotName(): use ProjectSnapshotName.parse(snapshot.getName())

v0.44.0

Pub/Sub

The default flow control settings for Subscriber is changed.

  • Previously it keeps combined size of outstanding messages below 20% of available memory. Now it keeps the number of outstanding messages less than or equal to 1000.
  • Previously it opens one stream per available CPU. Now it opens one regardless of number of CPUs.

Slow message consumers will likely see better load-balancing across machines. Because each machine pulls messages less eagerly, messages not yet pulled can be pulled by another machine.

Fast message consumers might see reduced performance. If desired, these settings can be adjusted back by Subscriber.Builder#setFlowControlSettings and Subscriber.Builder#setParallelPullCount.