MemCache, Rails, pages showing different data at different times - ruby-on-rails

We've got a strange problem that is very hard to troubleshoot. We are looking for some assistance on methods that might help us troubleshoot this problem. We use memcache and thinksphinx. Recently we moved to a new server and suddenly elements on the pages are showing up missing.
So for instance, our home page has news items and latest files added. In one case I see that we are missing the last 2 news items. My developer checks and sees its there. 10 minutes later he checks and see all the news items missing. Check again 15 minutes later and missing 3 items.
We were able to notice that on the server move we had memcache set at 2mb, so we moved it up to 1gb. It looked like everything was fixed. However, now we are seeing similar inconsistencies when people are searching. Users will report problems, I will see them, send them to my developer and he sees different results. We both refresh and see something else.
We are able to realize this is somehow related to memcache and/or our thinkingsphinx, because when we clear and rebuild, everything acts normal.
My only assumption is that at some point we run out of memory in memcache, but it makes no sense that only certain data would not be shown.
Can anyone give any advice?
Thanks,
Will

Related

EPiServer Output Cache clearing for no reason

We recently put live EPiServer output caching, this works fine locally and on our staging sites. For some reason since going live yesterday pages don't seem to stay in the cache for long, if at all. I can't see any obvious reason for this aside from genuine traffic?
To implement caching I added [ContentOutputCache] to the get methods of certain controllers. Then updated the Application Settings with the following:
uiUrl="~/EPiServer/CMS/" httpCacheExpiration="12:0:0" httpCacheVaryByCustom="path" httpCacheVaryByParams="id,epslanguage"
Has anyone seen anything like this before. I can't figure out why the cache keeps being dropped. Interestingly chrome tells me that the content is coming from the cache but the page load time is upwards of 20 seconds at times ... other times it's instant (when the caching is working).
I am not logged in to the CMS and no one is publishing anything.
Please let me know if you need any more info as always any help greatly appreciated on this.
Thanks,
Dan

CloudKit 'Unexpected Server Error' Anytime Manual Operations Performed in Dashboard

I have been developing an iOS app that utilizes the CloudKit feature available for Apple Developers. I've found it to be a wonderful resource, especially since the very day I started designing my backend, the service I was intending to use (Parse) announced it was shutting down. It's very appealing due to it's small learning curve, but I'm starting to notice some annoying little issues here and there so I'm seeking out some experts for advice and help. I posted another CloudKit question a couple days ago, which is still occurring: CloudKit Delete Self Option Not Working. But I want to limit this to a different issue that may be related.
Problem ~ Ever since I started using CloudKit I have noticed that whenever I manually try to edit (delete an entry, remove or add part of a list, even add a DeleteSelf option to a CKReference after creation), and then try to save the change, I get an error message and cannot proceed. Here is a screenshot of the error window that appears:
It's frustrating because anytime I want to manipulate a record to perform some sort of test, I either have to go do it through my app, or just delete the record entirely and create a new one (that I am able to do without issue). I have been just working around this issue for over a month now because it wasn't fatal to my progress. However, I am starting to think that this could be related to my other CloudKit issues, and maybe if I could get some advice on how to fix it I could also solve my other problems. I have file numerous bug reports with Apple, but haven't received a response or seen any changes.
I'd also like to mention that for a very long time now (at least a few days), I've noticed down in the bottom left hand corner of my Dashboard that it is consistently saying that it's "Reindexing Development Data". I remember at first that wasn't an issue, I would get that notification after making a change but it'd go away after the operation is complete. Now it seems to be stuck somewhere inside the process. And this is a chronic issue, it's saying this all the time, even right when I log into my dashboard.
Here is what I'm talking about:
As time goes on I find more small issues with CloudKit, I'm concerned that once I go into production more problems could start manifesting and then I could have a serious issue. I'd love to stick with CloudKit and avoid the learning curve of a different service like Amazon Web Services, but I also don't want to set myself up for failure.
Can anyone help me with this issue, or has anyone else experienced it on a regular basis? Thanks for the advice and help!
Pierce,
I found myself in a similar situation; the issue seemed to be linked to Assets; I had an Asset in my record definition. I and several other I noted reported the re-indexing issue on the apple support website and after about a month it eventually disappeared.
Have you tried resting your database schema completely, snapshot the definition; since you zap it completely and than reset, see inset.
Ultimately I simply created a new project, linked it to cloud kit and use the new container in my original app.

Rails app: Trouble shooting frequent Handling RequestTimeOut errors

I have a large webb app of which I have recently been working hard to reduce load times. I have two controllers Generator (some 20.000 items) and Product (some 1.500 items) that have been slow for a while but I have worked with indexes and smart queries. On my dev app the app response time is about 500 ms.
From time to time I still get RequestTimeOut on the app and I need help trouble shooting this error. I understand what it means (a request has taken too much time) and I have installed the 'rack-timeout' gem and set it to 15 seconds (which works fine).
I have gone through the entire app (and especially the two slowest: Generator & Product) in search for time to save. I have had some issues with caching that I am currently trying to fix (caching would help quite a bit).
It seems that these timeouts happens mostly when bots (Yandex.ru especially) spiders through my site and especially goes through one generator after another. They may not be very slow any more but loading so many after another causes a lot of requests.
Now I am out of ideas and need some help in order to know what and how to continue my trouble shooting:
Is there anything else outside of response time that cause this
error? E.g. memory leakage or something? Or is it just a matter of
lots of requests on slow controllers?
I haven't been able to test it on my development platform. Is
there a way to benchmark and see how the app would handle
requests like from the bots? I seem to remember there was an
"Apache-thing" one could use to simulate traffic like this.
Any other ways of looking at the problem or trouble shoot this
issue from a high level point of view? Any ideas and
thoughts are welcome!

Benefit to maintaining development logs?

I have a development log for one of my projects that is now a text file in excess of 5GB in size. As this contains the logs from every query I've run for many months I feel the desire to delete/reduce it down a bit by eliminating some of the queries I did way back.
Are there any considerations / drawbacks in deleting old development logs? What do you do to deal with logs when they get big?
I clear them from time to time, usually if the app have no errors and bugs for a month for ex, I truncate development logs cause I really don't see what's the point of them. When I make modifications I again keep the logs for a certain amount of time to see if any errors will pop up, if not, I delete them as well. 5GB of logs is way too much I think.
Here is a topic about how to set up log rotation:
how to delete rails log file after certain size
hope this will help you.
Think of your development log like a story of what recently happened.
That's what it's good for.
For instance, if something gets lost in the mix between Page A, clicking Button B, and landing on Page C, then your development log will tell that story.
I can't think of any conceivably purpose for having a 5 GB development log, much less "maintaining" a development log.
Use the log to narrow down and squash a problem you're having right now.

Retrive a list of opened Work Items for a given project in TFS 2010 programmatically

I am trying to retrieve a list of opened work items for a given project programmatically. In searching through the web, the only way that I can see to do this is to use the WorkItemStore API and execute a query.
The major issue that I am having is that retrieving the workitemstore takes almost 2 minutes. I subsequently caches it, but the first hit is unacceptable. Beyond that, my application needs to refresh it every x number of minutes in case new work items are added.
Is there any way to get a list of opened work items associated with a project without using the WorkItemStore. I only need the work item number and optionally the title. I don't need any other information.
If not, is there something that I am doing wrong or something wrong with the TFS server (index missing perhaps) that makes the performance so slow. I have tried different ways of getting it by the way. They are all extremely slow.
WorkItemStore store = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
or
workItemStore = new WorkItemStore(tfsTeamProjectCollection);
or
workItemStore = new WorkItemStore(tfsServerName);
Any help in this matter would be greatly appreciated.
Even with an incredibly large DB you shouldn't experience two minutes delays.
I would load up SQL Profiler and take a look at the query generated to get work items. From there, you can probably identify what part of the query is causing the delay.
You can also consider running the query on the same box that the TFS DBs are on and see if that is the issue. As the comment above points out, remote connections can certainly cause delays.
If none of this resolves the issue then hopefully you can provide some more information like size of the project (shouldn't matter), TFS installation configuration (where are your servers and how are they setup) and what hardware it is on.

Resources