-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate Deprecating API Type parameter in Source Salesforce #8419
Comments
@augan-rymkhan actually this is one of the very few cases where it might not an implementation detail. Salesforce actually has two different account types: sandbox and production. They operate in different domains (my.salesfroce.com and test.salesforce.com). If you can find a way to identify reliably if the user should be using a sandbox account, great, let's do it. But I suspect it may be difficult especially with oauth |
@augan-rymkhan I just realized why you created this issue, because of my comment on the other PR. That comment was directed at the "API Type" parameter not the sandbox, apologies for putting it on the wrong line. |
@sherifnada no worry, I have updated it. |
Scoping reportPros and cons of BULK API version: Pros:
Cons:
The solution can be using BULK API by default where it's possible and without data loss. If not fall back to REST version. |
Some questions:
|
For more info you can check this. Address and Geolocation are compound data fields.
The first test start date = "2020-06-01T00:00:00Z" The second test start date = "2021-11-01T00:00:00Z" REST - 1 min 22s The third test start date = "2021-05-01T00:00:00Z" REST - 3 min 30s BULK api consists of the following steps:
In the tests above BULK API is slower because, we wait for the streams which has not many records or even doesn't contain any records. If there are a lot of data in the streams, REST API might face rate limit issue. In that case, BULK api could be preferable. If a user does not reach rate limit, REST API is a good choice due to its better performance. |
@misteryeo do you feel comfortable making the call here? |
@augan-rymkhan can you do one more test with very high volume of data? I suspect that for a sufficiently high volume of data in a single stream, BULK is faster than REST. It may be useful to know what that is. My guess is we may want to follow the strategy of: for the initial sync, always use bulk. For the incremental syncs, use REST. Just a guess though. |
There was an issue with pagination in REST API version. It reads only 1000 records from some streams. I have fixed it locally, then ran the test. REST API version is executed in 14 s. Read 10101 records from Note stream. 10k records is not enough to compare them. But we reached the limit. Is it possible to increase the storage limit? |
@augan-rymkhan what storage limit are you referring to? is it on salesforce side? feel free to increase it as needed. |
@sherifnada |
@augan-rymkhan feel free to use the connectors credit card to purchase more quota, find it in lastpass |
also @augan-rymkhan I think I don't follow why we need to increase the storage limit. Didn't we already write 1 million records which we read via the batch API? why do we need to store things separately for the REST API? |
@sherifnada I don't think we have 1 million records for one stream. The idea was to import more rows for one stream, then compare performance BULK vs REST. Not for only REST API. |
sorry I misread your earlier message about 10k records as 10M -- nvm me |
@sherifnada I have submitted request to join Partner program, because it allows us to use Partner Developer Edition. Developer Edition (our current account) Partner Developer Edition For more info go here. A Partner Developer Edition is a licensed version of the free Developer Edition that includes more storage, features, and licenses. Partner Developer Editions are free to enrolled Salesforce partners. For more |
Enviroment
Current Behavior
Tell us what happens.
Expected Behavior
Deprecate "API Type" parameter in Source Salesforce. This is an implementation detail that we should remove eventually.
Acceptance Criteria
The output of this issue should be a proposal/document describing whether it is possible to deprecate this option, and what are the tradeoffs when doing so.
The text was updated successfully, but these errors were encountered: