DataSave+ - Discontinued look after v2

I clearly understand UpdateAsync given that I know that already. A set request is only made IF you don’t return “nil” on an UpdateAsync. And if the set request is not made for whatever reason, it won’t do a set request. UpdateAsync is just a get/set combo, with an extra queue system internally. (Not that important but yes).

That’s throttling. It’s just internal throttling.

Well if is, profile service should probably change that.

Even then, you were critizing my retry system, I’m trying to make datastore errors NOT happen. Like I said only write requests take 6 seconds to reload. And only so if they’re obviously done sucessfully. By waiting 6 seconds I’m doing useless throttling.

When I looked at profile service, it seemed to just consider data corruption when there is some partition of your data missing, like global updates, or metatags. And if your data isn’t a table. When “data corruption” happens, it will just reset the values to the template.

Another thing, I shouldn’t be sharing this, maybe I can, I think I saw it in the road map, but:

In anyway, per key throttling is planned to be removed as stated in the internal DataStore 1.1 beta post.

What? That isn’t internally throttling, that is just date handling. Learn the meaning of throttling.

That is my point, you are returning a truthy value which is saved and thus, you are throttling those requests.

??? HOW, if I saved it sucessfully it won’t retry, therefore it won’t throttle further. It DOESN’T retry when it was sucessfully saved.

And even then, a small error is usually a 1 in a 1000 case for most cases. Of course, unless datastores are down.

I’m comparing this to DataStore2, and they’re relatively the same, even going as far to listing what games currently use the system. I’m sort of confused on why this was made when a solution for this was already constructed? Both use berezaa’s method, and to be honest with you, making a different way to upload the datastore data is essentially the exact same as DS2.

Only thing I might be seeing different here is ProfileService but that’s just someone elses written API, and not an official ROBLOX thing AFAIK.

edit I know DS2 is not official, but it heavily relies on just Roblox Datastores alone

1 Like

It is not built with profile service. It has session locking but it doesn’t mean it’s profile service.

This also does, I don’t know what you mean?

It has profile service included no? I still don’t get why this is any different

Oh wait… The thing isn’t built off profile service, it just uses ProfileService to sesson lock things? This just tells me it’s Datastore2, but with an extra feature they were probably already thinking of implementing.

I can see how many requests I made because I use the berezaa method, therefore I can list the versions. I have over 385 versions and never got one error. When I did it was in another game. And like I said, it doesn’t not throttle if it errored. Or if you return nil in an UpdateAsync call.

Gurl, profile service is a MODULE that does session locking, it’s not a separate thing. It just helps you mess with datastores without worrying about multi server editing.

DataStore+ can use the berezaa method behind the blinds. But mostly it will use a normal version and just keep backups. DataSave+ is just built on that and utilizes session locking.

Looks like I phrased that wrong, I’m not saying that it is a Datastore Saving thing, I was just stating that it’s sort of like Datastore2, only with an extra feature included. Unless the goal of this entire module is to not save data but pretty sure that’d defeat the purpose of the title.

also I’m a guy thank you

1 Like

I’m- what? That’s why there’s a retry system. I don’t know why you’re trying to bring that up, since I ready told you that it won’t throttle if it ends up not saving anything, either by error or choice.

Also calling it “useless” kind of unnecessary.

It doesn’t necessarily has to have multiple features to be realible.

1 Like

I highly encourage you to read more on data stores and error handling, your knowledge seems limited on what you want to achieve.

To an super experienced developer, this module is just useless and doesn’t provide any useful functionality.

I don’t think I mentioned reliability anywhere? This module IS reliable, I just don’t see why this type of module was made when we already got one that works just fine. That’s all.

Oh, well, I never saw a session locking solution that keeps backups so I decided to make this.

1 Like

That sounds perfectly reasonable! Personally if I were to make a module that everyone can use, I would just go to the page that they open sourced the module, and post my edit there. That’s just me though. Keep up the good work!

Yes I too would rewrite previously made datastore modules just because

That’s not really possible friend. I remade the entire thing. this is written top-to-bottom, there’s no code from ANYONE else. Only some of other people’s ideas.

True, it’s good for experience.

1 Like

The point of my reply was to state that you could contribute to an already existing solution by recommending that they add the extra stuff that was found useful, so it can be put to good use, and you’d be credited for it. It would save you a lot more time than posting something that already is posted and used by tons.

2 Likes

Updated to 1.2.0, if you’re using it, please update your copy.

If you’re using it, follow this thread.

Updated to 1.5.0, if you’re using it, please update your copy.

Update Log:

  • Session-locking improved, by detecting if there’s other servers are saving to the same key!

  • No longer using newproxy() on profile data and profile stores anymore, I was dumb I thought tables got cloned :sweat_smile:

  • Better saving by cloning the data before saving; Critical!

  • Optimization; yay!

  • Bug fixes

  • New profile function, :CopyData() will get you a deep COPY of the data stored. Changing anything on the copy won’t replicate to the profile data. It is used internally for saving data. You can set profile.Data now too.

If you’re using it, follow this thread.