SL project updates week 43/2: miscellaneous, group chat

Just Another Tequilla Sunrise, Isle of Love; Inara Pey, October 2014, on FlickrJust Another Tequilla Sunrise, Isle of Love, October 2014 (Flickr) – blog post

Server Deployments Week 43 – Recap

As always, please refer to the server deployment forum thread for the latest news and updates.

  • On Tuesday, October 21st, the Main channel was updated with the server maintenance release previously deployed to the LeTigre and Magnum RCs in week 42. This update includes a crash fix and improves the delivery pipeline for abuse reports
  • On Wednesday, October 22nd, the release candidate channels were updated as follows:
  • BlueSteel and Snack will remain on the CDN project, and were updated with the same server maintenance package being deployed to the Main channel
  • LeTigre and Magnum were both updated to the CDN for texture and mesh fetching.

Upcoming Deployments

There is a further server maintenance package being prepared for deployment. however, it is still undergoing testing, and it is not clear whether it will be ready for deployment on Wednesday.

CDN and the Future of Snack

With the CDN now supporting texture and mesh fetching across all of the primary RC channels, there is a chance it may be promoted to the Main channel in week 4, particularly given that, outside of CDN support, all the server channels are now in parity. However, the Lab is making no commitments to this, and is taking a “wait and see” approach on what may happen. In particular, the Ops team will be monitoring performance over the weekend, when SL usage is expected to be at its busiest since the RC-wide deployment of CDN support, to see how things hold up.

As it stands, there are an estimated 130 regions on the Snack RC. As these all came from the Main channel, they will likely be switched back to that channel once it has CDN support, and Snack will again be dissolved until it is once again required.

Group Chat

With the most recent changes to the back-end servers, Simon Linden is continuing to poke at the code to see what can be improved. He’s now looking at the code that routes the messages – where it goes to find where group members are on the grid in order to be able to deliver messages to them, with the aim of trying to improve things there.

At the moment, if you move between regions which active in a group chat, the first message to be sent to you after you move will be sent to the region where you were and generate a failure message which has to go back to the chat service, which they has to relocate you and then attempt a further delivery. It is hoped that this can be improved, and there was a brief test following the Server Beta User Group meeting on Thursday, October 23rd to this end, just to see how the code is performing.

It has been suggested that the Lab should bypass the region hosts altogether when handling group chat, and attempt to route it directly from the chat servers to the viewer. However, this would likely require some serious re-engineering; more to the point, it could introduce security vulnerabilities.

Other Items

Aditi L$ Balance

A question was asked on how account L$ balances are updated on Aditi. Maestro replied that account balances are checked nightly (SLT), and any falling below L$ 10K (because someone has been uploading mesh models for testing / viewing prior to paying to upload them on Agni, for example), they are automatically increased by L$5K. However, if someone resets their account password (which triggers a reset on Aditi), their L$ balance will change to match their L$ balance on Agni, although again, if this is below L$10K it should be topped-up but L$ 5K overnight.

SL project updates week 43/1: server, viewer, group chat

Asalia House (November 2013) - blog post
Asalia House (November 2013) – blog post

Server Deployments Week 43

As always, please refer to the server deployment forum thread for the latest news and updates.

Main (SLS) Channel

On Tuesday, October 21st, the Main channel was updated with the server maintenance release previously deployed to the LeTigre and Magnum RCs in week 42. This update includes a crash fix and improves the delivery pipeline for abuse reports.

RC Channels

On Wednesday, October 22nd, the release candidate channels should be updated as follows:

  • BlueSteel and Snack will remain on the CDN project, but should also be updated with the same server maintenance package being deployed to the Main channel
  • LeTigre and Magnum should both be updated to the CDN for texture and mesh fetching.

SL Viewer

On Wednesday, October 15th, the Lab issued a Grid Status update on potential problems accessing external websites using the viewer’s internal browser.  The notice was issued as a result of the Padding Oracle On Downgraded Legacy Encryption (Poodle) vulnerability reported by Google.

At the time the notice was released, the Lab indicated they were working to fix the issue (via the removal of SSL v3.0 support within the viewer’s browser). This work was completed at the end of week 42, and resulted in the release of the Browser Fix RC viewer, version 3.7.18.295539.

On Monday, October 20th, the Browser Fix viewer was promoted to the de facto release viewer.  Further information on it and the POODLE vulnerability can be found in a separate article in this blog.

MAC Yosemite Issues

There have been some mixed results for those Mac users updating to the 10.10 Yosemite version of OS X, which reached a consumer release status on October 16th.

While most of those updating have found it relatively smooth, there has been a report of keyboard shortcuts borking, although there is a workaround should others encounter the same problem – see here.

A potentially more widespread issue people may encounter is that with Yosemite, Apple have apparently reverted to older nVidia drivers (as reported by Cinder Roxley at the Open-source Developer’s meeting on Monday, October 20th). One JIRA on the matter has already been filed (see BUG-7575), although if Apple have chosen to roll back some / all of their default drivers, there’s not a lot the Lab can do about matters. Cinder also reports that Yosemite makes greater use of OpenGL, which she indicates can tax GPUs further.

CDN

Following the scheduled Wednesday deployment, all of the RCs should be using the CDN. This represents around 30% of the total grid, possibly a little more, given the existence of Snack. The BlueSteel deployment does not seem to have resulted in the kind of performance issues experienced during the expansion of Snack to 250 regions, suggesting the latter problems were most probably down to overloading the sim hosts with too many high volume (in terms of avatar numbers) regions. If all goes well in the coming week, it is likely that the Main channel will gain CDN support in week 44.

Group Chat

“Today we also finished an update to the group chat servers,” Simon Linden announced at the Simulator User Group meeting on Tuesday, October 21st. He continued:

Many of you have helped us test that at Thursday’s beta user group, and that’s now on the newest version. Those are back-end servers … when you send something to group chat, it goes from the viewer to the region you’re on, then to the (new) back-end chat servers, and from there it’s distributed to everyone in the group.

While no promises are being made as to the overall improvement – or how visible improvements may be to users, Simon went on to note, “I know [from] looking at the metrics and data we can gather … the systems are running much nicer than before.”

As well as working on the update issues (see my previous group chat updates), the Lab has been brainstorming ideas on how groups might be configured differently. There are a lot of groups that have very heavy chat usage, and others where chat is actively discouraged in favour of outgoing notices; however the latter are handled exactly the same as those where chatting goes on, generating updates as people log-in and out, etc., even though these aren’t actually required. Exactly what might be done is unclear at this time, but it would appear ideas are being put forward and discussed.

 

SL project updates week 42/3: server, HTTP, CDN, issues

No Signal, MIC Imagin@rium, May 2014 - blog post
No Signal, MIC Imagin@rium, May 2014 – blog post

Unless indicated otherwise, the notes below are taken from the Server Beta meeting held on Thursday October 16th, 2014. The transcript is available here, and the support agenda notes here.

Server Deployments Week 42 – Recap

As always, please refer to the server deployment thread for updates and the latest information.

  • There was no code promotion to the Main (SLS) channel on Tuesday, October 14th – this follows from there having been no deployments to the primary RC channels in week 41
  • On Wednesday, October 15th, the primary RC channels were updated as follows:
    • Bluesteel received the CDN texture & mesh fetching capabilities – release notes
    •   LeTigre and Magnum both received a new server maintenance package,  which includes a crash fix and improves the delivery pipeline for abuse reports.

SL Viewer

HTTP Pipelining RC

On Wednesday October 15th, the Lab released the HTTP Pipelining RC viewer. Version 3.7.18.295372 brings with it:

  • Pipelined HTTP Operations for Mesh and Texture Fetches: this feature allows the viewer to issue multiple asset fetches on a connection without waiting for responses to earlier requests. This reduces the impact of a user’s physical location on scene loading and generally improves the experience for everyone
  • Inventory Fetch Improvements: Inventory folder and item fetches are getting some of the same treatment that textures and meshes did in previous releases. Initial inventory load should be quicker and more robust for all users.

A blog post from Monty Linden accompanies the release, which provides further information on the HTTP project alongside of the viewer release notes.

A blog post from monty Linden arrived with the Pipelining RC viewer, and explain how the viewer (and CDN) should generate further improvements in texture and mesh fetching operations
A blog post from Monty Linden arrived with the Pipelining RC viewer, and explain how the viewer (and CDN) should generate further improvements in texture and mesh fetching operations

Maintenance RC Viewer Removal

The latest Maintenance RC viewer,  version 3.7.17.294943,  has been withdrawn from the release channel due to significant issues and a range of attachment bugs which affect it (see my week 41 update from the TPV developer meeting, under “AIS v3 Issues”).

CDN

As noted above, use of the CDN service for texture and mesh data was extended to the BlueSteel RC in week 42, and there is some anticipation within LL that it could be deployed to all three of the primary RCs sooner rather than later.

An issue has been noted on some regions running on the Snack RC where people are seeing very slow parcel information updates (e.g. the name of the parcel taking up to a full minute to appear in the status bar, for music stream changes to occur, etc.).

The thinking from the Lab is that these problems are a result of the Snack sim hosts receiving a top-heavy load of regions with high traffic counts, resulting in possible resource contentions with certain data lookups as a result – contentions which may have actually brought the regions down had it not been for the CDN, as Maestro Linden commented:

In the cases I’ve seen so far, the slowness was due to a rapid rate of requests from all the users logged into the regions.  If the sim were serving all the texture and mesh requests as it traditionally would, the regions would have ‘fallen over’ before becoming that populated.

So this would seem to be an unintentional cloud with its own silver(ish) lining (at least the regions didn’t fall over). Nevertheless, the issue isn’t welcome. Given that BlueSteel has a more even distribution of regions across sim hosts (e.g. the servers are not all packed to the gills with high volume traffic regions),  It is hoped that the issue will not exhibit itself there. Checks (either by the Lab or residents or both) are likely to be carried out on busy regions on the RC to see if the problem does raise its head, which might indicate some further investigations might be required.

Assuming all goes well with the BlueSteel deployment, it is thought that CDN support will likely extended to the remaining RCs sooner rather than later. In the meantime, for those interested in seeing how use of the CDN works for them, a list of regions by RC can be obtained via Tyche Shepherd’s Grid Survey website, allowing BlueSteel regions to be easily located. Just click the RC Server Regions button (note the list will require a little cleaning-up, post download).

Continue reading “SL project updates week 42/3: server, HTTP, CDN, issues” →

SL project updates week 42/2: Monty’s HTTP update and the HTTP pipelining viewer

On Wednesday October 15th, Monty Linden blogged about his HTTP work and the CDN, using the rather unusual title, The Sky Over Berlin (and Elsewhere). It’s a great piece of reading, although I can’t help thinking that Monty’s sign-off at this end of it would have perhaps suited the subject matter far better: nous sommes embarqués – “adventure is ours for the taking”!

The first part of the post recaps on Monty’s initial work in improving Second Life via the HTTP project. This started as far back as mid-2012, with the first pass focused on improving the   mechanism by which textures could be obtained for rendering via HTTP, which entered widespread use around  November 2012, with the release of the 3.4.3267135 viewer.

This work was followed by Monty labouring to improve mesh fetching as well, and to improve the overall reliability of HTTP, which I blogged about in March 2013.

At the start of 2014, Monty blogged on his work up to that point, and looked ahead to future activities. As a part of the post, he included a graph showing how the work carried out up to that point improved texture and mesh request handling.

The HTTP project has improved "under the hood" performance in SL in a number of areas, starting with texture fetching, anf through greater robustness of connections through the use of "keepalives"
In January 2014, Monty blogged about his HTTP work, and indicated how the work had raised the request rate ceiling within the viewer for texture and mesh data from A up to the blue line of C

In his latest post, Monty picks-up where his January post left off, demonstrating how more recent improvements are starting to improve things further – notably through the use of HTTP pipelining (the release candidate viewer for which has now been issued – see below), and the ongoing deployment of the Content Delivery Network service for texture and mesh data delivery.

In his latest blog post, Monty indicates how both HTTP pipelining and the use of the Highwinds CDN service should further help improve data transmissions and  performance
In his latest blog post, Monty indicates how both HTTP pipelining (the “post 3.7.16” markers, denoting the introduction of the pipelining viewer) and the use of the Highwinds CDN service (denoted by the DRTSIM-258 markers) should further help improve data transmissions and performance

All told, Monty’s work has been a remarkable undertaking which benefits Second Life enormously, and helps to set the path towards possible further improvements in the future. As such, he really is one of the heroes of Second Life and the Lab.

HTTP Pipelining RC Viewer

The HTTP Pipelining viewer was issued as a release candidate viewer shortly after Monty’s post went to press.

Version 3.7.18.295372 enables the viewer to issue multiple asset fetches on a connection without waiting for responses to earlier requests. This should help inprove things like initial scene loading quite aside from any additional benefits gained through the CDN deployment work. In addition, the viewer includes improvements to inventory fetching, as Monty noted in his blog post:

The HTTP Project has focused on textures and meshes. But the inventory system, which maintains item ownership, is often described as… sluggish. So as an exercise in expanding the use of the new HTTP library, the pipelining viewer was modified to use it for inventory fetches. As with textures and meshes before, inventory is now fetching in the ‘C’ region of its specific performance graph. The difference can be surprising.

Having had the opportunity to test the pipelining viewer somewhat prior to its appearance as an RC, I can attest to this. While I keep my “active” inventory to a modest size (around 10,000 items unpacked, the rest boxed until needed), I found that an inventory download with a cleared inventory cache (nothing saved on my computer) averaged 9-10 seconds using the pipelining viewer, compared with an average of 2 minutes 50 seconds to 3 minutes with the current release viewer (3.7.17.294959). Whirly Fizzle, using a 105K inventory had even more impressive results: with a cleared cache, her inventory loaded in under 3 minutes on the pipelining viewer, compared to 16-18 minutes on the release viewer.

The release notes for the viewer contain additional information about the updates, again written by Monty, and these make worthwhile reading alongside of his blog post.

Related Links

SL project updates 42/1: server, viewer, viewer-driven Marketplace

Square Pegs in Round Holes, Kashmir Dreams; Inara Pey, September 2014, on FlickrSquare Pegs in Round Holes, Kashmir Dreams (Flickr) – blog post

Server Deployments Week 42

As always, please refer to the server deployment thread for updates and the latest information.

  • There was no code promotion to the Main (SLS) channel on Tuesday, October 14th – this follows from there having been no deployments to the primary RC channels in week 41
  • On Wednesday, October 15th, the primary RC channels should be updated as follows:
    • Bluesteel should receive the CDN texture & mesh fetching capabilities – release notes
    •   LeTigre and Magnum should both receive a new server maintenance package,  which includes a crash fix and improves the delivery pipeline for abuse reports.

SL Viewer

As noted in my report here, Monday October 13th saw the release of the latest version of the Oculus Rift project viewer. Version 3.7.18.295296 includes support for the Oculus DK2.

Viewer-managed Marketplace (VMM)

Baker Linden sports a new look, but keeps the hair, shades and bling  - as al lhamsters should!
Baker Linden sports a new look, but keeps the hair, shades and bling – as all hamsters should!

Baker Linden, who has been carrying out a lot of the back-end work on support of the forthcoming viewer-managed Marketplace, was on-hand that the Simulator User Group meeting on Tuesday October 14th to talk a little more about the project.

He reconfirmed that the new capabilities, which will allow merchants to carry out a number of Marketplace-specific tasks from within the viewer (create new listings with stock, Associate inventory to an existing listing, remove items from a listing, unlist goods entirely) will commence testing on Aditi in November, together with a new project viewer. This testing is liable to run well into the first quarter of 2015, and will involve both Marketplace merchants and TPV developers.

Various additional safeguards are being built into the updated delivery mechanism, both within the Marketplace web interface (which is the responsibility of one of the Lab’s web developers) and the back-end of things. For example, if someone leaves an item in their shopping cart and either the price for the item changes or it is unlisted in the intervening period prior to them continuing to the checkout, they will receive a notification of the change when they do so.

Baker himself is working to eliminate issues with No Copy items, such as preventing a race condition in which a region restart can be exploited to obtain more than one version of a No Copy item. He also indicated that when a No copy item runs out of stock, the listing for it will no longer be delivered to users’ browsers by the Marketplace (presumably until the merchant “restocks” the item) and the listing may even be deactivated.

He also provided more information on the ability to link more than one items to a Marketplace listing, stating:

For merchants, you will be able to choose which “version” is listed so you can have a special holiday-skinned object, and then simply right-click, say “use this version” and then it will start selling the new holiday version of your object!  When you’re done selling the holiday themed object, just switch back to the original version.

However, a problem here is that some people tend to let items accumulate in their Marketplace shopping cart for a period of time – perhaps a week or so – before proceeding to the checkout. It is therefore possible that if they add a “special” version of an item to their cart and leave it there for a while, the merchant may subsequently swap the listing back to deliver the “normal” version of the item – which the buyer will receive when then do eventually proceed to checkout and pay for the items in their shopping cart, leading to complaints and upset. This is something the Lab hadn’t actively considered, so Baker has taken the issue back to the office where it will be given further thought.

The discussion of the new Marketplace capabilities lead to a number of suggestions being put forward, some of which may be on their way to being filed as JIRA feature requests:

  • The ability to mark stores as favourites in the Marketplace
  • The ability to obtain a demo version of an item directly from the item’s listing page
  • The ability to associate different coloured versions of the same product in a single listing
  • The ability to view an item’s contents like the contents of in-world objects can be inspected.

A request was also made for some kind of in-world meeting to discuss the Marketplace. This is not the first time such a request has been made. However, the last time the Commerce Team directly responded to such requests, it was with a refusal to hold in-world meetings. However, there was a lot going on with the Marketplace at that time, which was causing a lot of angst; it’s fair to say a lot has changed since then. Certainly, with an extended period of testing for the new viewer-driven capabilities about to commence, which will involve both merchants and TPV developers, it would seem that putting a mechanism in place by which the Lab, merchants and developers can discuss things would benefit the project tremendously.

SL project updates week 41/3: TPV Developer meeting

The following notes are drawn from the TPV Developer meeting held on Friday October 10th, and shown in the video above. Time stamps, where relevant, have been included for ease of reference to the video. Note that items are listed according to subject matter, rather than chronologically, so time stamps may appear out-of-sequence in places. My thanks as always to North for the recording.

SL Viewer

HTTP Pipeline Viewer

[0:26:35] As noted in part 2 of this week’s report, the HTTP pipelining viewer was looking close to being ready for deployment as an RC viewer, possibly in the next week. However, it hit a final QA snag, and in Oz’s words, “Monty is busily correcting the problem and getting it back in the queue.” Or as Monty put it in chat “:(“. Apparently a workaround for a CURL bug “tends to disable pipelining”.

Benchmark and Experience Tools Viewers

[0:27:20] It is hoped that these two project viewers will be updating and moving into the viewer release channel as release candidates “pretty soon”.

Viewer Build Tool Chain

[0:41:51] The tools upgrade project for building the viewer has been subject to a few delays. Currently, the Lab has just about finished putting together all the build prerequisites for building the Mac version of the viewer directly on OS X 10.9, and are about to commence test builds of the viewer using the new tool chain. This has also led to some progress being made on updating the Linux build process as well. The windows environment will require further work, so it will be a little longer before things are fully in place.

Group Chat

[0:28:58] Again, as noted in part 2 of this week’s report, the latest updates for group chat are being deployed to various back-end chat servers by the Lab, and may be deployed to all of the chat servers in the next week.

While investigating group chat, the Lab has noticed that in general it is “unbelievably spikey”, with chat sessions having peaks of really good performance followed by troughs of really bad performance regardless as to whether the groups are regarded as being “good” or “bad” in handling group chat. There is no real pattern to these peaks and troughs, other than the larger the group, the more it seems to swing between the two extremes, and nothing to correlate them with anything in particular beyond the bad times occurring when a lot of people in a group are online.

Z-offet height Adjustment

[0:31:52] Work is continuing on the z-offset height proposal, which Vir Linden has been engaged upon. However, it appears the Lab has encountered some issues which have made it “a little more complicated” than had initially be thought. hopefully, these will be overcome, and they won’t bring the work to a halt.

CDN

[0:32:28] As noted in part 2 of this week’s report the number of regions on Snack and utilising  the Highwinds CDN for mesh and texture data servicing had reached around the 270 mark, but has since come down a little as a result of the Lab overloading the Snack sim hosts with regions running high volumes of users.

Metrics gathered by the Lab have been positive, and even though the Snack sim hosts were initially overloaded, the Lab feel they performed significantly better thanks to texture and mesh fetching being off-loaded to the CDN than would have been the case had the “old” method of texture / mesh fetching still been in use.

One aspect of the move to using the CDN is that until now, the sim host Apache service was being used for texture and mesh data handling and “lots” of other things which are timing critical to operations such as region crossings. With the move to the CDN, much (if not all) of the texture and mesh data handling is removed from the Apache service, making it easier for it to better handle time-critical activities.

If all goes according to plan, the CDN support will be expanded to the BlueSteel release candidate channel in week 42 (commencing Monday October 13th). This will allow the Lab to gain data on performance using the CDN support which can be directly compared with historical data available for region / sim host performance in BlueSteel. Those regions already running on Snack will continue to do so alongside of BlueSteel, so that around 5% of the main grid will be using the CDN service.

Continue reading “SL project updates week 41/3: TPV Developer meeting” →