The Salesforce Bulk API – Maximizing Parallelism and Throughput Performance When Integrating or Loading Large Data Volumes

One of the most important data loading and integration best practices is simple: When you run a Bulk API job, processing more of its batches in parallel means giving that job a higher degree of parallelism, which in turn gives your run better throughput. But what is a good degree of parallelism, and how can you architect a solution that maximizes the throughput that parallelism gives you? Continue reading

Managing Lookup Skew in Salesforce to Avoid Record Lock Exceptions

If you regularly perform Salesforce implementations with objects that store a lot of records, you probably already know about the strategies that you can use to appropriate manage and distribute your data. Some of the more obvious strategies include using indexes, skinny tables, archival strategies, and even divisions.

However, even if you choose the most appropriate strategy or strategies, you might miss a lesser-known “silent killer” within your architecture: lookup skew.

Read this blog post to learn both how lookup skew affects objects with large volumes of data and what you can do now to minimize its effects. Continue reading

Salesforce Territory Management and Programmatic Sharing

Did you know that just about all standard and custom objects can be shared to a territory? But what happens when you need to share an object record that is not included in the list of objects assigned by the Territory Management assignment rules? In this blog post, you’ll learn how to use manual territory access grants to share just about any standard and custom object in Salesforce to a territory. In addition, you’ll learn how that access extends through the territory and role hierarchies. Continue reading

Deciding on the Right Territory Management Solution for Your Organization

Learn more about the Salesforce Territory Management feature–and how it might meet your organization’s hierarchy- and territory management-related needs–by reading the newest Technical Enablement white paper: Territory Management Decision Guide. Continue reading

Salesforce Group Membership Sharing for Peak Performance

Salesforce Group Membership Sharing for Peak Performance

Did you know that the Salesforce group membership architecture can help improve the performance of your app? Salesforce engineered its group architecture to enhance the performance of several of its key internal sharing features. Read this blog post to learn why and when you should leverage the Salesforce group architecture as a performance tool, with links to additional information about Salesforce groups and sharing performance. Continue reading

“Group membership operation already in progress” – Managing Group Membership Locks for Success

Salesforce uses a central Group object to manage visibility related to the Role Hierarchy, Territory Hierarchy, Public Groups and Queues.  When administrative changes occur in these areas a group membership lock is taken to ensure data integrity is maintained while complex sharing calculations are completed.  The following activities take out group membership locks for the duration of their transaction:

  • Role creation
  • Role deletion
  • Moving a role in the hierarchy
  • Adding a user to a territory
  • Removing a user from a territory
  • Moving a territory in the hierarchy
  • Territory deletion
  • Territory creation

Architect Salesforce Record Ownership Skew for Peak Performance in Large Data Volume Environments

Salesforce customers who manage large data volume in their orgs must architect record ownership carefully to ensure peak performance.  When you have a large number of records owned by a single user in Salesforce, we call that an “ownership skew”.  There are many cases which lend themselves well to this type of architecture.  While any object can have an “ownership skew”, the most common cases involve Contacts without the concept of an owner, Accounts that are worked by a team without the concept of an owner, and unassigned Cases or Leads.  Since every record is required to have an owner… Continue reading