Reply
Limit Breaker
Registered: 03/14/2007
Offline
18588 posts
 

Re: [INFO] PS4 Firmware Beta Phase

[ Edited ]
Jan 18, 2017

ValhallaOutcast wrote:

NatalyasRevenge wrote:
Idk i think whatever they are doing with the name is bigger then just masking it as a display namr they are actually going in & moving everything to a base id to free up your actual psn you use now according to the SDK update from awhile back.

Meaning that all your purchases saves etc will no longer be tied to your PSN ID freeing it up to be changed.

my only question is why would you even need a cosole update to chage your ID? Managing IDs are not dependant on a console, you can do it all without ever owning a console


When you update a database table to include new fields, you need to update every program or app that  references that data so that it reads/writes to all fields. If you don't there is a blank in that field, and it is a good way to mess up and corrupt things.

 

 Based on the SDK leak, the PS3 would go on still referencing the PSN ID as it always did, but I think that would defeat the purpose. So they would need to tie in firmware updates for all consoles to do it.

Contact PlayStation Support
Chat with a PlayStation Specialist 
Mon - Sat, 6:00AM - 10pm , Sunday 8am-8pm Pacific

Consumer Services and Technical Support____ 1-800-345-7669
Mon - Fri, 8:00AM - 8:00PM Pacific
Playstation Network Accounts and Billing Support____1-877-971-7669

Playstation Forums Support MVP. I do not work for Sony. Just a helpful gamer.
Message 41 of 425 (1,149 Views)
Lombax Warrior
Registered: 02/20/2015
Online
118 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 18, 2017
@vahallaoutcast im not sure exactly how they would do those going forward unless they can lock those systems into keeping your old PSN or if they would also update those im not sure
Message 42 of 425 (1,118 Views)
Reply
0 Likes
First Son
Registered: 12/12/2014
Offline
5 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 19, 2017
I hope this next update is for the PS4 Pro.
Message 43 of 425 (1,075 Views)
Reply
0 Likes
Hekseville Citizen
Registered: 03/23/2007
Offline
271 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 19, 2017

hope they add external hard drive support.

BF3 Stats
Message 44 of 425 (1,063 Views)
Reply
0 Likes
Fender Bender
Registered: 11/12/2012
Offline
3285 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 19, 2017

cee310 wrote:

hope they add external hard drive support.


facepalm-picard.jpg

Message 45 of 425 (1,055 Views)
Reply
0 Likes
Lombax Warrior
Registered: 03/20/2015
Offline
165 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 21, 2017

ValhallaOutcast wrote:

NatalyasRevenge wrote:
Idk i think whatever they are doing with the name is bigger then just masking it as a display namr they are actually going in & moving everything to a base id to free up your actual psn you use now according to the SDK update from awhile back.

Meaning that all your purchases saves etc will no longer be tied to your PSN ID freeing it up to be changed.

my only question is why would you even need a cosole update to chage your ID? Managing IDs are not dependant on a console, you can do it all without ever owning a console


A database of this sort requires that Sony has some mechanism of uniquely identifying you [0].  In a table of PSN users, this would be a primary key.  Other tables that need to have some sort of reference to a given user will have as a part of their record a copy of this primary key; holding another tables primary key as a way of referencing back to it is known as holding a foreign key.

 

Now say Sony has a table containing some basic user information.  It has primary keys such as "ValhallaOutcast", "NatalyasRevenge", and "YaztromoX", along with some other information such as our passwords, real names, etc.  It might look something like this (note that the primary key field is in bold):

 

PSN IDFirst NameLast NamePassword Hash
NatalyasRevengeNatalyaRevenge678aa789c8de
ValhallaOutcastValhallaOutcast93c2bf812ab7
YaztromoXTheDudec001d00d1111

 

(Of course, I don't know your real name, so I just reused your ID.  Likewise, the password hashes are just made up for the sake of example).

 

Sony also (in this example) has a table of games you can own.  We'll just use three as an example:

 

Game NameCurrent VersionRegion
Final Fantasy XV1.13NA
Guitar Hero Live1.7NA
The Last of Us2.1NA
Metal Gear Solid V1.95NA

 

(Again, versions are just made up for sake of example. In the real table, there would probably be a dozen or more fields to describe a single game)

 

So how do we know what games each person owns? That would require a third table, which maps the primary key from the PSN Users table to the Primary Key of the Game table, like so:

 

PSN IDGame Name
NatalyasRevengeThe Last of Us
NatalyasRevengeFinal Fantasy XV
NatalyasRevengeGuitar Hero Live
ValhallaOutcastThe Last of Us
ValhallaOutcastMetal Gear Solid V
YaztromoXThe Last of Us
YaztromoXFinal Fantasy XV
YaztromoXMetal Gear Solid V

 

Sony could have thousands of tables like this; tables to keep every chat message that goes through PSN, tables listing each and every trophy that has been earned, etc.

 

This is also where the problems come in. Say you are able to access Sony's database directly, and you change your name in the PSN Users table:

 

PSN IDFirst NameLast NamePassword Hash
FólkvangrDenizenValhallaOutcast93c2bf812ab7

 

And now you have a problem. Because all of the other tables still reference and map your data you by your old name, you've just lost all of your chats, trophies, and games. Now it is conceivably possible to find and update each and every foreign key relation to match your new username, however this introduces a lot of problems. What to do about billing tables, and in particular old bills from before you changed your name? What about mapping old mentions to you inside chat message tables to your new ID? What about applications that may have cached your user ID? Updating everything everywhere when the unique key that identifies you actually becomes very challenging; even in cases where you can do it, it often becomes computationally expensive. And as nearly anyone who has every actually done this on a massive commercial database can tell you, it's easy for things to slip through the cracks and have data loss when you try to change primary keys that have existed for a long time with a lot of data associated with them.

 

Now this is solvable, however it's generally easier to design-in in the first place rather than try to retrofit afterward. The solution is to assign each and every table entry a unique ID that is not tired to information that can change. Using the above example tables, we can "fix" the problems with using the PSN ID as a primary/foreign key relation by introducing a unique, fixed number for each user, and then using that as the unique identifier instead of the username:

 

Unique IDPSN IDFirst NameLast NamePassword Hash
543785789432NatalyasRevengeNatalyaRevenge678aa789c8de
784327954778ValhallaOutcastValhallaOutcast93c2bf812ab7
1010101010YaztromoXTheDudec001d00d1111

 

With that modification, we can now map users to games using this fixed unique ID number instead:

 

PSN IDGame Name
543785789432The Last of Us
543785789432Final Fantasy XV
543785789432Guitar Hero Live
784327954778The Last of Us
784327954778Metal Gear Solid V
1010101010The Last of Us
1010101010Final Fantasy XV
1010101010Metal Gear Solid V

 

That fixes the problem -- in fact, ideally you'd do this with every table that has uniquely identifiable information that may be referenced as a foreign key in other tables (so in the above example, you'd probably want to add a unique ID number to the Games table as well; then the User:Game mapping table would be nothing but ID mappings). With the above structure, you can now change identifying information such as your PSN ID in one place; the computer can retrieve it when it needs it for display, but otherwise use your unique numeric ID when it needs to reference you specifically.

 

The big problem with the above for a massive, established database is, of course, the need to add a new column to the Users table (which let's face it easily contains tens of millions of rows in this case), generate unique IDs for everyone, and then update all foreign keys in the entire database to use the new unique ID primary key instead of the PSN ID. All applications would also have to be changed to use this ID internally, but use the PSN ID attached to it for display (you would want someone to get a chat message from '784327954778', would you?). Queries would have to be updated to perform a JOIN between any table with a foreign key into the Users table in order to continue to return the PSN ID where expected. This is a massive change, and you can't do it overnight in a database that probably has terabytes of data in it, with tens of millions of individual records that are all cross-referenced using these IDs. It requires a ton of development, testing, and coordination between Sony, app and game developers.

 

So there you go. Prof. YaztromoX has just finished this lecture on Relational Database Key Basics 101. Questions?

 

TL;DR: It's seriously complicated!

 

Yaz

 


[0] -  FWIW, I have no idea what any of Sony's PSN backend data storage looks like.  But I have seen many commercial databases that have made this same mistake of trying to tie identifying information for a user as the primary key, only to be bit on the behind later because of it.  It happen frequently with websites that use your e-mail address as your unique key, forgetting that people can and do in fact change their e-mail adresses fro time to time!

Message 46 of 425 (995 Views)
MVP Support
Registered: 01/04/2016
Online
2446 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 22, 2017
@YaztromoX

Exactly. To me it sounds like Sony used our psn names as the primary key in their databases. It just makes sense as to why namechanges havent became a thing.

Having a database setup like that for so many years and then trying to change what it uses as the primary key leaves a lot of room for things to get broken. Ive got a bit of a knowlege when it comes to databases and know that it may be poasible to do but quite difficult and perhaps time consuming especially considering there are millions of users on psn which means millions of database tables that would need to be completely reworked.
United States and Canada

LIVECHAT

Phone: 1-800-345-7669 (Monday to Friday, 8am - 8pm PST)

Message 47 of 425 (929 Views)
Limit Breaker
Registered: 03/14/2007
Offline
18588 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 22, 2017

It has been long speculated by the regular of the forums that they indeed did key in on the PSN ID. We based most of this off reports of users whom had their PSN ID changed due to bans. It removes friends, trophies, game saves, etc.

 

 

I know japan has a display name, I'm sure what we will get is something like that.

Contact PlayStation Support
Chat with a PlayStation Specialist 
Mon - Sat, 6:00AM - 10pm , Sunday 8am-8pm Pacific

Consumer Services and Technical Support____ 1-800-345-7669
Mon - Fri, 8:00AM - 8:00PM Pacific
Playstation Network Accounts and Billing Support____1-877-971-7669

Playstation Forums Support MVP. I do not work for Sony. Just a helpful gamer.
Message 48 of 425 (917 Views)
Lombax Warrior
Registered: 03/20/2015
Offline
165 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 23, 2017

DGH_By_Bots wrote:
@YaztromoX

Exactly. To me it sounds like Sony used our psn names as the primary key in their databases. It just makes sense as to why namechanges havent became a thing.


I can only speculate how large their database(s) must be -- but I'm guessing they're going to be massive.  And a big part of the problem is you can't easily make a change like this on such a massive database (and all associated applications!) without introducing downtime.  You just can't make a change like this to a live database that (I'm guessing) experiences millions of transactions per second.  And PSN downtime -- even if scheduled -- is something I'd imaging Sony would prefer not to have.

 

I suspect the best thing they can do is to maintain the current PSN ID as the primary key, and introduce a new "Display Name" field that is initially identical to the PSN ID.  The new field would only require a uniqueness constraint, but could be changed because the unique key would still be the original (and not displayed) primary key field.  That would minimize the database changes to (presumably) one table.  It would however probably require at least two SQL commands, and it would also require modifications to the software of nearly everything that uses the PSN backend databases, including the PS3, PS4, and PS Vita system software, as well as nearly the entire playstation.com website (including these forums!) to use the new display name field.

 

For the benefit of other readers -- this is why you have people (such as myself) who are dedicated to Computer Science.  Things that sound trivial ("Let me change my name!") can turn out to be extraordinarily difficult (especially if said systems weren't designed for such a concept in the first place).  Please keep this in mind when you think you're asking for something simple!

 

Yaz.

 

Message 49 of 425 (890 Views)
MVP Support
Registered: 01/04/2016
Online
2446 posts
 

Re: [INFO] PS4 Firmware Beta Phase

Jan 23, 2017
@YaztromoX

Exactly. Well said.
United States and Canada

LIVECHAT

Phone: 1-800-345-7669 (Monday to Friday, 8am - 8pm PST)

Message 50 of 425 (859 Views)
Reply
0 Likes