Backblaze B2 Class C Transactions

For some reason, with B2 cloud storage, I’m getting tens of thousands of Class C transactions which is very abnormal. Any way I can avoid these?

According to backblaze, these are “sync” transactions.

1 Like

Weird, I don’t think I’ve ever seen more than 100 in a day in my B2 account. What’s the total size of your B2 backup data set?

For anyone who’s curious, according to the B2 documentation, Class C transactions are any of these:
image

I would think it is b2_list_file_versions, which is invoked to get the list of files.
The implementation uses a page size of 200, so maybe you have a lot of files in the bucket?

maybe you have a lot of files in the bucket?

Good point… @tekkie79, what’s your backup volume size set to?

@tekkie79, did this solve your issue?

Does this mean that B2 users need to change something in their duplicati setup?

At least in the free plan, B2 limits the number of Class C transactions to 2500 per day.

I can see that Duplicacy uses the max (1000 files) pr. request.
I can easily change Duplicati to do the same if this benefits anyone.

I have 5 different devices backing up to this location, but it does appear that every time duplicati runs it does list all of the files before executing the backup. This has led to some high charges. Rather than work through the code and figure out how to stop this, I tested out CloudBerry which can get the same backup accomplished without all of the queries.

Thank you for your support.

It’s free in the paid plan too - I see the exact same text as in your screenshot. And with 5 computers backing up to one B2 account, I’ve never seen it pass more than maybe 5% of the daily free transactions (and I check a lot). So I have no idea how /u/tekkie79 is incurring charges from this.

1 Like

Obviously, I was thinking maybe there will be more free transactions in the paid plan…

1 Like

To help avoid unexpected costs I wonder if we should consider some sort of functionality to alert and/or pause when certain transaction level counts have been reached within a ceratin time period. I’m assuming this would be transactions initiated by Duplicati and not a total cloud provider count (unless some providers offer those somehow).

Ah, yeah it’s the same. An easy way to think of it is, the only difference with a paid plan is that you start paying for the same features once you exceed the “free” thresholds, for anything - of course most of the time this is just storage space per day. I’ve paid 1 cent a few times for exceeing the free daily download bandwidth, fwiw.

Here are some more detail on this, in case anyone is wondering. When you enter your credit card details in order to get more storage, it takes away all limitations (caps) from your account, but they will charge you. The easiest way to find out how much is by manually adding a cap. For example, if you add a daily cap of 10 cents for Class C transactions, you get 27,500 of those. 2500 of those are free, so that means 25000 Class C transactions cost 0.1 USD

Class B transactions are much cheaper:

1 Like

Also for anyone who didn’t notice, the “caps” page also tells you how many such transactions you’ve used so far that day. IE where it says “Today: $0.00 (41)”, that means you’ve used 41 Class C transactions so far today.

(You don’t need to set up a “cap” to see these numbers, they just show up - but caps are useful if you’re worried about exceeding certain parameters and/or want to get notifications when you’ve exceeded a set number in a day)

HI,

I recently got hung up on C transactions with B2 as well and particularly the costs associated. However, they are actually quite inexpensive. Here is a real world example:

I estimated that my first full backup will consume 192,000 class C transactions. If you do the math (C trans cost: $.004 for 1,000 calls) and ignore the fact that you get 2,500 free every day. (This is unrealistic since the transfer will span multiple days, but, hey, I am modeling worst case here.) My total added cost would be 192,000/1000*.004 or $.768.

Finally also remember that this cost will ideally only happen once during the first full and that future backups will consume very little.

As a result of all this, I am not so worried about this cost…

Out of curiosity, how do you reach this number? I did my initial full backup of ~900GB on my main PC in smaller chunks, and was watching my B2 limits with every step, and I estimate that I never used any more than 5% of my free daily Class C transactions on any given day. I don’t see how anyone is exceeding these on any single day via any routine duplicati use case.

Hi,

So I keep doing full backups as tests. Yesterday, I wiped the full and performed the full and then checked the C usage both before and after. I came up with about 800 C transactions on my 2.5GB data set. All that said, this was generated by Duplicacy. I will be testing the same with Duplicati.

The larger point for me, is that actual C transaction costs are actually quite low. In fact they are so low that they are not worth worrying about. If CI usage of C is even lower then it makes the costs even less meaningful!

FWIW since mid September I have backed up roughly 50K files totaling over 36 GB (translating to about 15 GB compressed) to B2 in one go (might have spanned two days in their calculations though) at an average of probably 15mbit/s as well as doing various rclone transfers from Onedrive (roughly 15K files totaling 60GB) via the cheapest scaleway instance (so was pushing about 120mbit/s) and daily backups and never once was charged for B or C class transactions.

If this is a real worry, I would look into wasabi´s pricing but them being much newer, nobody has much data on reliability (and frankly I think paying for 1TB when you need hundred GB is a bit of a rough deal).

2 Likes

Reduce the polling interval, it’s on 60 seconds by default. I increased it to 1800s.

See Why am I Reaching Class C Transaction Caps with Synology? – Help Desk

1 Like

Handy suggestion (and informative link), @reto - thanks!