Price of Azure Cache in Role

Hi, 
I need to understand the price of Azure Cache in Role, in this link says: 
For In-Role Cache do I need to provision and thus pay for separate Compute Services resources (i.e. web and worker roles)?
No. In-Role Cache can be deployed as a service alongside other application code in your web or worker roles. However, you can choose to have worker roles specifically dedicated to the cache and pay normal Cloud Services rates, which
vary by the type of role and the role size.
http://azure.microsoft.com/en-us/pricing/details/cache/
So I can say: the cost of Azure Cache in Role is included when you pay for your VM(XS,S,M,L,XL). This is correct? 
Best Regards,
Oscar Quesada Avalos
Oscar Quesada Avalos -Costa Rica- Los que dicen que es imposible no deberian molestar ni interrumpir a los que lo estan haciendo. A. Einstein.

Hi Oscar,
I think this should help:
How do I get billed for In-Role Azure Cache?
There is no premium associated with In-Role Cache. Instead, you are billed using standard pricing for compute time for Azure role instances. For example, if you had three web role instances running your ASP.NET web site, it is possible that you could
use the extra memory on those instances for caching. In this example, there would not be additional charges for using caching on the existing web role. However, you might find that you need to add an additional web role instance or a dedicated In-Role Cache
role. In this case, you would be charged for the additional running role instances that you require for caching.
If you require more details about In-Role Cache, you could refer the following links:
https://msdn.microsoft.com/en-us/library/azure/hh914142.aspx
https://msdn.microsoft.com/en-us/library/azure/dn386103.aspx
Regards,
Malar.

Similar Messages

  • Azure Cache Notifications

    I'm trying to work with Azure Caching Notifications. Seems that the Callback is never invoked. CreateCache() and AddItemCache() are called onClick. I have correctly enabled Notifications in the Azure Management Portal. What am I missing ?
    private DataCache cache = new DataCache();
    public void CreateCache()
    DataCacheFactory cacheFactory = new DataCacheFactory();
    cache = cacheFactory.GetCache("never");
    cache.CreateRegion(App.IDProject.ToString());
    DataCacheOperations allCacheOperations = DataCacheOperations.AddItem |
    DataCacheOperations.ReplaceItem |
    DataCacheOperations.RemoveItem;
    DataCacheNotificationDescriptor ndCacheLvlAllOps = cache.AddRegionLevelCallback(App.IDProject.ToString(), allCacheOperations, new DataCacheNotificationCallback(myCacheLvlDelegate));
    public void myCacheLvlDelegate(string myCacheName, string myRegion, string myKey, DataCacheItemVersion itemVersion, DataCacheOperations OperationId, DataCacheNotificationDescriptor nd)
    //display some of the delegate parameters
    Logger.Info("A cache-level notification was triggered!");
    Logger.Info(" Cache: " + myCacheName);
    Logger.Info(" Region: " + myRegion);
    Logger.Info(" Key: " + myKey);
    Logger.Info(" Operation: " + OperationId.ToString());
    Logger.Info("");
    // to do
    MessageBox.Show("You should update");
    public void AddItemCache(Tuple<int, int,string> tuple)
    cache.Add(tuple.Item2.ToString(), tuple.Item3, App.IDProject.ToString());

    Hi,
    Would you be able to tell us if you are trying to use Cache, Region or Item level callback?
    You could refer the link for details on AddCacheLevelCallback method:
    https://msdn.microsoft.com/en-us/library/azure/microsoft.applicationserver.caching.datacache.addcachelevelcallback.aspx
    Regards,Malar.

  • "Warning : VMName is not supported in the Windows Azure Emulator in role 'WorkerRole1'"

    I have a WorkerRole and I am trying to use the vmName attribute is the cscfg file;
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <ServiceConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="2" osVersion="*" serviceName="AzureDeploymentProject">
    <Role name="WorkerRole1" vmName="vma">
    <Instances count="2"/>
    When I run it up with the following ;
    "C:\Program Files\Microsoft SDKs\Windows Azure\Emulator\csrun.exe" /run:"C:\Users\john\workspace-azure\AzureRunMeOutside\deploy\WindowsAzurePackage.cspkg";"C:\Users\john\workspace-azure\AzureRunMeOutside\deploy\ServiceConfiguration.cscfg" /usefullemulator
    I get the following error;
    "Warning : VMName is not supported in the Windows Azure Emulator in role 'WorkerRole1'."
    Does this mean that the ComputeEmulator does not support use of the vmName attribute, or am I doing something wrong.

    Hi Jambor.
    Thanks for the reply.
    I am using Compute Emulator 2.3:
    c:\Users\john\workspace-azure\AzureRunMeOutside\emulatorTools>"C:\Program Files\Microsoft SDKs\Windows Azure\Emulator\cs
    run.exe"
    Windows(R) Azure(TM) Desktop Execution Tool version 2.3.0.0
    for Microsoft(R) .NET Framework 4.0
    Copyright © Microsoft Corporation. All rights reserved.
    Use "csrun /?" for command-line syntax.
    c:\Users\john\workspace-azure\AzureRunMeOutside\emulatorTools>
    and SDK 2.3 and I still get this warning. Am I using the correct namespace/version for the configuration?
    xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
    Where is the vmName registered, and how can I get access to it?
    If I use the following, the DNS name is not registered in my standard DNS ( I am using Windows 7 Pro SP1 x64 and the machine is outside a Windows Domain, using a corporate DNS server ). Is there some 'Compute Emulator' DNS that I need to lookup, or do I
    have to set the DNS part of the Role Endpoints to point to my local DNS server? In the cloud Azure provides DNS services Azure
    Name Resolution (DNS), is there any Compute Emulator equivalent?
    private void printOutInterestingInfo()
    Tracer.WriteLine("Hostname is " + Dns.GetHostName(), "Information");
    foreach (var endpoint in RoleEnvironment.CurrentRoleInstance.InstanceEndpoints)
    string variable = endpoint.Key;
    string value = endpoint.Value.IPEndpoint.Port.ToString();
    string ipAdress = endpoint.Value.IPEndpoint.Address.ToString();
    try
    IPHostEntry hostEntry = Dns.GetHostEntry(ipAdress);
    string machineName = hostEntry.HostName;
    Tracer.WriteLine("\tEndpoint "+variable+": Machine name: " + machineName, "Information");
    catch(Exception e)
    Tracer.WriteLine("\tEndpoint "+variable+": Machine name is not available for ipAdress: "+e, "Information");
    Tracer.WriteLine("\tEndpoint "+variable+": IP Address: " + ipAdress, "Information");
    Tracer.WriteLine("\tEndpoint " + variable + ": Port: " + endpoint.Value.IPEndpoint.Port, "Information");
    foreach (var role in RoleEnvironment.Roles)
    foreach (RoleInstance roleInstance in role.Value.Instances)
    Tracer.WriteLine("Role: " + roleInstance.Role.Name, "Information");
    Tracer.WriteLine("\tInstance: " + roleInstance.Id, "Information");
    foreach (RoleInstanceEndpoint roleInstEndpoint in roleInstance.InstanceEndpoints.Values)
    Tracer.WriteLine("\t\tInstance endpoint IP address and port: " + roleInstEndpoint.IPEndpoint, "Information");
    Information: MU: 2014-09-02 10:36:42Z Hostname is mu
    A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
    Information: MU: 2014-09-02 10:36:46Z Endpoint Debugging: Machine name is not available for ipAdress: System.Net.Sockets.SocketException (0x80004005): No such host is known
    at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6)
    at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
    at WorkerRole.RunMe.printOutInterestingInfo() in c:\Users\john\git\AzureRunMe\WorkerRole\RunMe.cs:line 355
    Information: MU: 2014-09-02 10:36:46Z Endpoint Debugging: IP Address: 127.255.0.0
    Information: MU: 2014-09-02 10:36:46Z Endpoint Debugging: Port: 8091
    A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
    Information: MU: 2014-09-02 10:36:51Z Endpoint http: Machine name is not available for ipAdress: System.Net.Sockets.SocketException (0x80004005): No such host is known
    at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6)
    at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
    at WorkerRole.RunMe.printOutInterestingInfo() in c:\Users\john\git\AzureRunMe\WorkerRole\RunMe.cs:line 355
    Information: MU: 2014-09-02 10:36:51Z Endpoint http: IP Address: 127.255.0.0
    Information: MU: 2014-09-02 10:36:51Z Endpoint http: Port: 81
    A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
    Information: MU: 2014-09-02 10:36:55Z Endpoint http-alt: Machine name is not available for ipAdress: System.Net.Sockets.SocketException (0x80004005): No such host is known
    at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6)
    at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
    at WorkerRole.RunMe.printOutInterestingInfo() in c:\Users\john\git\AzureRunMe\WorkerRole\RunMe.cs:line 355
    Information: MU: 2014-09-02 10:36:55Z Endpoint http-alt: IP Address: 127.255.0.0
    Information: MU: 2014-09-02 10:36:55Z Endpoint http-alt: Port: 8081
    The thread 0x2504 has exited with code 259 (0x103).
    The thread 0x1728 has exited with code 259 (0x103).
    Information: MU: 2014-09-02 10:37:09Z Endpoint telnet: IP Address: 127.255.0.0
    Information: MU: 2014-09-02 10:37:09Z Endpoint telnet: Port: 24
    Information: MU: 2014-09-02 10:37:09Z Role: WorkerRole
    Information: MU: 2014-09-02 10:37:09Z Instance: deployment23(267).AzureRunMe.WorkerRole_IN_0
    Information: MU: 2014-09-02 10:37:09Z Instance endpoint IP address and port: 127.255.0.0:8091
    Information: MU: 2014-09-02 10:37:09Z Instance endpoint IP address and port: 127.255.0.0:81
    Information: MU: 2014-09-02 10:37:09Z Instance endpoint IP address and port: 127.255.0.0:8081
    Information: MU: 2014-09-02 10:37:09Z Instance endpoint IP address and port: 127.255.0.0:24
    outputs;

  • Azure Cache ErrorCode ERRCA0017 :SubStatus ES0006

    Hello everyone.
    Im trying to access MS Azure Cache service and pretty often I get this error:
    Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0017>:SubStatus<ES0006>:There is a temporary failure. Please retry later. (One or more specified cache servers are unavailable, which could be caused by busy network or servers. For on-premises cache clusters, also verify the following conditions. Ensure that security permission has been granted for this client account, and check that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Also the MaxBufferSize on the server must be greater than or equal to the serialized object size sent from the client.). Additional Information : The client was trying to communicate with the server: net.tcp://remoto.cache.windows.net: line 23233.       at Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ErrStatus errStatus, Guid trackingId, Exception responseException, Byte[][] payload, EndpointID destination)       at Microsoft.ApplicationServer.Caching.SocketClientProtocol.Get(String key, ref DataCacheItemVersion version, ref TimeSpan timeout, ref ErrStatus err, String region, IMonitoringListener listener)       at Microsoft.ApplicationServer.Caching.DataCache.InternalGet(String key, ref DataCacheItemVersion version, String region, IMonitoringListener listener)       at Microsoft.ApplicationServer.Caching.DataCache.<>c__DisplayClass53.<Get>b__52()       at Infrastructure.Azure.Cache.AzureCacheServiceClient.<>c__DisplayClass6`1.<Get>b__5() in AzureCacheServiceClient.cs: line 88       at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction(Func`1 func)
    It happens when Im trying to access some object in cache like this:
    public T Get<T>(string key)
    return retryPolicy.ExecuteAction(() =>(T) (_cache.Get(key)));
    Here is my initialization code:
    var cacheFactory = new DataCacheFactory();_cache = cacheFactory.GetDefaultCache();
    var retryStrategy = new FixedInterval(15, TimeSpan.FromSeconds(2));
    _retryPolicy = new RetryPolicy<CustomCacheTransientErrorDetectionStrategy>(retryStrategy);
    And app.config:
    <configSections>
    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />     
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    <dataCacheClients>
    <dataCacheClient channelOpenTimeout="1000" requestTimeout="45000" name="default">
    <autoDiscover isEnabled="true" identifier="[some.host.name]" />
    <securityProperties mode="Message" sslEnabled="true">
    <messageSecurity authorizationInfo="***" />
    </securityProperties>
    </dataCacheClient>
    </dataCacheClients>
    It happend at least three times already while the Azure Health Status (https://azure.microsoft.com/en-us/status/) said everything was fine at that time.
    As the exception message says - there are some 'temporary' failures on MS side still maybe I'm doing smth wrong in my code?

    Hi,
    This issue might be happed due to hitting the Windows Azure Cache limitation, where you can not add more than 8MB data at a time. The simple workaround for this issue is to split the object into smaller chunks, i.e  you can  serialize the object
    into smaller byte arrays and pass the arrays to cache as multiple objects.  I recommend you could refer to this blog:
    http://blogs.msdn.com/b/pkc/archive/2011/12/21/datacacheexception-errorcode-lt-errca0017-gt-substatus-lt-es0006-gt.aspx
    Any questions, please let me know.
    Regards,
    Will
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Azure Management REST API for Azure Cache ?

    Can’t find restful azure management API to create Azure Cache ? looks like only way to create Azure Cache via Azure Portal ?
    Max

    Yes ,  I think you are right。
    My Blog
    Please use Make as Answer if my post solved your problem and use
    Vote As Helpful if a post was useful.

  • How to hiden the moving price of material  for some roles.

    Hello,
    I want to hiden moving price filed of material fo some roles when use mm03.help me!
    thanks.

    Hello,
    U can contact ur functional guy,he can do it in SPRO tcode.
    Regards

  • Azure cache file name

    Newbie question please? I am retrieving text file from Azure blog and it seems to cache forever. Can you tell me how to read the file EVERY time and NOT cache it. Thanks.
                    // get the book anchor name which will be used to get book file next
                    string anchorBookUri = "http://az722734.vo.msecnd.net/cdn/Office2013/EN/Data/Office2013.txt";
                    using (HttpClient client = new HttpClient())
                    using (HttpResponseMessage response = await client.GetAsync(anchorBookUri))
                    using (HttpContent content = response.Content)
                        anchorBookAsString = await content.ReadAsStringAsync();
    FS

    Hi Frank14303,
    We can disable the HttpClient Cache by this:
    var filter = new HttpBaseProtocolFilter();
    filter.CacheControl.ReadBehavior = Windows.Web.Http.Filters.HttpCacheReadBehavior.MostRecent;
    filter.CacheControl.WriteBehavior = Windows.Web.Http.Filters.HttpCacheWriteBehavior.NoCache;
    HttpClient client = new HttpClient(filter)
    --James
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Windows Azure Caching Previewing Service No Longer Works

    This is the error I get back:
    "ErrorCode<ERRCA0030>:SubStatus<ES0001>:Unable to complete authorization request for connecting to the caching endpoint. Please try again after sometime. If the issue persists, contact Microsoft support."
    Any ideas?

    Hi,
    I encounter the same issue but am not sure regenerating keys will fixed it. 
    once I got this error, I redeploy the application and it worked but after few hrs I got the same exception.
    Inner Exception
    Type : Microsoft.ApplicationServer.Caching.DataCacheException, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    Message : ErrorCode&lt;ERRCA0030&gt;:SubStatus&lt;ES0001&gt;:Unable to complete authorization request for connecting to the caching endpoint. Please try again after sometime. If the issue persists, contact
    Microsoft support. 
    Source : Microsoft.ApplicationServer.Caching.Core
    Need to investigate how keys regenerate will fix this issue. Any Thoughts?

  • Unable to run project on upgrading to azure sdk 2.3 while using cache

    We upgraded azure sdk from 1.8 to 2.3 and we are unable to run our project.
    following is the error.
    Attempt by method 'Microsoft.Web.DistributedCache.DataCacheFactoryWrapper.CreateDataCacheFactoryConfiguration(System.String)' to access method 'Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration..ctor(System.String)' failed.
    However if we comment out the following lines of code in web.config we are able to run the project.
    <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
    <providers>
    <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="AppName" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
    </providers>
    </sessionState>
    Below is the screen shot of error :

    Hi Jambor,
    Thanks for the reply.
    We have no other sessionState caching configured other than this one in WebRole.
    So, in webrole we.config, we have:
    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
    <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
    <providers>
    <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="AppName" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
    </providers>
    </sessionState>
    <dataCacheClients>
    <dataCacheClient name="default">
    <!--To use the in-role flavor of Windows Azure Cache, set identifier to be the cache cluster role name -->
    <!--To use the Windows Azure Cache Service, set identifier to be the endpoint of the cache cluster -->
    <autoDiscover isEnabled="true" identifier="appname.cache.windows.net" />
    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
    <!--Use this section to specify security settings for connecting to your cache. This section is not required if your cache is hosted on a role that is a part of your cloud service. -->
    <securityProperties mode="Message" sslEnabled="true">
    <messageSecurity authorizationInfo="{authInfo}" />
    </securityProperties>
    </dataCacheClient>
    </dataCacheClients>
    <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
    </cacheDiagnostics>
    And here are the installers that are installed in our win7 system:
    Windows Azure Authoring Tools - v2.3
    Windows Azure Compute Emulator - v2.3
    Windows Azure Libraries for .NET - v2.3
    Windows Azure Storage Emulator - v2.3
    Windows Azure Storage Tools - v2.2.2
    Windows Azure Tools for Microsoft LightSwitch for Visual Studio 2012 - October 2012
    Windows Azure Tools for Microsoft Visual Studio 2012 - v2.3
    EDIT: Tried with
    Windows Azure Tools for Microsoft LightSwitch for Visual Studio 2013 - v2.3
    But no luck.
    Please let us know if we are missing something.
    Thanks,
    - Sovan
    sovan kumar das

  • Co-Loc versus Dedicated In-Role Cache - both available to all instances?

    Trying to confirm that this is true. The only real difference between the co-located and dedicated in-role cache is that the co-located shares the memory with the role whereas the dedicated uses all the memory of the role. I'm assuming that even in a co-located
    cache the cache is synced and not per instance? Meaning if I set up a co-located cache on my web role and that role has multiple instances, the cache will be the same for all instances (objects added to cache from one instance would be available in all instances). 
    Dan

    Hi,
    We can see this from Role Cache FAQ (Windows Azure Cache).
    Here is a snippet.
    What is the difference between co-located and dedicated Caching topologies?
    There are two main ways a role can host In-Role Cache: co-located and dedicated. In the co-located topology, the role that hosts In-Role Cache also hosts other web role or worker role functionality. The memory and resources of the role are shared between
    caching and non-caching application code and services. In the dedicated topology, which is supported for worker roles, the worker role only hosts caching. These Cache topologies differ primarily in the percentage of memory that is dedicated to Cache. For more
    information, see the topics on co-located Caching roles and
    dedicated Caching roles.
    Best Regards
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Is it possible to do Continuous deployment for azure cloud services(website,web and worker roles) using VSO Release management?

    Hi,
    I am trying to do continuous deployment using visual studio online and release management for Azure cloud services. But not able to find the way to do it(with the help of different blogs, those are describing using VM only).
    I tried using Release management visual studio extension also. But no Luck.
    Please help me if it is possible to do continuous deployment using release management.
    Thanks,
    Phani

    Hi,
     Please refer to the following Forum Thread with similar question which has been answered. Let us know if this helps.
     https://social.msdn.microsoft.com/Forums/en-US/9d8322f6-36e5-4cca-a982-d420d34d2072/realease-management-deployment-to-azure-websites-webworker-roles?forum=tfsbuild
    Regards,
    Nithin Rathnakar

  • Suggestions for caching stock option prices?

    I will be putting realtime stock option prices into a cache and intend to use backup-count=0. The market data feed delivers 100,000+ updates/sec so I will coalesce that in a feed handler which will do batch inserts as rapidly as my cluster can handle them. Applications will listen for updates on options for a particular underlying stock, options with a strike price within a range, etc. Should there be an index? Should I use some partition affinity so, for example, all options on MSFT stay together?
    I'm considering these for key / value objects but I'm wondering about the duplicity between fields in both objects. Maybe remove those dupe values from the quote and have each quote maintain a reference to its key? The identifying data in the key comes included from the exchange with each quote as a String and I decode root symbol, expiration, call/put & strike price from that String.
    I could also use that identifying String as-is for a key and include the values it represents in the quote (with indexes).
    Or have a second cache, KeyString->DecodedKeyValuesObject. If I use a 2nd cache then I think it would be a replicated near cache with backup-count=1 since this data would be minimal size and loaded once per day and not updated, right?
    public class OpraKey implements PortableObject{
        public static final char CALL = 'C';
        public static final char PUT = 'P';
        public String optionRoot; // ie, MSFT
        public Date expiration;
        public char callOrPut;
        public BigDecimal strike; // ie $40.00
        @Override
        public void readExternal(PofReader reader) throws IOException {
            optionRoot = reader.readString(0);
            expiration = reader.readDate(1);
            callOrPut = reader.readChar(2);
            strike = reader.readBigDecimal(3);
        @Override
        public void writeExternal(PofWriter writer) throws IOException {
            writer.writeString(0, optionRoot);
            writer.writeDate(1, expiration);
            writer.writeChar(2, callOrPut);
            writer.writeBigDecimal(3, strike);
    }and the quote...
    public class OpraQuote implements PortableObject {
        public static final char CALL = 'C';
        public static final char PUT = 'P';
    // never change
        public String optionRoot;
        public Date expiration;
        public char callOrPut;
        public BigDecimal strike;
    //change frequently
        public float bid;
        public float ask;
        public float last;
        public int bidSize;
        public int askSize;
        public int lastTradeSize;
        @Override
        public void readExternal(PofReader reader) throws IOException {
            symbol = reader.readString(0);
            optionRoot = reader.readString(1);
            expiration = reader.readDate(2);
            callOrPut = reader.readChar(3);
            strike = reader.readBigDecimal(4);
            bid = reader.readFloat(5);
            ask = reader.readFloat(6);
            last = reader.readFloat(7);
            bidSize = reader.readInt(8);
            askSize = reader.readInt(9);
        @Override
        public void writeExternal(PofWriter writer) throws IOException {
            writer.writeString(0, symbol);
            writer.writeString(1, optionRoot);
            writer.writeDate(2, expiration);
            writer.writeChar(3, callOrPut);
            writer.writeBigDecimal(4, strike);
            writer.writeFloat(5, bid);
            writer.writeFloat(6, ask);
            writer.writeFloat(7, last);
            writer.writeInt(8, bidSize);
            writer.writeInt(9, askSize);
    }Thanks for any suggestions,
    Andrew

    TBH, for relatively small object updates (financial ones, like yours and mine), I've not found POF to be that much "faster" then non-POF (which is to be expected.) Main benefit I've found from POF format is the compaction it offers. We have a certain set of data which is also about 400k, similar to yours, and we've found storing it in POF format saves us around 75% of the memory space.
    The "putAll()" will give you a dramatic speed-up normally. I've regularly seen ~5 fold improvement in insert rate. As regards updates, if not very much of your object is changing, you might want to look at using Entry Processors (we use these to handle incoming Trades), as they save you sending lots of repeated data over the wire. Guess the same rules apply for your POFUpdater. Test both approaches and see.
    You'll want to have lots of service threads on your storage-enabled nodes, and consider running highly threaded clients to pump data at the caches. Using such techniques you should be able to insert/update many 10k-40k entires per second on a relatively modest cluster. As I mentioned yesterday, if you are looking to hit 100k per second, that's very high, and you may saturate your LAN segment first. Multiple LAN segments may help here, along with having lots of client "feeder" instances spread across LANs/servers to help feed your caches.
    Also be very careful of concurrency on your data. You may find that even though you have a large number of entries, only a small proportion of them are hit repeatedly. These small "hot spots" can be a real bottleneck. We hold a "hit stat" field against our objects to see how often they were updated, so we can see the dynamics of our system (and view this data via JMX.)
    Take your point about backup-count=0, but remember that the "pause" to rebuild/rebalance could be significant. And with 100k per second worth of entries still flowing into your system under such circumstances, you could quickly fall behind.
    Cheers,
    Steve

  • 'role discovery data is unavailable' cloud service (staging)

    This has been posted on stackoverflow, so apologies for the cross post, but I'm trying to gain traction on fixing this and losing time.
    I currently have a production cloud service working. I moved a project dependency from being a direct dll reference to local nuget package and after some re-factoring, decided to deploy my efforts to the staging site.
    Locally, the changes with the dependency appears to be working correctly; the site loads and works well using the azure compute emulator.
    However, when I deploy to the staging environment (via visual studio publish to azure option) the deployment fails as it detects multiple cycles of the instance which points to a spin up issue. When I've jumped on the box to try and find the route cause, I
    can see the dreaded role discovery data is unavailable exception.
    My gut hunch is nuget has updated a package which caused this but can't see what and why it would work locally but not in the cloud. I thought it might be the azure caching but it looks as though I'm using the same version as the live (working) site.
    - Does anyone have a fix for this?
    - If this works locally (cuts out many answers I've seen when you see this using the emulator), what am I missing or including to prevent this working in the cloud?
    - Is there a way I can debug this further to find out why I'm getting the exception
    Many, many thanks in advance to anyone who spares any time reading this

    Hi Sir,
    Base on my experience, if we  implement the references using NuGet, we could see those DLL files from  "References". I recommend you could set those DLL files "Copy Local" to "true". And try to deploy project
    again. And I wondered know what error details when you deployed project.  The link below is about how to remote debug cloud service, please try it.
    http://msdn.microsoft.com/en-us/library/azure/ff683670.aspx
    Sample:
    http://code.msdn.microsoft.com/windowsazure/Remote-Debugging-Windows-dedaaec9
    For this error information, you could see the similar thread:http://stackoverflow.com/questions/11547855/azure-role-discovery-data-is-unavailable-error-when-switching-from-iisexpress
    Regards,
    Will
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Basic caching questions

    I have been going through the setup of caching, to get the initial core functionality working for the last couple days and have not made much progress.
    I believe part of the problem is that there is several different types of caching, all called by the same name on websites, so I might be following directions for one type, and then switching to another without knowing it.
    I want to set up role caching, and I thought I had it setup, but when I tried to access the cache, I got the error,
    {"ErrorCode<ERRCA0042>:SubStatus<ES0001>:Invalid identifier: '[Cache role name or Service Endpoint]'. Check cache rolename/endpoint in configuration."}
    I did find that there is a spot in the configurations for filling in this information.  But since I am using role caching, it doesn't seem like it would apply to my situation.
    Also, I spent a few hours trying to get windowsAzure.caching 2.5 installed, and no matter what I do, and it installs a debug module that crashes everything if you don't remove it.
    So, basically I guess I am lost, and trying to get caching work, and running into issues at every turn.
    If you can please tell me why it is asking for distributed caching information when I am trying to use role caching, what I am doing wrong, and where there is an example on the web that actually works with the latest versions.
    Well, I got by that particular error, but now just have a new issue.  When it hits the initialization line of code for the cache it never continues.  No error, no break point, try catch doesn't help, just sort of terminates there or something. 
    But the program keeps running.
    Also, I cant seem to find any example that actually fits for a full code block.  The comments in the web.config said to use the below but intellisense doesn't recognize this code, but does some similar.  However, the initialization class that
    it is looking for, does not exist either. 
    CacheFactory.LoadConfiguration(name)

    Daniel,
    If you are trying to use the InRole cache, few steps you might want to verify
    1. Enable caching on role. On the Caching tab, select the Enable Caching check box.
    2. Install azure caching nuget package, it will add necessary references to your project along with some settings in your configuration file.
    3. You will need to specify the name of the identifier in the configuration even if you are using In Role cache. i.e. specify your role name as Identifier.
    e.g.
    <dataCacheClients>
    <tracing sinkType="DiagnosticSink" traceLevel="Verbose"/>
    <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="WebRole1"/>
    </dataCacheClient>
    </dataCacheClients>
    4. Make sure that you have the data cache client pointing to the same named client which you created in the step 1, by default it is named as 'default'. The cache that’s named default will be returned when, in code, you call the GetDefaultCache method
    on the DataCacheFactory object. 
    You should be able use the In role caching after all these settings, however about the second issue which you mentioned, I assume it is coming in debug mode when you try to initialize DataCacheFactory class.
    You can refer my blog post which talks about same issue and solution
    http://passionatetechie.blogspot.com/2014/09/unresponsive-datacachefactory.html
    For more information about how you can use In role cache - there is a great documentation, you can refer How to: Use an Azure In-Role Cache in Azure Cloud Service
    https://msdn.microsoft.com/en-us/library/azure/jj131262.aspx
    Bhushan | Blog |
    LinkedIn | Twitter

  • Regarding Azure Usage Cost optimization required

    Hi
        This post is regarding how to reduce my Azure usage costs.We are using Microsoft Azure Cloud Services (Paas).We are  using Cloud services (Web/Worker Roles).
    So for every client specific.We are deploying in 2 instances of Web Role for webapplication and 2 Instances of Service Role for WebServices and 2 instances of Worker Role for running some jobs to meet Azure SLA for 99.95% availablilty.
    For every Client specific i am deploying the same way as above apart from test setup.So the azure costs are increasing.
    We are using this Microsoft Azure for more than 2 years.
    Due to the costs increasing recently due to added instances.we are planning on looking for options to reduce the costs.
    Please provide me some options to reduce the costs.
    Q1: Is Cloud Services (Paas) is a good option for smaller firms? or are there any alternatives?
    Q2: What options i have to optimize costs using currently using Cloud Services (PaaS) ?
    Q3: Currently my Webapp is providing like this client1.cloudapp.net, client2.cloudapp.net..etc?Is there any way i can combine all Clients into one Webapp and deploy it in 2 instances and provide some thing like mainsite.cloudapp.net/client1, mainsite.cloudapp.net/client2...
    etc..?
    Q4: Will there be any way i can try to combine all client specific Webservices into one. and connect to client specific SQL Azure databases?
    Q5:Similarly for running scheduled jobs using worker role for client specific? can i combine all into one and connect to client specific SQL Azure database to run the jobs?
    Q6: As of now i am using Azure cloud services (Web/Worker Roles) will there be any good to go for other alternatives Azure Websites / Azure VM? If yes will it help for cost optimizations even client increases?
    I had gone through some web sites / forms but did not find any good optimized solution.
    Any options for cost reduction will be highly appreciated?

    Hi PVL_Narayana,
    This is a very complex question, but in the end it all concludes with application design (architecture). Of course you can design your web and worker roles to serve all your customers in a multi-tenant approach and you can also do the same for your databases.
    However, from my expertise, there are certain scenarios where a one-bucket-satisfies-everyone approach doesn't work for those customers who want to pay extra. It's totally understandable for you to look to cutting costs considering your user pool has become
    larger. Thanks to Microsoft though, which continously drops prices to Azure, this situation usually arrives later than originally expected.
    There are some patterns I've blogged about and I spoke about at various conferences which you could benefit from in your multi-tenant application, such as the priority-queue pattern, the valet key, the event-based triggering pattern, the CQRS pattern and
    especially the sharding pattern. I'm happy to chat with you more on this subject.
    As for moving away from cloud services to Azure Websitesor VMs: I would personally not suggest that, considering that: 1. you're happy with the no-manage-required approach. Otherwise, you'll end up in updating and patching your VM's OS regularry and rebooting
    every once in a while. Using PaaS, Microsoft does that for you. 2. You don't really want to mix your worker role resources with your web resources. If your pool of users has enlarged, this probably means that your services have to satisfy more requests / sec
    as well. Therefore, allocating your web server's resources for running WebJobs rather than have specific servers which just run the worker roles could mess up your code's HW requirements and you could end up with huge performance impacts.
    Of course, these answers are quite generic given the lack of insights into your application.
    I'm happy to chat with you more on this subject, should you require any more intel.
    Alex

Maybe you are looking for

  • Changing the file name in the iPhoto Library

    I just recently converted from a pc to a iMac, which is very cool, however the pc file names are only unique inside an Event. Is there a utility that I can run to give each photo in iPhoto a unique file name?

  • IMac G5 screen smashed badly.  Is it unsafe to boot into Firewire TDM?

    I'm advising a small business owner on the fastest and cheapest way to recover data from an iMac G5 that was vandalized. The screen was struck hard with an object of some sort. I'm not sure what other trauma the machine might have experienced. Before

  • IPhoto book warning

    I have already successfully ordered two wedding books of the same photos. I now want to order three more for the bride and I have not changed anything in my book. I now get this warning when I press the button to order, "Incomplete Book -Your book se

  • Sending user text data

    Hi everyone. I am not certain if I am in the correct section. I have a website designed in Flash. The site has a contact section with 3 fields (name, e-mail and message). Having completed these fields one would click "submit" to send the entered data

  • APEX confirmation message

    Hi, I have a problem: In my application, whene activate a DML action, I want an automatic confirmation alert message . Is possibile? any indea? Thank's Lorenzo