text:
|Publication number
|Publication type
|Application number
|Publication date
|Apr 5, 2005
|Filing date
|Feb 13, 2001
|Priority date
|Feb 13, 2001
|Fee status
|Also published as
|Publication number
|Lorraine M. Herger, Mary McHugh, Dan E Poff, Robert A. Saccone, Jr., Charles O. Schultz, T. Basil Smith, III
|Original Assignee
|International Business Machines Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (14), Referenced by (51), Classifications (15), Legal Events (4)
|External Links: USPTO, USPTO Assignment, Espacenet
1. Field of the Invention
This invention relates generally to compressed memory systems, and more specifically, to a software technique for managing and controlling a compressed memory system in a manner transparent to the operating system.
2. Discussion of the Prior Art
In computer systems it is customary that there be one-to-one correspondence between the memory address produced by the processor and a specific area in the physical memory of the system. It is an error for the processor to request access to an address which does not have an associated physical memory area. This limits the operating system and applications to an address space determined by the actual physical memory installed in the system. Modern computer systems have overcome this limitation through the use of virtual memory which implements a translation table (TT) to map program (virtual) addresses to real memory addresses.
With virtual memory the program works in an address space limited only by the processor architecture. It is a function of the operating system to ensure that the data and code a program is currently using is in main memory and that the translation table can map the virtual address to the real address correctly. In a virtual memory system the allocation of memory is most commonly performed by the operating system software. This requires an interrupt of the instruction sequence so that the privileged kernel code can allocate physical memory to the area being accessed so that normal program flow can continue without error. This interrupt and the kernel processing to allocate physical memory requires a significant amount of processing time and upsets the normal pipelining of instructions through the CPU.
There currently exist schemes for reducing operating system process interruptions. For instance, the reference entitled "Design and Analysis of Internal Organizations for Compressed Random Access Memories" by Peter A. Franaszek and John T. Robinson, IBM Research Report RC21146(94535), dated Oct. 28, 1998, describes a low level main memory design for storing compressed data that includes a directory portion and a collection of fixed size blocks which are used to store lines in compressed format. In the memory storage scheme described herein therein, highly compressible lines may be stored entirely within a directory entry; otherwise, the directory entry points to one or more of the fixed size blocks which are used to store the line in compressed format. The system further makes use of page tables which translate virtual addresses to real addresses which correspond to the location in the directory of the directory entry for the line and which includes information pertaining to blocks holding a compressed line. Specifically, the information in a directory entry includes flags, fragment combining information, and, assuming fixed size entry structure, pointers to one or more fixed size blocks. On a cache miss, the memory controller and decompression hardware finds the blocks allocated to store the compressed line and dynamically decompresses the line to handle the miss. Similarly, when a new or modified line is stored, the blocks currently allocated to the line are made free (if the line currently resides in the RAM), the line is compressed, and then stored in the RAM by allocating the required number of blocks.
Furthermore, U.S. Pat. No. 5,761,536 is directed to a memory organization technique utilizing a compression control device for storing variable length objects (compressed memory) in fixed-size storage blocks by enabling fixed size storage blocks to receive remaining portions (leftover compressed memory pieces or fragments) of variable length objects that take up less than a full fixed-size storage block. The system thus reduces memory fragmentation.
U.S. Pat. No. 5,864,859 is directed to a compression store addressing technique for storing variable length objects (compressed lines, each representing, e.g., � of a page) in fixed size blocks so that accessing an individual line may be accomplished quickly and with little change to existing software. In particular, the beginning of any line within a page may be accessed with a single pointer plus an offset. Associated with the compression store is a list of free or available blocks (free list) which is accessed for enabling variable length object storage.
Commonly-owned, co-pending U.S. patent application Ser. No. 09/627,516 entitled DYNAMIC ALLOCATION OF PHYSICAL MEMORY SPACE describes a mechanism that enables the physical memory to be dynamically allocated in a manner such that the interruption in program flow is eliminated.
As the amount of physical memory in a computer is limited due to cost and space, operating systems (O/S) have employed techniques that enable many concurrently running applications to share a common pool of physical memory. Above-described co-pending U.S. patent application Ser. No. 09/627,516 further describes a mechanism that facilitates the management of memory pools so that the various processes and users share the system resources fairly.
In general, current operating systems use a kernel software component called a Virtual Memory Manager (VMM) to provide an illusion of a flat, contiguous memory space equal to the amount of memory that can be addressed by the processor to running applications. The O/S reserves a portion of the memory space as its own and allows the applications to have access to the rest of the virtual address space. In reality, the applications only have a relatively small portion of their address space in memory and the rest of application data memory is swapped to disk until the application makes reference to the swapped memory. The VMM then swaps in the requested portion of memory.
It follows that in systems with large amounts of physical memory, performance is better since the O/S can allow applications to have larger segments of data resident in memory, thus reducing the need for swapping to and from disk.
In a system where memory compression is employed, the amount of physical memory appears to the O/S to be much greater than is actually installed. The amount of memory presented to the O/S as installed in the computer is called real memory. The ratio of real memory to physical memory is called the boot compression ratio of the computer system. As long as the data that is being contained in the memory remains compressible at a rate greater than or equal to boot compression ratio, the system can run correctly. However, in the case where the compression ratio of the data residing in memory deteriorates to the point of requiring more physical space than is available, software components are employed to throttle back the usage of real memory such that there always is enough physical memory in which to contain the application and O/S data.
This throttling mechanism may be implemented in one of two ways: 1) by modifications to the VMM in the O/S kernel itself; or, 2) a package of software that runs outside of and separate from the O/S.
It would be highly desirable to provide an improved throttling mechanism that is implemented without modifications to the O/S kernel software and operates transparent to the O/S.
It is an object of the present invention to provide in a computer system having a compressed main memory organization, a system and method for managing memory usage without modifications to the O/S kernel software and operates transparent to the O/S.
It is a further object of the present invention to provide in a computer system having a compressed main memory organization, a system and method for throttling back the usage of real memory such that there always is enough physical memory in which to contain the application and O/S data.
Thus, in accordance with the principles of the invention, for a computer system having an operating system and a compressed main memory defining a physical memory and a real memory characterized as an amount of main memory as seen by a processor, and including a compressed memory hardware controller device for controlling processor access to the compressed main memory, there is provided a system and method for managing real memory usage comprising: compressed memory device driver for receiving real memory usage information from said compressed memory hardware controller, the information including a characterization of said real memory usage state: and, a compression management subsystem for monitoring the memory usage and initiating memory allocation and memory recovery in accordance with the memory usage state, the subsystem including mechanism for adjusting memory usage thresholds for controlling memory state changes.
Advantageously, such a system and method is implemented in software operating such that control of the real memory usage in the computer system is transparent to the operating system.
Further features, aspects and advantages of the apparatus and methods of the present invention will become better understood with regard to the following description, appended claims, and accompanying drawings where:
FIGS. 2(a)-2(b) is a flow chart depicting the compressed memory management sub-system algorithm.
The present invention comprises a system and method for throttling memory usage in a compressed memory system.
With more particularity, the compressed memory controller 80, functions as follows: First, it provides for transparent address translation between the real addresses provided by the CPU and the actual locations in physical memory; and, second, it additionally provides an L3 (Level 3) cache of memory in which frequently accessed pages of memory are stored in an uncompressed format. As referred to herein, the term CTT (Compression Translation Table) represents the data structures used by the memory controller to perform the address translation. The CTT itself consumes some portion of the physical memory of the system and must be accounted for in managing the memory. This level of indirection between the real and physical addresses provided by the CTT allows the memory controller to provide a set of fast operations to manipulate memory on the page level granularity. The page operation that is most useful is the Zero Page Operation which allows for memory zeroing by marking the CTT for a particular real memory page as containing all zeros and allows the physical memory associated with that page to be freed and reused. Furthermore, as will be described in greater detail herein, the memory controller additionally functions to generate an interrupt when physical memory usage exceeds a programmable usage threshold.
The CMS component 50 particularly includes a compressed memory management service module 54 which polls a device driver compressed memory statistics module 24, gathers compressed memory usage statistics and, based on these statistics, determines whether or not physical memory must be made available. In the case of deteriorating compressibility and oncoming physical memory exhaustion it will allocate memory from the O/S. Because it is a high priority task, the O/S 75 responds by trimming pages of memory from other lower priority tasks in order to fulfill the request. The pages that are trimmed from the other tasks are written out to the O/S's swap space (not shown) in order to preserve the data contained within them. Upon receiving the memory pages, the CMS will fill them with data that is known to compress into a trivial pattern, i.e., one that compresses to the point of using virtually no physical memory. The result is that the physical memory that was backing the pages is released and may be used elsewhere by the memory controller. The maximum amount of memory that CMS must be prepared to recover is calculated as follows:
where "TR" is the Total amount of real memory as seen by the O/S; "TP" is the Total amount of physical memory in the system; and, "MaxMemToTakeAway" is the Total real memory to recover in bytes. It is important that the O/S be configured with enough swap file space to accommodate MaxMemToTakeAway bytes.
The compressed memory controller hardware 80 further generates interrupts 81 when physical memory exceeds a programmable threshold value. Using this capability, the memory system is considered to be in one of the following three states at any given time: 1) a Steady State—where adequate physical memory is available and data is compressing at least at the boot compression ratio; 2) a Warning State—where physical memory is beginning to run low and corrective action should be taken; and 3) an Emergency State—where physical memory is nearing exhaustion, corrective action must be taken and all other applications in the system should be blocked from running until enough physical memory is made available to re-enter the Warning or Steady State.
Aside from polling the memory usage statistics to make corrections, the CMS 50 will receive notifications from the device driver as memory state changes occur. This allows CMS to take corrective action immediately instead of waiting until it is ready to poll again. As a result, the CMS 50 will utilize fewer CPU cycles because memory state change notifications alleviate the need for polling the compressed memory statistics module aggressively.
The CMS 50 additionally is included with functionality for spawning a blocker thread 55 (referred to as a "CPU Blocker") per each CPU in the system. This thread remains suspended and awaits a notification from the device driver that the physical memory is entering the Emergency State. Once the notification is received the CPU Blocker 55 will monopolize the CPU it is bound to and prevent other applications in the system from executing. Correspondingly, this only allows the CMS 50 and its associated tasks to execute. This is necessary because the severity of the Emergency State dictates that other applications cannot be allowed to execute as they can further deteriorate the state of the memory system.
Device Drive Description
With more particularity, the compressed memory controller hardware 80 appears as a peripheral component interconnect (PCI) device and communicates with any other device in the system via the compressed memory device driver 20 which provides a standard set of software services as proscribed by each individual O/S. Application software or O/S software may then communicate with the memory controller hardware using the services of the device driver. According to the preferred embodiment of the invention, the device driver 20 provides the following facilities: 1) provides various memory compression statistics from module 24; 2) from module 26, enables the programming of low physical memory threshold registers on the compressed memory controller 80, which will initiate generation of an interrupt when the value of the threshold register is exceeded; 3) from module 26, broadcasts notification of low physical memory interrupts to interested client applications; and, 4) from module 28, provides access to special memory manipulation functions referred to as "PageOps" that are unique to the memory compression chip. PageOps are so named because they operate on the typical page size (4K), e.g., as used by. the Intel x86 architecture.
The CMS 50 interacts with the device driver 20 by sending device I/O control code messages to it.
Low Physical Memory Interrupts
The device driver particularly tracks an internal memory state variable based upon the amount of physical memory in use. The system is considered to be in one of three states (Steady, Warning, or Emergency) at any given time. Each memory state has an associated physical memory usage threshold. A state's threshold is considered to be the transition point between itself and the next memory state. A state's threshold is set by sending a device I/O control code message to the driver. The following rule concerning thresholds must hold true when threshold assignments are made:
Steady Threshold<Warning Threshold<Emergency Threshold
The driver will initially set the Threshold Low Register (TLR) to the threshold that exceeds the physical memory used by least amount. The current memory state is considered to be the state associated with this threshold. When the physical memory used grows to exceed the value in the threshold register, an interrupt will be sent to the device driver. The driver handles the interrupt by reprogramming the TLR based upon the rule described above. Interrupts cause the threshold to be moved higher. When the current memory state is either Warning or Emergency, the driver will periodically poll to see if the threshold should be adjusted downward. That is, interrupts move the threshold 'higher'; while polling the memory controller for a reduction in physical memory usage reduces the threshold (relaxation). The threshold associated with the Emergency State is used to program the Threshold High Register (THR). If this threshold is exceeded the memory controller will generate a non-maskable interrupt which when received is used to gracefully shutdown the O/S. Reaching this condition means that physical memory is exhausted and there is only enough left to shut the machine down. This condition is considered a catchall and should not normally be reached.
Memory State Observers
Coupled with the memory state tracking described above, the driver provides the ability for CMS and other client applications (termed Memory State Observers) to be notified as to memory states changes. The mechanism for notifying applications of events is O/S dependent and is known to skilled artisans.
Page Operations
As mentioned, the device driver 20 includes a PageOps module 28 that supports the ability to access the memory operations on pages of physical memory. The key page operation that the driver exposes in terms of compressed memory management is called the Zero Page Operation to user mode applications and is referred to as the Zero Page Op. The application may pass down to the driver a virtual address in its process space and a length. The driver will convert the address from virtual to physical and invoke the Zero Page Operation on each page in the range. This page operation has the effect of flushing the page out of the L3 Cache (if present), freeing any physical memory in use by the page, and writing the trivial data pattern (i.e., zero bit pattern) to the page's CTT entries.
Compression Management Service
The Compression Management Service (CMS) is the user mode portion of the compressed memory control system. It runs as a background process at a priority level above the normal application execution. For example on Windows 2000 it runs at Real-time priority. This is done so that it may pre-empt other user mode process in the system. At its core is the CompMemMgr component 54 which performs the compressed memory management.
During initialization CompMemMgr 54 determines the difference (real memory size−physical memory size). This result called MaxMemToTakeAway is the maximum amount of memory that would have to be removed from the Virtual Memory Manager sub-system 77 of the O/S Kernal 75 if an application(s) completely fills memory with incompressible data. Memory is removed from the Virtual Memory Manager 77 via an O/S specific call that allows an application to allocate memory. For example on Windows 2000 it is called VirtualAlloc.
CompMemMgr spawns one or more processes that are called Memory Eaters 60. The number of Memory Eaters processes spawned is calculated by the following formula:
NumEaters=maximum_of(MaxMemToTakeAway/MaxMemoryAllowerPerProcess, 1)
Note that MaxMemoryAllowedPerProcess is dependent upon the O/S being used.
An interprocess communication (IPC) mechanism is used to allow the CompMemMgr to instruct the Memory Eaters to allocate and release memory and to also allow the Memory Eaters to provide feedback on their progress to the CompMemMgr. Modem O/Ss support many mechanisms to allow processes to communicate with each other. For example in implementing this algorithm for Windows 2000, an area of shared memory is used as the means of communication.
CompMemMgr determines the physical memory thresholds for the Low Physical Memory Interrupt. This is done by summing the size of the size of the Compression Translation Table (CTT), any memory regions that have been setup as uncompressed, size of the resident portion of the O/S kernel, and the size of the L3 cache to back any of the maximum spill over from the L3 cache. After passing the thresholds for each of the memory states down to the driver, it will register itself for notifications from the device driver as the state of memory system changes. These thresholds will be re-calculated by CMS periodically as part of its memory usage monitoring.
Once the interrupt thresholds have been calculated, the MinConsumptionPhysical value is calculated. This variable represents the amount of physical memory that must be in use for CompMemMgr to perform the calculation that determines whether or not a memory adjustment is necessary. It is to be placed at a level of physical memory usage, which is below the point of threshold associated with the Steady State. The actual calculation is an O/S dependent heuristic but in general it is a factor of how much memory is reserved for the warning and emergency states. The MinConsumptionPhysical variable calculation serves two purposes: 1) to get a head start on taking corrective action in advance of the moving into an elevated memory state; and, 2) to function as a watermark that below which any held memory will be returned to the system. It is understood that this value will also be re-calculated along with the memory state thresholds.
Next CompMemMgr spawns and binds one CPU Blocker Thread per processor in the system. As mentioned, the CPU Blockers are utilized when all user (e.g., third-party) applications 65 must be prevented from running.
Finally, the CompMemMgr 54 spawns a thread in which it executes the compressed memory management algorithm depicted in FIGS. 2(a)-2(b).
Managing Compressed Memory
FIGS. 2(a)-2(b) is a block diagram illustrating the compressed memory management algorithm.
FIG. 2(a) particularly depicts the main loop 100 of the compressed memory management algorithm which is a loop executed by the CompMemMgr for waiting on one of the memory state notification events from the driver, the terminate event, or a wait timeout value. In a first step 110, the variables WaitTimeOut and TotalMemConsumed are initialized. Particularly, the variable WaitTimeOut is a constant value that is operating system independent and represents a polling interval which is set a default value DEFAULT_SLEEP_TIMEOUT, and may range anywhere between 0 to 1000 msec., for example. As memory pressure increases driving the system into warning and emergency state, the rate of polling is increased. Thus, a WaitTimeOut value of 0 msec means that a WaitForMemoryStateChangeSignalFromDriver function will check for any events being triggered (i.e., a memory state change signal from the driver) and will return immediately. Conversly, when WaitTimeOut is 1000 msec, the WaitForStateChangeSignalFromDriver function will wait for a maximum of a second before returning from the function call so as to yield the processor to other tasks. The variable initial TotalMemConsumed is the memory consumed, and is initially set to zero (0). Then, at step 115, the process waits for a state change signal (interrupt) from the device driver, and sets a variable RESULT equal to the state change value, i.e., WaitForMemoryStateChangeSignalFromDriver(WaitTimeOut). Next, at step 120, a decision is made as to whether a notification event (state change) has been received from the driver. If no state change has occurred, i.e., then the process proceeds to step 150 where the process is invoked for obtaining updated statistics and performing any memory usage correction calculations as described with respect to FIG. 2(b). If there is a state change, a determination is made at step 125 as to whether the change is a terminate event. If the event received is a terminate event, then the process exits at step 130. If a state change has occurred and it was not a terminate event, then the process proceeds to step 140 where the current memory state value is set to the result. The step 150 of gathering of memory usage statistics is then performed and the process repeats by returning to step 110. As will be explained in greater detail, memory usage statistics come from three sources: the Device Driver, the O/S, and randomly selected memory page sampling.
A C++-like pseudocode depiction of the process exemplified by Figure 2(a) is now provided:
void ManageCompressedMemory()
unsigned long WaitTimeOut = DEFAULT_SLEEP_TIMEOUT;
MEMUNITS TotalMemConsumed = 0;
while (1)
Result = WaitForMemoryStateChangeSignalFromDriver(WaitTimeOut);
if (Result != NO_STATE_CHANGE)
switch (Signaled)
case TERMINATE:
return 0;
case EMERGENCY:
WaitTimeOut = 0;
CurrMemState = EmergencyState;
case WARNING:
WaitTimeOut = 0;
CurrMemState = WarningState;
case STEADY:
WaitTimeOut = DEFAULT_SLEEP_TIMEOUT;
CurrMemState = SteadyState;
FIG. 2(b) particularly depicts the make memory usage corrections process 150 as shown in FIG. 2(a). In the memory usage corrections process loop 150, a first step 155 involves gathering the memory status, i.e., the memory statistics. Then, at step 160, the current real memory (CurrRealUsed) used is computed in accordance with the statistics provided by the device driver. Then, at step 165, the current physical memory (CurrPhysUsed) used is computed. This value includes the size of the physical memory usage plus the size of the Compression Translation Table (CTT) (CTTLength), the size of any defined uncompressed memory regions, and the size of the NonSwappablePages (SizeOfNonSwapPages). Typically the uncompressed memory region is 1 MB and is setup by the BIOS. This is necessary because the physical memory usage reported by the compressed memory controller chip does not account for these values. At the next step 170, an evaluation is made as to whether the current memory state (determined in the main loop 100 of the compressed memory management algorithm) is the steady state AND that the current physical memory computed in step 165 is less than usage is below a minimum usage water mark (MinConsumptionPhysical). If at step 170, it is determined that the current memory state is the Steady State AND the current physical memory computed in step 165 is not less than a minimum threshold, then the process proceeds to step 175 to compute a targeted real memory usage (TargetedRealUsage) representing how the size of memory is to be adjusted. That is, a variable TargetedRealMemoryUse is calculated by multiplying the amount of physical memory in use by the boot compression ratio. To determine the memory adjustment needed, the actual amount of real memory in use plus the total amount of memory already held by the Memory Eaters is subtracted from the TargetedRealMemoryUse. This is the variable AdjustmentReal. A negative result means that the compressibility of the system is equal to or greater than the boot compression ratio. This means that the Memory Eaters should release AdjustmentReal units of memory back to the system. Particularly, based on the amount of physical memory in use, a calculation is made as to how much real memory should be in use which is equal to the boot compression ration of the memory system multiplied by the current physical memory used CurrPhysUsed calculated at step 165. Then at step 180, a value for the real memory adjustment (AdustmentReal) is computed as being equal to the TargetedRealUsage minus a quantity comprising the CurrRealUsed plus the TotalMemConsumed. Then, at step 182, a determination is made as to whether AdjustmentReal<0. If AdustmentReal is less than 0, then the process proceeds to step 185 where the AdustmentReal variable is set equal to max_of(AdjustmentReal, TotalMemConsumed). This is to ensure that there is released only as much available. Particularly, it is desired to release memory slower than it is acquired in case conditions quickly deteriorate. A release ratefactor may be applied to the amount that will be released in any one iteration of memory adjustment.
Returning to step 182, if it is determined that AdjustmentReal is greater than or equal to 0, then the Memory Eaters must allocate Adjustment Units of memory. In doing so the Memory Eater calls the O/S's memory allocation facility for the required memory. The Memory Eater then passes a pointer to the memory its length to the device driver to perform a Zero Page Operation on the all the pages the area contains. These steps are depicted from steps 188, 190, 192 and 195. Particularly, at step 188, the AdustmentReal variable is set equal to min_of(AdjustmentReal, the quantity MaxMemToTakeAway—TotalMemConsumed) where MaxMemToTakeAway is the total real memory to recover in bytes as defined herein. This calculation is made to ensure that the requested adjustment lies within the bounds of what the memory eaters can eat. For example, if MaxMemToTakeAway is 100 Mbytes, AdjustmentReal is 100 Mbytes, and the TotalMemConsumed (the amount that the eaters are already holding) is 25 Mbytes, then the eaters can only hold another 75 Mbytes, i.e., Adjustment is min_of(100, 100−25)=75 Mbytes. Next, at step 190, the Memory Eaters are put to work by writing the adjustment value into the shared memory block via the monitor. The internal statistics are then updated at steps 192, 195.
A C++-like pseudocode depiction of the process exemplified by FIG. 2(b) is now provided:
// Get current memory statistics. GetMemoryStatus(Stats); MEMUNITS CurrRealUsed = Stats.UsedReal; MEMUNITS CurrPhysUsed = Stats.UsedPhysical; // Add onto the physical memory usage the size of the CTT, // the size of the uncompressed region, and the size of // the NonSwappablePages. CurrPhysUsed = CTTLength + UncompressedRegion + Stats.SizeOfNonSwapPages; // As long as the system is in memory state and the physical memory // usage is below the minimum usage water mark // release all the memory held by the memory eaters. if ((CurrMemState == SteadyState) && (CurrPhysUsed < MinConsumptionPhysical)) { // Release all the memory held by the eaters. // Except for any guaranteed AWE regions on W2K. AdjustmentReal = m_TotalMemConsumed;; if (AdjustmentReal < 0) AdjustmentReal = 0; else AdjustmentReal = -AdjustmentReal; } else { // Calculate how the size of memory is to be adjusted. // Based on the amount of physical memory in use calculate // how much real memory should be in use. MEMUNITS TargetedRealUsage = static_cast<MEMUNITS>(m_BootCompRatio * CurrPhysUsed); AdjustmentReal = TargetedRealUsage − (CurrRealUsed + TotalMemConsumed); if (AdjustmentReal < 0) { // Releasing memory. // Want to release memory slower than it is acquired in case // conditions quickly deteriorate. Apply a release rate // factor to the amount that will be released in any one // iteration of memory adjustment. MEMUNITS RateAdjusted = AdjustmentReal / MemReleaseRate; if (0 == RateAdjusted) { RateAdjusted = AdjustmentReal; } // Make sure to release only as much as we have. AdjustmentReal = max(RateAdjusted, −TotalMemConsumed); } else { // Consuming memory. AdjustmentReal = min(MaxMemToTakeAway − TotalMemConsumed, AdjustmentReal); } } // Put the eaters to work by writing the adjustment value into the // shared memory block via the monitor. NotifyMemoryEaters(AdjustmentReal); If (ReCalculateMemoryStateThresholds()) SetMemoryStateThresholds(); // Update our internal stats. TotalMemConsumed += AdjustmentReal; } }
Warning and Emergency States
If CompMemMgr is notified of the Warning or Emergency state being entered, it will switch the timeout for the next iteration to 0. This is done so that as much CPU time as possible may be spent on CompMemMgr analyzing memory conditions and on the Memory Eaters compensating for the memory condition. Recall that there is also one CPU Blocker thread per processor waiting on a signal from the driver indicating that the memory usage has moved into the Emergency State. Once the CPU Blocker is notified of the Emergency condition it will hog the CPU it is bound to. This has the effect of blocking all other user applications from running which is necessary because once the system enters the Emergency State it is getting very close to running out of physical memory. Allowing user applications to run might further deteriorate memory conditions causing the machine to stop running. The CPU Blocker runs at the priority level just below CompMemMgr and the Memory Eaters. This allows the compressed memory management to pre-empt the blocker threads but also allow the blocker threads to block other user mode applications. The CPU Blocker threads will stop "hogging" the CPU when it is signaled that the memory system has moved back into the Steady or Warning State. It is than safe to allow other applications to continue running.
Adjusting Priorities
The O/S itself has threads that run at high priority normal or higher. These threads are not problematic for the compression controls because they run for very short durations and cannot change the overall compressibility of the system. However, it is possible for other applications to be run at priority levels which are higher than the compression controls for long durations, which in theory can be problematic for the compression controls. It should be noted that applications running at these priority levels do not yield the CPU could interfere with the normal operation of the Virtual Memory Manager itself and cause the O/S to behave erratically. One way to avoid having these applications interfere with the compression control software is to have the controls dynamically lower the process priority (or suspend the process entirely) while in the Emergency State. The priority may be restored after the crisis has been rectified.
While the invention has been particularly shown and described with respect to illustrative and preformed embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and details may be made therein without departing from the spirit and scope of the invention which should be limited only by the scope of the appended claims.
|Cited Patent
|Filing date
|Publication date
|Jun 12, 1992
|Jan 5, 1993
|British Telecommunications Public Limited Company
|Data communication having transmitter-controlled mode switching from compressed-to-transparent mode but local synchronous transmitter-controlled and receiver-controlled mode switching from transparent-to-compressed mode
|Mar 19, 1992
|Aug 17, 1993
|Maxtor Corporation
|Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor
|Jan 18, 1995
|Sep 24, 1996
|Helix Software Company, Inc.
|Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents
|May 7, 1996
|Dec 16, 1997
|Connectix Corporation
|Virtual memory management system and method using data compression
|Aug 21, 1996
|Jun 2, 1998
|International Business Machines Corporation
|System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
|Feb 20, 1996
|Jan 26, 1999
|International Business Machines Corporation
|System and method of compression and decompression using store addressing
|May 6, 1997
|Dec 7, 1999
|International Business Machines Corporation
|Method and apparatus for allocation of disk memory space for compressed data records
|May 24, 1994
|Jul 18, 2000
|Advanced Micro Devices, Inc.
|System and method for using a memory management unit to reduce memory requirements
|Jun 1, 1999
|Mar 12, 2002
|Metaphorics Llc
|Virtual network file server
|Apr 9, 2001
|Feb 4, 2003
|Hewlett-Packard Company
|Virtual memory system utilizing data compression implemented through a device
|Sep 20, 2000
|May 13, 2003
|Hewlett-Packard Development Company Lp
|Compressing memory management in a device
|May 30, 2000
|Jan 20, 2004
|International Business Machines Corporation
|Method for operating system support for memory compression
|Dec 7, 1989
|Jun 13, 1990
|BRITISH TELECOMMUNICATIONS public limited company
|Data compression
|Aug 31, 2001
|Mar 27, 2002
|Hewlett-Packard Company, A Delaware Corporation
|Compressing memory management in a device
|Citing Patent
|Filing date
|Publication date
|Jul 29, 2002
|Jan 16, 2007
|Oracle International Corporation
|Method and mechanism for managing traces within a computer system
|Jun 9, 2005
|Feb 27, 2007
|Microsoft Corporation
|Methods and mechanisms for proactive memory management
|Jul 29, 2002
|Apr 3, 2007
|Oracle International Corporation
|Method and mechanism for analyzing trace data using a database management system
|May 31, 2001
|May 20, 2008
|Oracle International Corporation
|Method and mechanism for using a meta-language to define and analyze traces
|May 31, 2001
|May 27, 2008
|Oracle International Corporation
|Method and mechanism for diagnosing computer applications using traces
|Jun 30, 2004
|Jun 3, 2008
|Intel Corporation
|Method and apparatus for memory compression
|Apr 14, 2005
|Jan 20, 2009
|International Business Machines Corporation
|Dynamic packet training
|Jul 29, 2002
|Mar 31, 2009
|Oracle International Corporation
|Method and mechanism for debugging a series of related events within a computer system
|Jun 9, 2005
|Apr 13, 2010
|Microsoft Corporation
|Methods and mechanisms for proactive memory management
|Feb 22, 2011
|Microsoft Corporation
|Compressed storage management
|Apr 13, 2010
|Oct 4, 2011
|Microsoft Corporation
|Methods and mechanisms for proactive memory management
|Oct 9, 2012
|Intel Corporation
|Dynamic scheduling an interval for polling devices based on a current operational power mode in an extensible firmware interface architecture
|Feb 2, 2012
|Jul 16, 2013
|Microsoft Corporation
|Managing cache data and metadata
|Jan 13, 2011
|Aug 20, 2013
|Microsoft Corporation
|Compressed storage management
|Apr 13, 2010
|Sep 17, 2013
|Microsoft Corporation
|Methods and mechanisms for proactive memory management
|Dec 10, 2007
|Jan 14, 2014
|Microsoft Corporation
|Management of external memory functioning as virtual cache
|Jun 25, 2008
|May 6, 2014
|Microsoft Corporation
|Timing analysis of concurrent programs
|Jul 26, 2006
|Jul 15, 2014
|Hewlett-Packard Development Company, L. P.
|Systems and methods for flexibly controlling resource usage by a driver domain on behalf of a virtual machine
|Jul 21, 2011
|Dec 9, 2014
|Microsoft Corporation
|Using external memory devices to improve system performance
|Dec 16, 2005
|Dec 16, 2014
|Microsoft Corporation
|Optimizing write and wear performance for a memory
|Jul 6, 2005
|Feb 10, 2015
|University Of Maryland College Park
|Method and system for monitoring system memory integrity
|Nov 14, 2008
|May 12, 2015
|Microsoft Technology Licensing, Llc
|Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
|Sep 11, 2012
|May 26, 2015
|Apple Inc.
|System cache with quota-based control
|Jul 26, 2013
|Jun 30, 2015
|Industrial Technology Research Institute
|Method and computer system for memory management on virtual machine
|Dec 10, 2013
|Aug 25, 2015
|Samsung Electronics Co., Ltd.
|Mobile device and method of managing data using swap thereof
|Jul 26, 2013
|Sep 8, 2015
|Industrial Technology Research Institute
|Method and computer system for memory management on virtual machine system
|Nov 19, 2012
|Nov 3, 2015
|Hitachi, Ltd.
|Storage system configured to selectively utilize data compression based on real pool usage rates
|Jul 26, 2013
|Feb 9, 2016
|Industrial Technology Research Institute
|Method and computer system for memory management on virtual machine
|Oct 31, 2014
|Apr 19, 2016
|Microsoft Technology Licensing, Llc
|Using external memory devices to improve system performance
|Apr 22, 2014
|Jun 7, 2016
|Microsoft Technology Licensing, Llc
|Aggregation of write traffic to a data store
|Jul 29, 2002
|Jul 21, 2005
|Oracle Corporation
|Method and mechanism for debugging a series of related events within a computer system
|Jun 9, 2005
|Oct 13, 2005
|Microsoft Corporation
|Methods and mechanisms for proactive memory management
|Jun 9, 2005
|Oct 20, 2005
|Microsoft Corporation
|Methods and mechanisms for proactive memory management
|Jun 30, 2004
|Jan 5, 2006
|Vogt Pete D
|Method and apparatus for memory compression
|Apr 14, 2005
|Oct 19, 2006
|International Business Machines Corporation
|Apparatus and method for dynamic packet training
|Jun 17, 2005
|Dec 21, 2006
|Intel Corporation
|Programmable scheduling interval
|Jun 27, 2005
|Dec 28, 2006
|Microsoft Corporation
|Back-off mechanism for search
|Dec 16, 2005
|Jul 12, 2007
|Microsoft Corporation
|Optimizing write and wear performance for a memory
|Jul 26, 2006
|Jan 31, 2008
|Ludmila Cherkasova
|Systems and methods for flexibly controlling resource usage by a driver domain on behalf of a virtual machine
|Jun 6, 2007
|Dec 11, 2008
|International Business Machines Corporation
|Management of Guest OS Memory Compression In Virtualized Systems
|Oct 31, 2007
|Apr 30, 2009
|Microsoft Corporation
|Compressed storage management
|Dec 10, 2007
|Jun 11, 2009
|Microsoft Corporation
|Management of external memory functioning as virtual cache
|Jul 6, 2005
|Aug 27, 2009
|Arbaugh William A
|Method and system for monitoring system memory integrity
|Jun 25, 2008
|Dec 31, 2009
|Microsoft Corporation
|Timing Analysis of Concurrent Programs
|Nov 14, 2008
|Mar 18, 2010
|Microsoft Corporation
|Managing cache data and metadata
|Apr 13, 2010
|Aug 5, 2010
|Microsoft Corporation
|Methods and mechanisms for proactive memory management
|May 12, 2011
|Microsoft Corporation
|Compressed storage management
|Sep 11, 2012
|Mar 13, 2014
|Sukalpa Biswas
|System cache with quota-based control
|Nov 19, 2012
|May 22, 2014
|Hitachi, Ltd.
|Storage system
|Aug 20, 2013
|Feb 26, 2015
|International Business Machines Corporation
|Hardware managed compressed cache
|Dec 12, 2014
|Apr 9, 2015
|International Business Machines Corporation
|Hardware managed compressed cache
|U.S. Classification
|711/170, 711/154, 710/68, 710/56
|International Classification
|Cooperative Classification
|European Classification
|Feb 13, 2001
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HERGER, LORRAINE M.;MCHUGH, MARY;POFF, DAN E.;AND OTHERS;REEL/FRAME:011594/0367;SIGNING DATES FROM 20010123 TO 20010208
|Oct 13, 2008
|Maintenance fee reminder mailed
|Apr 5, 2009
|Lapse for failure to pay maintenance fees
|May 26, 2009
|Expired due to failure to pay maintenance fee
Effective date: 20090405


text:
Correction: A previous version of this story suggested call metrics will only apply to click-to-call mobile ads. The metrics will actually apply to both click-to-call ads on mobile devices and to desktop search ads incorporating phone numbers through the product.
In a further attempt to demonstrate the potential of its search advertising products to marketers, Google has announced trials of a system that links unique phone numbers in search ads directly with the phone leads and offline actions it generates.
The program, dubbed call metrics, assigns each mobile ad with a unique phone number which is automatically inserted into pay-per-click ads displayed on mobile devices and in search ads on desktop machines. When a user dials the number or clicks it on a mobile device, the call is routed to the advertiser and call metrics will track the search terms that preceded the call, as well as more detailed information such as the call duration and caller area code.
Google says the product will help marketers more accurately attribute offline actions such as in-store purchases with online search ad campaigns.
In a blog post published yesterday, Surojit Chatterjee, senior product manager for Google AdWords, said the product will help marketers refine their strategies to make sure they're getting the most from their ads. "For example, you could test different ad text variations to see which results in the most calls or reallocate budget to campaigns that truly bring you the highest ROI," he wrote.
Call metrics is only currently available to a limited number of U.S. advertisers, but Chatterjee said it will be rolled out to more over the next couple of months. At present, call metrics is free – and advertisers involved in the tests will only be charged for clicks their ads – but Google says it plans to charge for the product in future. The technology for the program has been adapted from its Google Voice product.
Related reading
55% of online product searches begin on Amazon: stats
A new study underlines the massive influence that Amazon exerts over the ecommerce market, with the site being the first port of call ... read more
Is Hillary Clinton running one of the least effective presidential marketing campaigns ever?
Election 2016 is already like no presidential race before it, and one of the most striking aspects of this year's race is the disparity ... read more
Pokestops drive footfall and nine other augmented reality charts
Businesses near 'PokeStops' are enjoying a huge surge in footfall due to the popularity of Pokémon Go, according to our first major ... read more
Five tips to maximise content ROI for every industry
An effective content marketing strategy needs to be customised to the demands of each industry. Here are five tips to increase your ... read more

subset: commoncrawl


text:
Specializing in wedding and groom's cakes, birthday cakes, specialty cakes, and petit fours, cookies and more!
Were you happy? Would you do it again?
We were promised a free cake on our Anniversary if we supplied a picture of the wedding cake. We have been trying to contact Brandi for at least a month trying to get a cake. Our Anniversary has come and gone and we never got a cake. She never returns emails or phone calls.
Copyright © 2001-2016 OneWed Inc.
All Rights Reserved.
Copyright © 2001-2016 OneWed Inc. All Rights Reserved.


text:
You are at the Official Nonimmigrant (temporary) Visa Information and Appointment website for the U.S. Embassy in Canada.
All applicants that scheduled an appointment prior to December 1, 2015 will automatically have their delivery location updated to the closest Canada Post Office location. If you want to check your new Canada Post location or change the selection please sign in.
Select this option if you have never used this site before and you have completed a DS-160 https://ceac.state.gov/genniv
Select this option to continue or review an existing Visa application, or if you have already established an account on this site.
Learn more about the visa application process


text:
Attend Steve's October Workshops: Learn how to create a $10,000 per month lifestyle when you attend the Conscious Life Workshop and Conscious Entrepreneur Workshop in October.
Speech Contest Recovery
Last night I competed in my Toastmasters division speech contest. I took third place. While I was certainly aiming for first, I feel good that I did my best and ran up against my limits again. The first place winner was George Gilbert, a professional speaker/comedian who's been speaking and performing about as long as I've been alive. All of the speeches were excellent, and before the winners were announced, I honestly didn't know who'd place first, second, and third. George's speech was wonderfully humorous, mine was more emotional, and the second place winner Brandi Harrington gave a very direct and straightforward speech with a good dose of humor.
I accomplished my goal for this speech, which was to connect emotionally with the audience; I knew I'd done that when I saw tears in the audience. In terms of developing a speech to win the contest though, I may have missed the mark. I didn't aim for a speech with much humor, but in retrospect I think I would have needed to do a lighter more humorous speech in order to win. The judging is structured with a rating sheet and multiple judges, but it's still very subjective. How do you compare a speech that makes you laugh vs. a speech that makes you cry vs. a speech that makes you think? Even some of the judges were noting the difficulty of that. The contest/dinner was very long, and the banquet room chairs weren't so comfortable for such a long event. I was there about 5 hours total and didn't give my speech until 9pm. I think under those conditions a humorous speech is likely to get a better audience reaction, so I may try a different type of speech if I do this again next year.
Dinner included fortune cookies. My fortune said, "You will take a chance in something in near future." What does that mean when you live in Vegas? 🙂
In a few days I'll postmortem this contest cycle to figure out what I've learned and how I can improve. But for now I'll be taking a day off with my family. In a few hours I'll be picking up my wife from the airport. She's returning from the Natural Products Expo in Anaheim, CA. So as I'm recovering from contest hangover, she'll be recovering from convention hangover.
October 14 - 16, 2016
Las Vegas
At the powerful and transformational Conscious Life Workshop, you'll explore and discover how to make your path with a heart financially sustainable. Learn how to center your life around doing what you love while you generate abundant income from your interests to fuel your desired lifestyle.
Registration: $597
October 21 - 23, 2016
Las Vegas
The Conscious Entrepreneur Workshop is designed to help you start your own successful business, to make it profitable, and to enjoy what you've created. This workshop blends inspiration and motivation with the practical, how-to details that new entrepreneurs crave.
Registration: $597
Steve Recommends
Here are my recommendations for products and services I've reviewed that can improve your results. This is a short list since it only includes my top picks.
Site Build It! - Use SBI to start your own money-making website
Getting Rich with Ebooks - Make passive income selling ebooks
Lefkoe Method - Permanently eliminate a limiting belief in 20 minutes
PhotoReading - Read books 3 times faster
Paraliminals - Condition your mind for positive thinking and success
The Journal - Record your life lessons in a secure private journal
Sedona Method - FREE audios to release your blocks in a few minutes
Imaginary Men - Learn powerful growth lessons from 6 men's coaches


text:
Sponsored by the Center on Law, Ethics and National Security with support from the Program in Public Law, the National Security Law Conference was held March 1-2, 2013 at Duke Law School. "Battlefields, Boardrooms, and Backyards: The New Face of National Security Law" brought experts together to examine questions —both new and abiding— that arise at the juncture of law, ethics and national security. Visit Duke Law's YouTube channel to watch the conference presentations and discussions.
The Duke way
» Public service is a core value of the legal profession and central to the Duke Law experience.
Emerging tools for more equitable policy
» Professor Matthew Adler co-edited the new Oxford Handbook of Well-Being and Public Policy.
White-collar conundrum
Prof. Sam Buell discusses his new book on the rise of criminal behavior in corporations and why it's so difficult to prosecute.


text:
Choose either a monthly recurring membership option or for best value select recurring 3 month membership and get a free month
Receive E-Mails
Payment Type:
Membership Benefits
Frank shoots over 200 sets a year, massive photosets and the longest, full screen HD video. See who he's been photographing recently from all corners of the world.
Customer Support Information:
if you are experiencing problems with your account, or wish to cancel your membership please visit our Grooby Customer Support page.


text:
LAPD shooting in Dorner manhunt violated policy
The Police Commission's decision announced Tuesday leaves the question of disciplinary measures to Police Chief Charlie Beck
By Tami Abdollah
Associated Press
LOS ANGELES — A civilian oversight board has determined that eight Los Angeles police officers violated department policy when they mistakenly opened fire on two women during the manhunt for rogue ex-cop Christopher Dorner.
The Police Commission's decision announced Tuesday leaves the question of disciplinary measures to Police Chief Charlie Beck. The officers have been assigned to non-field duties pending the internal investigation.
Dorner had vowed warfare on Los Angeles police officers and their families early last year for what he called an unfair firing. He killed the daughter of a former police official and her fiance, and two law enforcement officers during a 10-day run from authorities.
The mistaken shooting occurred Feb. 7, 2013.
Margie Carranza and her then 71-year-old mother, Emma Hernandez, were delivering newspapers around 5 a.m. when LAPD officers guarding the Torrance home of a target named in Dorner's online manifesto blasted at least 100 rounds at their pickup.
Hernandez was shot in the back, and Carranza suffered minor injuries.
In April, the city agreed to pay the pair $4.2 million. The agreement was in addition to a separate $40,000 settlement for the loss of the women's pickup truck.
Copyright 2014 The Associated Press
Copyright Associated Press. All rights reserved. This material may not be published, broadcast, rewritten, or redistributed.
Recommended Investigations
Video: Slain college student named honorary DC police officer
Friend: 'No hate' in Charlotte officer who shot Keith Lamont Scott
9 firefighters, 6 officers hurt in NYC explosion that killed battalion chief
Join the discussion
PoliceOne top 5
3 What cops need to know about the first debate between Trump and Clinton


text:
Most of the state's media coverage omits most of these details, generally reporting -- inaccurately -- that the Attorney General had determined that the police behaved appropriately, which is not what the press release says, although William Sorrell apparently said something to that effect in a news conference. Here are some of the ways some of the media misinformed their audiences -- each is wrong:
- "Deadly Force Justified In Stun Gun Death" -- Vermont Public Radio
- "Vermont Attorney General Clears State Trooper in Thetford Taser Death" -- Seven Days
- "A state trooper was justified in using force"." -- Associated Press
- "Attorney General: Trooper justified in firing Taser at man who later died" -- Burlington Free Press
- "Sorrell says trooper had good reason to fire Taser at Macadam Mason"" -- vtdigger.org
- "Vt. AG Clears State Trooper of Criminal Wrongdoing in Taser-induced Death of Thetford Man" -- Valley News
No Public Statement on Negligence or Reprimand
Getting it right was WCAX-TV, with the headline, "AG: trooper will not face charges in taser death" and further clarification in its story: "Sorrell repeatedly stressed that Shaffer's actions were not criminal, but he wouldn't say if he acted negligently or if he's been reprimanded by state police. Those internal investigations are secret."
Trooper Shaffer remains on paid administrative leave, as he has been for most of the time since Mason's death.
Perhaps the most extreme misrepresentation of the events of June 20 came from the State Police, when Col. Tom L'Esperance, director of the State Police, said, "The actions of our troopers helped protect citizens in a highly dangerous and life threatening event." This does not square with the reality in Thetford that day, when the only person seriously threatened was the one the police killed.
Last July, Ms Davidonis filed a civil suit in the Superior Court in Orange County, where she lives, seeking unspecified damages for police conduct that her complaint calls "malicious, wanton, willful, and outrageous." That case is pending. In mid-January, Superior Judge Timothy Tomasi gave the Attorney General's office two weeks to explain its investigation into Trooper Shaffer's actions.
Responding to the AG's press release on January 25, Ms Davidonis's attorney, Thomas Costello told the Valley News:
"History of seizures or not, they were up there for hours before it happened. Theresa told them he was emotionally disturbed". The crisis was created by Shaffer going onto their property, contrary to Theresa's commands and what the police had been doing for two hours. There is violence and there is a shooting and there is a death. Who is doing the shooting? Law enforcement. An emotionally disturbed person is killed by violence by law enforcement. That demands leadership."
On the same day, attorney Edward Van Dorn announced that he would be filing a federal lawsuit seeking monetary damages from the State Police on behalf of Mason's mother, Rhonda Taylor, who lives in New Hampshire. The attorney indicated that the state's withholding of so much evidence made the suit necessary.
ACLU Questions State's Commitment to Justice


text:
Top Definition
to have sex with the opposite sex. nat king cole ryhmes with hole,getting your hole.
where is andy?he is getting his nat king.
af Seany L 13. maj 2003
Trending Now
Can you define these popular missing words?
Emails sendes fra email@example.com. Vi lover ikke at spamme dig.×


text:
- Table View
- List View
Made in Italyby David Rocco
On his hit Cooking Channel show David Rocco's Dolce Vita, David and his wife, Nina, travel around Italy, exploring the very best foods of every region, making friends wherever they go. From his modern flat in Florence to the lemon groves of the Amalfi coast, David shares recipes for the local favorites he encounters, including a refreshing Caprese salad with avocado, weeknight chicken breasts with fragrant rosemary and chili flakes, a Sunday meat stew flavored with tomatoes and red wine, and the easy apple-yogurt cake he prepares with his twin daughters. Made in Italy features 140 simple, rustic Italian dishes that any home cook can accomplish--all with David's signature style. With photographs of gorgeous food and sweeping images of the Italian countryside, this book will inspire cooks across America to bring Italy to life in their own homes.
Select your format based upon: 1) how you want to read your book, and 2) compatibility with your reading tool. To learn more about using Bookshare with your device, visit the Help Center.
Here is an overview of the specialized formats that Bookshare offers its members with links that go to the Help Center for more information.
- Bookshare Web Reader - a customized reading tool for Bookshare members offering all the features of DAISY with a single click of the "Read Now" link.
- DAISY (Digital Accessible Information System) - a digital book file format. DAISY books from Bookshare are DAISY 3.0 text files that work with just about every type of access technology that reads text. Books that contain images will have the download option of 'DAISY Text with Images'.
- BRF (Braille Refreshable Format) - digital Braille for use with refreshable Braille devices and Braille embossers.
- MP3 (Mpeg audio layer 3) - Provides audio only with no text. These books are created with a text-to-speech engine and spoken by Kendra, a high quality synthetic voice from Ivona. Any device that supports MP3 playback is compatible.
- DAISY Audio - Similar to the Daisy 3.0 option above; however, this option uses MP3 files created with our text-to-speech engine that utilizes Ivonas Kendra voice. This format will work with Daisy Audio compatible players such as Victor Reader Stream and Read2Go.


text:
SBA's Emerging Leaders initiative returns
February 14, 2016 WASHINGTON, D.C. — The U.S. Small Business Administration's Emerging Leaders executive-level training series launches again in communities across the country. more »»
MightyTykes mompreneur lands first international reseller
February 7, 2016 BERKELEY SPRINGS — Mompreneur start-up MightyTykes is starting 2016 off strong, having landed its first international reseller, Explore Your Senses, which placed MightyTykes' largest order yet. more »»
Nominations sought for entrepreneur awards
February 7, 2016 PITTSBURGH — Entrepreneurs and business leaders from West Virginia and western Pennsylvania are encouraged to be part of one of the most prestigious business award programs in the country. more »»
Small Business Administration offers awards
February 7, 2016 WASHINGTON, D.C. — The U.S. more »»
Money briefs for February 7
February 7, 2016 United Bankshares, Inc. increased earnings in 2015 WASHINGTON — United Bankshares, Inc. (NASDAQ: UBSI), reported earnings for the fourth quarter and for 201. more »»
Primp Pooch: Mobile pet groomer to open Genoa storefront
January 31, 2016 GENOA, Ill. — DeKalb County's newest salon caters to an unexpected clientele. 2015 Mobile Groomer of the Year recipient Lisa Leady and her husband, Eric Leady, were to open a Genoa storefront Ja. more »»
Funds available to remove, rehab old buildings
January 31, 2016 FAIRMONT — A workshop in Berkeley Springs on Feb. 5 will provide information for communities looking to access funding to demolish or acquire dilapidated building. more »»
Berkeley Medical Center names Quality Service Award recipient
January 31, 2016 Tonya Zuniga, surgery department, was recently named WVU Medicine Berkeley Medical Center's Quality Service Award winner for November 2015. more »»
Briefs for January 31
January 31, 2016 Meritus Health's DAISY nurse for January named HAGERSTOWN, Md. — Meritus Health's January DAISY nurse is Deanna Fedorczyk, B.S.N., RNC-MNN. more »»
Kona Brewing Co. to stay local
January 31, 2016 KAILUA-KONA, Hawaii— It's official. Kailua-Kona's signature brewery is here to stay — and increase its production nearly 10-fold. Kona Brewing Co. more »»
Painted Crown: Woman creates henna work for women who've lost hair
January 17, 2016 LINCOLN, Neb. — Soft winter light is falling through the second-floor windows of a photographer's studio one Sunday afternoon. more »»
BackPack Program gets $1K donation
January 17, 2016 MARTINSBURG — Smallwood and Small Insurance, an independent insurance agency based in Martinsburg recently made a $1,000 donation to the Berkeley County BackPack Program (BCBP) after asking social... more »»
DMV email should decrease customer wait time
January 17, 2016 CHARLESTON — Attention licensed drivers and motor vehicle owners. more »»
Briefs for January 17
January 17, 2016 Albright Crumbacker Moul & Itell LLC adds members MARTINSBURG — Albright Crumbacker Moul & Itell LLC, CPA's (ACM&I) welcomes Katelyn N. Marchun and Rita S. Batres to its team. more »»
Wildflowers Consignment Boutique opens in Harpers Ferry
January 10, 2016 HARPERS FERRY — Walking into Wildflowers Consignment Boutique is like taking a step into the past as Ella Fitzgerald's voice wafts softly through speakers and vintage leather bags adorn the walls of... more »»
Man named as Plan Reviewer of the Year
January 10, 2016 HAGERSTOWN, Md. more »»
Blue Ridge CTC named to Friendly Schools list
January 10, 2016 MARTINSBURG — Blue Ridge Community and Technical College recently announced that it has been designated a 2016 Military Friendly School by Victory Media, the leader in successfully connecting the... more »»
Briefs for January 10
January 10, 2016 US stock market drops, ends worst week since 2011 NEW YORK (AP) — A wave of late selling pummeled U.S. stocks Friday and pushed the market to its worst week in four year. more »»
Tax filing issues could jeopardize health law aid
January 10, 2016 WASHINGTON — About 1. more »»
Workers are saving more for retirement, led by millennials
January 10, 2016 NEW YORK — Workers are saving more for retirement, and the youngest — not exactly known for squirreling money away — are boosting their savings rates faster than any other age group. more »»


text:
Best and worst outfits from the Dally M Awards
Who nailed it and who failed it...
Some celebs just can't keep things to themselves...Check out these stars who made major faux pas' with these Tiwtter posts!
Who nailed it and who failed it...
Be brings you all the fake tan and fabulousness from the Sydney event.
Spray tan? Check. Glam frock? Check. Fake eyelashes? Double check.
Ahead of tonight's event, Be looks back at the best and worst styles from the ruby rug.
She's always been natural beauty!
These shock celeb splits had us crying actual tears.


text:
Type: Posts; User: jonw
Shoot me a pm, I can get in touch with the owner for you. Majestic sponsors my son.
We use them in the front and center diff.
Go back to factory settings and try a retune.
You are right on man. For the true racer the PE is great. This is coming from a racer. Upgrading a Revo is fun and teaches you alot about the truck, but you can't beat the price of the...
I would worry about your transmission first.
Great choice! Let us know if you have any other questions.
Just comparing it to 99% of the guys who race Revo's and run either a 3.3 or OS .18 that's all. That's why monster trucks are so much fun, you can do alot of things with them. let us...
How long have you been running the brace? I use the the back hinge pin plate and love it!
The spring does seem a little strong for the it, I loosen mine up just a little bit , but honestly I have never had a problem. I know Steve Slayden uses a spring from another Traxxas...
No lean bogs here, great tank! What's going pnt, long time no talk. Hope evrything is going well for you .
The Mugen truggy tank work great too.
+1 on what rcboy514 says! I would keep spares though and change them out eventually, cheap insurance for your motor.
The 1313 is good too,used to run it on our throttle. Now it is a backup.
Bishop is about 30 miles south on Corpus Christi.
Good luck, but a bit overkill if you ask me.
I use a THS pipe and stock, can't go wrong with either one.
Slap a OS .18TZ in it and save yourself some money. Put the Speed in a truggy or buggy.
+1 on the Ace 1015's. Use them both for steering and throttle for the past year, great servos. We race them hard and haven't had any problems.
Hard Anodized Shock, you won't be dissapointed.
I have to agree with Tim, you are spot on. Great comment!
Your post on the other hand is totally off. I am surpised no one has commented on it yet, but I will. As a dad...
Just wait for the new axle carriers for the Platimun Revo to come out. They will be a option part available through Traxxas when the truckis available.
+1 on the Shoe Goo, I also use it on any screw going onto plastic.
Can't go wrong with a OS.18TZ, great motor for the price. The new 3.3's are great motors too.
Are you talking about the rears? Did you install the spacers under the rocker posts?
Traxxas are the best, no problems with ours and we race every weekend. Just follow the instructions. If you have been running your rockers for a while I would go ahead and change the rears when you...


text:
I agree that typically an owner who is willing to risk financing is also wanting a good deal so it's unlikely you will find a win on both items, unless you are willing to give in some other area to make it a win/win for both you and the other party.
If you are looking for a higher priced property then there is a better chance to get the owner to carry. I have seen a few lately. There may be financing options for you though which would make a larger number of homes available to you.
If we can be of assistance in your figuring out the best way for you to get a home, please don't hesitate to contact us.
Best Regards,
Ron & Brenda Cunningham
West USA Realty
**** Recognized in the Phoenix Business Journal as "One of the Top 50 Realtors in the Valley" ****
Search the official active FlexMLS like a Realtor for FREE through our website at:
If your reason for not using a conventional lender is having gone through a short sale, foreclosure or bankruptcy and needing to wait the mandatory 2 or 3 for a conventional loan, there are 3 yr bridge loans that may be applicable if your credit is otherwise recovered. The interest rate is about 7%, the down payment 30%, but they have an exit strategy to convert you to a convention loan after the waiting period.
This way you can look at buying any home on the market as well as new construction.
Call me if you would like a referral.
Loren Hoboy-Realtor
Your Local Expert
Central AZ Real Estate
But there are some other strong disadvantages to doing owner financing. First of all, you are severely limiting your options on what properties are available to you, because with how hot the market is right now, there are not a lot of sellers that need to do this kind of financing. But secondly, there is usually a balloon payment in a fairly short term, where the new owner would typically try to refinance once they are able to do so. But what if your situation changes, and you can not refinance or do the balloon payment? I am just guessing the the old owner would be licking their chops to be able to foreclose on you, keep your 25% down, and all the payments you have made, and then turn around and sell the property to someone else.
However, if you really need a carryback, and you are convinced that it is right for you, feel free to contact me and let me know what kind of property you are looking for, and I will see what properties might be available.


text:
Trying to find the best fundraiser or fundraising ideas for your group or organization? The Fundraising Network, a.k.a. "TFN", is a network of web sites designed solely for the purpose of helping you find the perfect fundraiser for your group!
We have assembled some of the best tips, tricks, and ideas from the best fundraising minds to help you right here on FundraisingNetwork.info. Browse the categories on the left for information about different types of fundraising. On each page,
Do you enjoy helping others? Are you involved in fundraising? Are you looking for a totally free way to work from home and make some extra money? Can you send email, post messages on blogs and forums, tell friends? It is honestly that simple...
Do you know people in the United States spend 6 Billion dollar a year on fundraising and associated fundraising products? Would you like to have just a small piece of that action heading into your bank account each month? Well then, read on, you have found the right place. Many fundraising companies are always looking for help to spread the word about their products and service. They know that a "word of mouth" recommendation is the best advertising anyone can get. Think about the last movie you went to see, or book you read. Did you get someone else's opinion before you took action? You are not alone, and most people feel safe when they hear first-hand how well a fundraising program went, and how much money was raised.
Need a "Work from Home" opportunity? – Why not with a fundraising company?
The MARKET
Avoid the #1 Biggest Mistake? Why should you care if there is a market? Why fish in a stream when you can troll in the ocean? This simple strategy will prevent you from trying to sell ice cream to Eskimos. It will also ensure you have a steady stream of sales, year round. Fundraising is a very popular activity, and think of all the churches,...
Click here to read the whole article.
Top 10 Tips For Fundraising Success
Want to make more sales and have a more successful fundraiser? Check out these 10 tips!
Get Your Fundraiser Noticed
The popular saying "if you build it they will come" may be wishful thinking so don't assume that everyone will find out about your fundraiser. Make sure you get the word out ahead of time and make it as visible as possible. Here are four ideas to get you started.
How to Reach Your Fundraising Financial Goals
These simple tips will help you to maximize your profits.


text:
AIYEP is funded by the Department of Foreign Affairs and Trade, through the Australia-Indonesia Institute and the aid program. The Australian Coordinator is TCN The Communications Network.
AIYEP1617 Australian Applicants
Applications open soon. Follow us on Facebook and/or keep checking this page for updates as more details become available.
AIYEP1617 in Adelaide
AIYEP is coming to Adelaide. We are currently seeking host families and work experience placements during November for the Indonesian participants. More info...