Commit Graph

186 Commits

Author SHA1 Message Date
Shannon
3374f9e023 Ensures that the batched distributed calls doesn't cache refresh the server executing the distributed calls since tht will already be done locally. 2014-08-05 10:32:07 -06:00
Shannon
7261162d8a Fixes some of U4-2633 Bundle all cache refresher transmissions into a single call per request for much better performance. See last note on issue. 2014-08-04 17:50:19 -06:00
Shannon
5011eee037 fixes merge issue 2014-06-25 11:00:53 +10:00
Shannon
2ccec3be33 Merge remote-tracking branch 'origin/6.2.1' into 7.1.5
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web/LegacyScheduledTasks.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/WebBootManager.cs
	src/Umbraco.Web/umbraco.presentation/publishingService.cs
2014-06-23 15:08:04 +10:00
Shannon
9158ea1ace fixes url returned in GetCurrentServerUmbracoBaseUrl 2014-06-20 14:45:45 +10:00
Shannon
e8f7f77bb6 Fixes: U4-581 Automatic publishing not working in load balanced setup - added some more convention and configuration to distributed calls so that servers are aware of the master and how to call into themselves for scheduled tasks, ping and scheduled publishing. Will need to update the docs on LB regarding this too. Cleaned up the code that does the scheduling and separates it into proper segments. Obsoletes the old presentation classes that were doing it. 2014-06-20 14:34:21 +10:00
Shannon
d0cb27d1c1 Completes: U4-2633 Bundle all cache refresher transmissions into a single call per request for much better performance 2014-06-08 12:49:20 +02:00
Shannon
e8990eb6b2 Merge commit 'beb1979b4655a529b703ceec094a50f6a3dd8602' into 7.1.5
Conflicts:
	src/Umbraco.Web.UI/config/umbracoSettings.config
2014-06-08 12:24:29 +02:00
Shannon
96fa8c7dc9 Publicizes a few things, including the fix for U4-3981 Make Umbraco.Web.WebApi.Filters.UmbracoApplicationAuthorizeAttribute public 2014-03-24 15:41:46 +11:00
Shannon
672672d0aa Completes: U4-2633 Bundle all cache refresher transmissions into a single call per request for much better performance 2014-03-21 14:50:24 +11:00
Shannon
1e9a17babe Fixes merge issues, fixes up some unit tests, removes the For<T> config section stuff and simplifies the singleton, refactors it with methods as per discussion with stephen. 2013-09-25 19:23:41 +10:00
Shannon
f38a6e1561 Makes some massive headway with the real config section, have got all code re-delegated to using it and have migrated the baserest config to the core project, all configs will be shared out of the UmbracoConfiguration singleton, now to get the unit tests all wired up and using mocks for the most part. 2013-09-13 18:11:20 +10:00
Shannon
7806762b80 Implemented a real .Net configuration section for umbracoSettings.config + unit tests for every property. NOTE: This isn't referenced in the codebase yet, going to start setting default values for most of the properties so that we can remove them from the config file for shipping (ship minimal config) then reference these settings in the codebase. 2013-08-31 11:28:19 +10:00
Shannon
0296c646cb Fixes up a small code issue for U4-2505 2013-07-16 11:45:28 +10:00
Sebastiaan Janssen
1e129bcc4d Fixes U4-2505 umbraco 6.1.2 throws System.NullReferenceException on the first publish after site compilation 2013-07-15 16:16:39 +02:00
Shannon Deminick
7537e4c6d6 updated DefaultServerMessenger with more ctor options for testing 2013-04-16 04:05:31 +06:00
Shannon Deminick
47f6401fcd updates unit test to ensure UmbracoContext.Current is nulled, updates dispose on application context to
not dispose the database if it is not configured.
2013-04-15 21:36:24 +06:00
Shannon Deminick
0fe8ff57a1 changes a method to be protected instead of private 2013-04-12 05:04:20 +06:00
Shannon Deminick
2642d74450 adds some logging and fixes sequence of events for distributed cache sending 2013-04-12 04:06:24 +06:00
Shannon Deminick
5f9c7bb49c changed DefaultServerMessenger to expose login 2013-04-10 09:41:53 +06:00
Shannon Deminick
633d88c8c4 Changed DefaultServerMessenger to have an overridable method to send the request, added some internals visible to. 2013-03-25 20:54:21 +06:00
Shannon Deminick
e97a01c75c Fixes: #U4-1992 - Creates DictionaryCacheRefresher to ensure that all cache associated with the dictionary is updated amongst all
servers when it is changed/removed. Removes RemoveByJson as we only actually require RefreshByJson since we can put any sort of parameters
in a custom json string including whether it is a remove operation (if required)
2013-03-23 01:59:25 +06:00
Shannon Deminick
5f242aa3f6 Converts the media cache refresher to be a json cache refresher since it was impossible before to have media cache
cleared when media was deleted. Created base classes for cache refreshers, we now have a new event - CacheUpdated
which can now be used by code to execute on each individual server when any cache refresher is updated. Listening to events
normally only fire on the individual server so if people are wanting to refresh their own cache there was previously no way
to do that.
2013-03-21 22:53:58 +06:00
Shannon Deminick
52f05612ad Adds another method of distributed cache syncing using a custom json payload. this is necessary for things like ContentType cache
updates especially when deleting one since we require all sorts of Ids from the object but the object will be deleted by the time
the request reaches other servers so instead we create a json payload to send to other servers which contains all information necessary
to refresh/clear the cache on the other servers. This will probably be the preferred way going forward to handle cache refreshing.
With this in place, when removing a conent type cache is removed based on events.
This also adds a 'class' generic argument constraint to the repository base classes to guarantee we can do null checks and then we also
fix a null check on RepositoryBase. Updates the Entity class to properly support tracking properties - this now allows us to determine if
an entity was new, which is now used to ensure we don't re-update all of the content cache when a new content type is created.
Have also changed the deletion and creation of document types to use the new API, this allows for a lot less processing and streamlining how
all cache is invalidated. Fixes the construction of a new Template and Content Type in the v6 api and ensures that default values are set - #U4-1972, #U4-1971
2013-03-21 08:38:18 +06:00
Shannon Deminick
603b6c73f7 Adds some notes. 2013-03-19 23:49:20 +06:00
Shannon Deminick
2dea4a1d70 updates more cache handling, fixes syntax error in examineindex.release.config, fixes the DefaultServerMessenger ctor
to be lazy since the db context isn't initialized yet (will speed up start a bit too), ensures that the macro/xslt caching
clearing is only done on the single server instead or re-posing another distributed call.
2013-03-16 01:37:05 +06:00
Shannon Deminick
ec46d65bb4 Streamlines how macro cache is handled 2013-03-12 03:00:42 +04:00
Shannon Deminick
86852f9815 updated server registrar 2013-03-07 23:23:20 +06:00
Shannon Deminick
9aa44c40ce re-instated the upgrade script and put the server rego back on the service context. 2013-03-07 22:57:42 +06:00
Shannon Deminick
7509724e35 Comments out Server registration and db classes for now, we'll revisit this again soon for automatic
distributed cache without the need for xml. This code is nearly there to work in most classic implementations
of a load balanced site where each node has an internal DNS/Hostname entry. Needs some fine tuning but we'll release
this in a later version.
2013-02-20 21:55:02 +06:00
Shannon Deminick
8c97e367a2 Adds DatabaseServerRegistrar and ServerRegistrationEventHandler, we can now ensure that all server add themselves to the
database table automatically.
2013-02-13 06:12:43 +06:00
Shannon Deminick
3b25214433 Adds new database table + migration + unit test + fixes up unit tests to ensure PluginManager.Current = null; is done on teardown.
Created new ServerRegistrationRepository + unit tests + models
2013-02-13 03:29:32 +06:00
Shannon Deminick
7f51e01be7 Created strongly typed ICacheRefresher<T> so that now we can have cache refreshers execute against a
real instance object like IContent, this will dramatically increase performance for bulk publishing when not
in a load balanced environment. Updated methods on DistributedCache to refresh many instances at one time, this also
means we're not re-looking it back up again. Need to update media, users, templates, members and macros to use this new feature too.
2013-02-12 07:35:47 +06:00
Shannon Deminick
cb3ac17f43 Ensures tree is synced on bulk publish, fixes Dimming on the content node. Starts adding ability to
make distributed calls that are strongly typed and can do more than one at a time.
2013-02-12 04:47:36 +06:00
Shannon Deminick
4e6bdd1fc7 Fixed some med trust issues with UmbracoExamine. Created new framework for distributed cache providers with unit tests. Still uses the
old ICacheRefresher but now we can plugin 2 new providers - one for resolving a list of servers and the other to notify the servers of changes.
By default we have the configuration based providers which uses the umbracoSettings.
2013-02-12 03:46:27 +06:00
Shannon Deminick
f741861014 WIP - refactored some of the lastest changes with publishing based on Morten's feedback. 2013-02-11 20:07:23 +06:00